http_load以并行复用的方式运行,用以测试 web 服务器的吞吐量与负载。但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死。还可以测试 HTTPS 类的网站请求。
下载地址: http://soft.vpser.net/test/http_load/http_load-12mar2006.tar.gz
安装很简单
#tar zxvf http_load-12mar2006.tar.gz
#cd http_load-12mar2006
#make && make install
命令格式:
http_load -p 并发访问进程数 -s 访问时间
需要访问的URL 文件参数其实可以自由组合,参数之间的选择并没有什么限制。比如你写成 http_load -parallel 5 -seconds 300 urls.txt 也是可以的。
参数简单说明如下:
-parallel 简写 -p :含义是并发的用户进程数。
-fetches 简写 -f :含义是总计的访问次数
-rate 简写 -p :含义是每秒的访问频率
-seconds简写 -s :含义是总计的访问时间
准备URL 文件: urllist.txt ,文件格式是每行一个 URL , URL 最好超过 50 - 100 个测试效果比较好 . 文件格式
如下:
http://view.sina.cn/index.php?vt=3
http://view.sina.cn/article.php?id=3521709204420645§ion_id=w_1728851592&vt=3
命令与结果分析:
命令:http_load -p 50 -s 120 urls 说明执行了一个持续时间 1 20 秒的测试, 最大并发进程为 50
结果返回:
6308 fetches, 50 max parallel, 1.05814e+08 bytes, in 120 seconds
16774.5 mean bytes/connection
52.5665 fetches/sec, 881778 bytes/sec
msecs/connect: 101.69 mean, 108.139 max, 87.318 min
msecs/first-response: 629.104 mean, 19940.7 max, 121.203 min
1 bad byte counts
HTTP response codes:
code 200 -- 6308
结果分析:
1. 6308 fetches, 50 max parallel, 1.05814e+08 bytes, in 120 seconds 说明在上面的测试中运行了 6308 个请求,最大的并发进程数是 50 ,总计传输的数据是 1.05814e+08 bytes,运行的时间是 120 秒
2. 16774.5 mean bytes/connection说明每一连接平均传输的数据量 1.05814e+08 / 6308 = 16774
3. 52.5665 fetches/sec, 881778 bytes/sec 说明每秒的响应请求为 52.5665 ,每秒传递的数据为 881778 bytes/sec
4. msecs/connect: 101.69 mean, 108.139 max, 87.318 min 说明每连接的平均响应时间是 101.69 msecs,最大的响应时间 108.139 msecs,最小的响应时间 87.318 msecs
5. msecs/first-response: 629.104 mean, 19940.7 max, 121.203 min(首次请求情况)
6. HTTP response codes: code 200 -- 6308 说明打开响应页面的类型, (200表示正常相应,如果其他 类型 状态码 过多,那可能要注意是否系统遇到了瓶颈 【 403 】或出了问题)
特殊说明:
测试结果中主要的指标是 fetches/sec 、 msecs/connect 这个选项,即服务器每秒能够响应的查询次数,用这个指标来衡量性能。似乎比 apache 的 ab 准确率要高一些,也更有说服力一些。
当然仅有这两个指标并不能完成对性能的分析,我们还需要对服务器的cpu 、 men 进行分析,才能得出结论 。而且这两项指标只是用来测试服务器的承载的压力情况,也不能完全作为代码执行效率的参考。对代码性能的具体分析。还是最好借助 xhprof分析。