http_load

简介

http_load以并行复用的方式运行,用以测试Web服务器的吞吐量与负载。但是它不同于大多数压力测试工具,其可以以一个单一的进程运行,这样就不会把客户机搞死,还可以测试HTTPS类的网站请求。关于http_load的详细信息参见这里,点击这里下载。

安装

# tar xzvf http_load-09Mar2016.tar.gz
# cd http_load-09Mar2016
# make && make install
  • 1
  • 2
  • 3

测试

http_load的命令参数比较简单,直接在命令行下执行http_load就能看到,具体如下:

-parallel简写-p:并发的用户进程数。 
-fetches简写-f:总计的访问次数 
-rate简写-r:每秒的访问频率 
-seconds简写-s:总计的访问时间

http_load的命令格式也比较简单,各参数可以自由组合,常用格式如下:

$ http_load -p 并发访问进程数 -f 访问总数 需要访问的URL文件
$ http_load -r 每秒访问频率 -s 访问时间 需要访问的URL文件
  • 1
  • 2

通常:参数pf一起使用,参数rs一起使用。

这里以某网页测试为例说明之:

$ vi test.url
http://www.xxxxx.com
  • 1
  • 2

当然上面存放请求URL的文件中,可以存放多个URL,每行一个。

$ http_load -p 5 -s 300 test.url
11694 fetches, 5 max parallel, 5.6872e+08 bytes, in 300 seconds
48633.5 mean bytes/connection
38.98 fetches/sec, 1.89573e+06 bytes/sec
msecs/connect: 10.476 mean, 9008.81 max, 5.002 min
msecs/first-response: 36.5928 mean, 5383.94 max, 16.614 min
7 timeouts
10428 bad byte counts
HTTP response codes:
  code 200 -- 7552
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

上面命令表示:5个并发进程,持续300秒请求某网页。


#http_load -r 5 -s 300 test.url
1499 fetches, 5 max parallel, 9.49031e+07 bytes, in 300.017 seconds
63310.9 mean bytes/connection
4.99638 fetches/sec, 316326 bytes/sec
msecs/connect: 21.5961 mean, 3020.17 max, 16.782 min
msecs/first-response: 36.6554 mean, 61.907 max, 17.919 min
1261 bad byte counts
HTTP response codes:
  code 200 -- 1261
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

上面命令表示:每秒频率为5条请求,持续300秒请求某网页。 
结果分析如下: 
(1)1499 fetches, 5 max parallel, 9.49031e+07 bytes, in 300.017 seconds 
说明在上面的测试中运行了1499个请求,最大的并发进程数是5,总计传输的数据是9.49031e+07 bytes,运行的时间是300.017秒 
(2)63310.9 mean bytes/connection 
说明每个连接平均传输的数据量63310.9/1499=42.24 
(3)4.99638 fetches/sec, 316326 bytes/sec 
说明每秒的响应请求为4.99638,每秒传递的数据为316326 bytes/sec 
(4)msecs/connect: 21.5961 mean, 3020.17 max, 16.782 min 
说明每个连接的平均响应时间是21.5961 msecs,最大的响应时间3020.17 msecs,最小的响应时间16.782 msecs 
(5)HTTP response codes: code 200 — 1261 
说明打开响应页面的类型,如果403的类型过多,那可能要注意是否系统遇到了瓶颈 
特殊说明:测试结果中主要的指标是fetches/sec和msecs/connect,即服务器每秒能够响应的请求次数和每个连接的平均响应时间。当然仅有这两个指标并不能完成对性能的分析,这两个指标主要反映的是QPS和RT。此外,还需要对服务器的CPU(idle和load)、Mem进行分析,才能得出结论。 
需要注意的是:http_load请求方式默认为GET方式,不支持POST方式。

posted on 2018-07-17 11:52  龟仙人  阅读(900)  评论(0编辑  收藏  举报