http_load:以并行复用的方式运行,用以测试webx服务器的吞吐量与负载。但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机高斯,还可以测试https类的网站请求。
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
-cmd get(|post)
url_file
One start specifier, either -parallel or-rate, is required.
One start specifier, either -cmd get or-cmd post, is required.
One end specifier, either -fetches or-seconds, is required.
注:
常用方式:
./http_load –r 200 –s 900 http.txt 2>2.log 1>1.txt (-r 模拟qps)
./http_load –p 200 –s 900 http.txt 2>2.log 1>1.tx t(-p 并发数)
模拟qps200,连续压测15分钟,错误日志输出到2.log文件中,最终的压测结果输出到1.txt文件中。
结果分析:
1. 10799998 fetches, 1020 max parallel, 3.17224e+10 bytes, in 43200 seconds//说明测试中运行了10799998个请求,最大的并发进程数是1020,总计传输的数据是3.17224e+10 bytes,运行的时间是432000秒
2. 2937.26 mean bytes/connection//说明每一连接平均传输的数据量是(3.17224e+10)/10799998=2937.26
3. 250 fetches/sec, 734315 bytes/sec//说明每秒的响应请求为250,每秒传递的数据为734315 bytes
4. msecs/connect: 0.194116 mean, 30.207 max, 0.125 min//说明每链接的平均响应时间是0.194116 msecs,最大的响应时间是30.207msecs,最小的响应时间是0.125 msecs
5. msecs/first-response: 22.9355 mean, 59996.9 max, 0.07 min//说明每个请求的平均响应时间是22.9355msecs,最大的响应时间是30.207msecs,最小的响应时间是0.07msecs。
6. 23088 timeouts//运行中有23088个请求超时
7. 27503 bad byte counts//同一个http请求,不一样的结果的个数。
8. HTTP response codes://说明打开响应页面的类型,如果403的类型过多,那可能要注意是否系统遇到了瓶颈。
code 200 – 10772495
这里主要看的参数有fetches/sec,msecs/first-response。要统计timeout的比例:timeouts/ fetches。这里的超时比例就是:23088/10799998=0.213%。
同时还要服务器端的cpu,mem和load。通常load数/cpu个数<=1是比较好的。
关于超时:http_load默认的超时时间为10s,这里的超时可以自己定义,但必须是int整数,不能是浮点数。
关于每秒种的请求数-r,如果pd有给期望的pv或uv,那么可大概算出qps,一般
qps=pv/(60×60×6)一般,每天按照6个小时算。如果没有期望值和参考值,就要去一个个试,看r为多少时,系统的性能达到最大值,试出一个临界值。
注:r就代表qps,即结果中的参数fetches/sec值。如果r太大时,系统可能会压挂或者不稳定,此时qps跟r的差别较大,压测结果不具备参考性,要适当降低r值。