「http_load」

  CREATED BY JENKINSBOT

内容: http_load 的使用。

http_laod Version 09Mar2016

http_load并行运行多个http请求,来测试Web服务器的吞吐率(throughput)
和Apache的ab有点类似,但是比ab更加灵活,http_load支持从文件中读取URL,也可以按照时间比率进行测试。
http_load运行在单个进程中,所以不会对客户端机器造成太大压力。它也可以执行https请求。

Homepage: https://acme.com/software/http_load/

Download: https://acme.com/software/http_load/http_load-09Mar2016.tar.gz

安装

请阅读源码目录下的README文件。SysV-like 的系统,或者使用SSL需要修改Makefile,这两点在 README 中都有讲。

安装,直接执行 make 就可以了,安装并不复杂,执行make之后会在源码目录下生成 http_load 文件。

命令行语法

http_load [-checksum] [-throttle] [-proxy host:port] [-verbose] [-timeout secs] [-sip sip_file]
-parallel N | -rate N [-jitter]
-fetches N | -seconds N
url_file

参数解释

以下的选项都可以使用单个字母简写,比如 -checksum 等价 -c。

-checksum

检查获取到文件的校验和,来确保每次是正确的。校验和是在第一次请求时计算的,然后以后每次请求都会进行计算和比较。

如果没有使用改选项,只检查字节数。

-throttle

使http_load将其数据消耗调节到33.6Kbps,用于模拟“调制解调器”用户的访问

-proxy

使http_load走web代理。

-verbose

在stderr上,每分钟输出进度报告。

-timeout

在放弃之前,等待空闲连接的时间。默认60s。

-sip sip_file

参数为一个文件。sip_file的内容为IP地址(不能是主机名)列表,每行一个。

这些地址被随机用作链接的源地址。这些地址必须是你本机的地址(这个地方读者需要了解以下虚拟网卡,在一台主机上配置多个IP地址)。

-cipher

只有编译时支持SSL,改选项才有用(安装时,提到过要修改Makefile文件)。

指定要使用的密码集(cipher set)。默认,http_load将和Server协商使用最安全的密码集(cipher set),这通常比浏览器的协商更高(但是更慢)。

http_load内置三个密码集(cipher set),可以通过以下关键字访问:

* fastsec – fast security – RC4-MD5

* highsec – high security – DES-CBC3-SHA

* paranoid – ultra high security – AES256-SHA

有一点要注意,并不是所有的 Server 都实现这些组合。

开始符(start specifier),用于告诉 http_load 开始时的基本参数:-parallel 或 -rate。

-parallel

指定并行的请求数。

-rate

每秒的连接数。

可同时搭配使用 -jitter,将随机改变rate,约10%。

结束符(end specifier),用于告诉http_load结束的条件:-fetches 或 -seconds。

-fetches

执行多少次请求之后退出。

-seconds

多少秒之后结束。

url_file

要测试的 URL 列表,每行一个。访问哪个 URL 是随机的。

注意,尽管精确地遵守结束符(end specifier),但是开始符(start specifier)只是近似的。

如果使用 -rate,http_load将尽力以该速率启动连接,但可能不会成功。

如果使用 -parallel,http_load将尝试保持许多同时连接,但如果 Server 速度非常快,可能无法跟上。

Demo

% http_load -rate 2 -seconds 300 urls
591 fetches, 8 max parallel, 5.33606e+06 bytes, in 300 seconds
9028.87 mean bytes/connection
1.97 fetches/sec, 17786.9 bytes/sec
msecs/connect: 28.8932 mean, 44.243 max, 24.488 min
msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min
HTTP response codes:

code 200 — 591

使用