工具下载:
配置说明:
解压后将cygwin1.dll 放置到 C:\Windows\system目录下,将http_load.exe 放置到 C: \Windows\System32目录下。 <– 这是原教程说明,个人建议解压到指定文件夹里,然后在相应文件夹里执行即可。
进入cmd命令行,输入命令http_load显示相关说明则配置成功。<– 这是原教程说明,个人建议在cmd下切换到上一步解压文件夹里,然后执行http_load即可。
使用方法:
1
|
http_load -p 10 -s 60 -r 3 -f 100 urllist.txt |
参数的含义:
- parallel 简写-p :并发的用户进程数
- -fetches 简写-f :总计的访问请求次数
- -rate 简写-r :每秒的访问频率
- -seconds简写-s :总计的访问时间
- 准备URL文件:
urllist.txt
,文件格式是每行一个URL
结果分析:
1
2
3
4
|
49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds5916 mean bytes/connection4. 89274 fetches/sec, 28945.5 bytes/secmsecs/connect: 28.8932 mean, 44.243 max, 24 .488minmsecs/first -response: 63.5362 mean, 81.624 max, 57.803 minHTTP response codes: code 200 — 49 |
- 49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds
说明在上面的测试中运行了49个请求,最大的并发进程数是2,总计传输的数据是289884bytes,运行的时间是10.0148秒 - 5916 mean bytes/connection
说明每一连接平均传输的数据量289884/49=5916 - 4.89274 fetches/sec, 28945.5 bytes/sec
说明每秒的响应请求为4.89274,每秒传递的数据为28945.5 bytes/sec - msecs/connect: 28.8932 mean, 44.243 max, 24.488 min
说明每连接的平均响应时间是28.8932 msecs,最大的响应时间44.243 msecs,最小的响应时间24.488 msecs - msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min
- HTTP response codes: code 200 — 49
说明打开响应页面的类型,如果403的类型过多,可能要注意是否系统遇到了瓶颈。
特殊说明:
测试结果中主要的指标是 fetches/sec、msecs/connect 这个选项,即服务器每秒能够响应的查询次数,用这个指标来衡量性能。似乎比 apache的ab准确率要高一些,也更有说服力一些。
4.常见错误:
(1)byte count wrong
http_load在处理时会去关注每次访问同一个URL返回结果(即字节数)是否一致,若不一致就会抛出byte count wrong
(2)too many open files
系统限制的open files太小,ulimit -n 修改open files值即可
(3)无法发送大请求 (请求长度>600个字符)
默认接受请求的buf大小 http_load.c
(4)Cannot assign requested address
客户端频繁的连服务器,由于每次连接都在很短的时间内结束,导致很多的TIME_WAIT,以至于用光了可用的端口号,所以新的连接没办法绑定端口,所以要改客户端机器的配置,
在Linux系统下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的快速回收