http_load命令使用方法¶
简介:
程序非常小,解压后也不到100K
http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载。
但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死。
还可以测试HTTPS类的网站请求。
安装:
//下载安装,安装地址:
http://www.acme.com/software/http_load/
命令格式:
http_load -p 并发访问进程数 -s 访问时间 需要访问的URL文件
参数说明:
-parallel (-p): 并发的用户进程数
-fetches (-f): 总计的访问次数
-rate (-r): 每秒的访问频率
-seconds (-s): 总计的访问时间
备注
URL最好超过50-100个测试效果比较好
实例¶
实例:
./http_load -rate 5 -seconds 10 urllist.txt
实例说明:
执行一个持续时间为10秒的测试,每秒频率为5
urllist.txt中内容为:
http://bbs.programfan.info/abc/test1.html
http://bbs.programfan.info/abc/test2.html
http://bbs.programfan.info/abc/test3.html
結果:
49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds
5916 mean bytes/connection,
4.89274 fetches/sec, 28945.5 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 — 49
結果说明:
1. 49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds
说明在上面的测试中运行了49个请求,最大的并发进程数是2,总计传输的数据是289884bytes,运行的时间是10.0148 秒
2. 5916 mean bytes/connection
说明每一连接平均传输的数据量289884/49=5916
3. 4.89274 fetches/sec, 28945.5 bytes/sec
说明每秒的响应请求为4.89274,每秒传递的数据为28945.5 bytes/sec
4. msecs/connect: 28.8932 mean, 44.243 max, 24.488 min
说明每连接的平均响应时间是28.8932 msecs,最大的响应时间44.243 msecs,最小的响应时间24.488 msecs
5. msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min
6. HTTP response codes: code 200 — 49
说明打开响应页面的类型,如果403的类型过多,那可能
特殊说明:
测试结果中主要的指标是 fetches/sec、msecs/connect 这个选项,即服务器每秒能够响应的查询次数!
常见错误¶
常见错误-byte count wrong:
http_load在处理时会去关注每次访问同一个URL返回结果(即字节数)是否一致
若不一致就会抛出byte count wrong所以动态页面可以忽略这个错误信息
或者可以对代码做修改http_load.c
常见错误-too many open files:
系统限制的open files太小,ulimit -n 修改open files值即可
常见错误-无法发送大请求 (请求长度>600个字符):
默认接受请求的buf大小 http_load.c
常见错误-Cannot assign requested address:
客户端频繁的连服务器,由于每次连接都在很短的时间内结束,导致很多的TIME_WAIT
以至于用光了可用的端口号,所以新的连接没办法绑定端口,所以要改客户端机器的配置
在sysctl.conf里加:
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_timestamps=1 开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用
net.ipv4.tcp_tw_recycle=1 表示开启TCP连接中TIME-WAIT sockets的快速回收