安装http_load
我们直接从官网上下载压缩包安装。
$ wget http://acme.com/software/http_load/http_load-09Mar2016.tar.gz
$ tar xfz http_load-09Mar2016.tar.gz
解压完用”make”安装。
$ cd http_load-09Mar2016/
$ make && sudo make install
因为包小,所以瞬间安装完。直接打http_load
命令验证下是否安装成功,你应该可以看到下面的信息:
usage: http_load [-checksum] [-throttle] [-proxy host:port] [-verbose] [-timeout secs] [-sip sip_file]
-parallel N | -rate N [-jitter]
-fetches N | -seconds N
url_file
One start specifier, either -parallel or -rate, is required.
One end specifier, either -fetches or -seconds, is required.
接下来就让我们用一下这个工具。
命令格式
使用”http_load”的主要方式就是用命令http_load <参数> <url列表文件>
。其中”url列表文件”就是一个文本文件,每行放一条你要测试的URL地址(默认只支持HTTP),”http_load”在运行时会从中随机抽取地址访问。当然你也可以只放一条,那就是针对特定地址做压测。
“http_load”的参数主要有:
-
-parallel
简写-p
: 同一时间发起的并发连接数 -
-rate
简写-r
: 每秒开启的并发连接数
-parallel
或-rate
必须且只能有一个
-
-fetches
简写-f
:总计的访问次数 -
-seconds
简写-s
:总计的访问时间
-fetches
或-seconds
必须且只能有一个
-
-proxy host:port
: 指定需经过的代理地址和端口 -
timeout secs
: 连接闲置后多久超时,默认60秒 -
-verbose
: 控制台输出详细信息
注意网上有些文章说-p
是并发进程数,千万别被带坑里了。”http_load”就一个进程,它只是模拟并发连接,不是真起了一大堆客户端进程。每个连接的调用都是非阻塞式的,因此确保了并发量。
使用示例
linux下使用vim 编辑一个文件url
写入一个域名 http://www.baidu.com 之类的网址
-
起50个并发,运行10秒
$ http_load -p 50 -s 10 url
得到结果
60119 fetches, 50 max parallel, 1.8471e+09 bytes, in 10.0032 seconds
30724 mean bytes/connection
6009.95 fetches/sec, 1.8465e+08 bytes/sec
msecs/connect: 0.336331 mean, 12.37 max, 0.021 min
msecs/first-response: 4.59145 mean, 26.663 max, 0.089 min
HTTP response codes:
code 200 -- 60119
简单说明下每行的含义:
1. 共访问了60119次,50个最大并发,获取了18亿字节的数据,用时10.0032秒
2.每次访问平均获取30724字节
3. 每秒6009.95次访问,每秒1.8亿字节数据
4. 平均每次访问0.336331毫秒,最大12.37毫秒,最小0.021毫秒
5. 首次响应平均4.59145毫秒,最大26.663毫秒,最小0.089毫秒
6. HTTP响应代码,60119次200,说明所有访问都成功了
-
每秒访问1000次(http_load上限每秒1000),总共访问10000次
http_load -r 1000 -f 10000 url