程序非常小,解压后也不到100K
http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载。但是它不同于大多数压力测试工
具,它可以以一个单一的进程运行,一般不会把客户机搞死。还可以测试HTTPS类的网站请求。
命令格式: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个测试效果比较好.文件格式
如下:
www.vpser.net/uncategoriz…
www.vpser.net/vps-cp/hype…
www.vpser.net/coupons/dia…
www.vpser.net/security/vp…
例如:
http_load -p 30 -s 60 urllist.txt
参数了解了,我们来看运行一条命令来看看它的返回结果
命令:% ./http_load -rate 5 -seconds 10 urls说明执行了一个持续时间10秒的测试,每秒的频率为5。
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.488 minmsecs/first
-response: 63.5362 mean, 81.624 max, 57.803 minHTTP 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 这个选项,即服务器每秒能够响应的查询次数,
用这个指标来衡量性能。似乎比 apache的ab准确率要高一些,也更有说服力一些。
Qpt-每秒响应用户数和response time,每连接响应用户时间。
测试的结果主要也是看这两个值。当然仅有这两个指标并不能完成对性能的分析,我们还需要对服务器的 cpu、men进行分析,才能得出结论
[root@localhost /]# wget www.acme.com/software/ht…
--2014-11-03 19:27:56-- www.acme.com/software/ht…
Resolving www.acme.com... 216.27.178.28
Connecting to www.acme.com|216.27.178.28|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 17199 (17K) [application/x-tar]
Saving to: `http_load-14aug2014.tar.gz'
100%[===================================================================================>] 17,199 29.9K/s in 0.6s
2014-11-03 19:27:58 (29.9 KB/s) - `http_load-14aug2014.tar.gz' saved [17199/17199]
[root@localhost /]# tar zxvf http_load-14aug2014.tar.gz
http_load-14aug2014/
http_load-14aug2014/Makefile
http_load-14aug2014/README
http_load-14aug2014/http_load.1
http_load-14aug2014/http_load.c
http_load-14aug2014/make_test_files
http_load-14aug2014/port.h
http_load-14aug2014/timers.c
http_load-14aug2014/timers.h
http_load-14aug2014/version.h
http_load-14aug2014/FILES
[root@localhost /]# cd http_load-14aug2014
[root@localhost http_load-14aug2014]# make&&make install
cc -O -ansi -pedantic -U__STRICT_ANSI__ -Wall -Wpointer-arith -Wshadow -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wno-long-long -c timers.c
cc -O -ansi -pedantic -U__STRICT_ANSI__ -Wall -Wpointer-arith -Wshadow -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wno-long-long http_load.c timers.o -s -o http_load
rm -f /usr/local/bin/http_load
cp http_load /usr/local/bin
rm -f /usr/local/man/man1/http_load.1
cp http_load.1 /usr/local/man/man1
[root@localhost http_load-14aug2014]# touch test_url
[root@localhost http_load-14aug2014]# vi test_url
[root@localhost http_load-14aug2014]# more test_url
www.iciba.com/symbolic
w3school.com.cn/sql/sql_del…
http://192.168.50.11/login?back_url=http%3A%2F%2F192.168.50.11%2F
[root@localhost http_load-14aug2014]# http_load -p 100 -s test_url
http_load: seconds must be at least 1
[root@localhost http_load-14aug2014]# http_load -p 100 -s 10 test_url
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
www.iciba.com/symbolic: byte count wrong
266 fetches, 100 max parallel, 4.49471e+06 bytes, in 10.0002 seconds
16897.4 mean bytes/connection
26.5993 fetches/sec, 449460 bytes/sec
msecs/connect: 228.98 mean, 3094.04 max, 0.423 min
msecs/first-response: 266.761 mean, 3097.11 max, 6.135 min
30 bad byte counts
HTTP response codes:
code 200 -- 266
1:266个请求,最大并发数100,总计传输的数据为4.49471e+06bytes,运行时间为 10.0002秒,关注点:总请求数、最大并发进程数;
2:每一连接平均传输的数据量,等于4.49471e+06bytes/266=16897.4;
3:每秒响应的请求数为26.5993,每秒传递的数据量为449460,关注点:每秒响应的请求数(对应LoadRunner中的每秒响应用户数);
4:每次连接的平均响应时间是228.98 msecs,最大响应时间3094.04 msecs,最小响应时间0.423msecs,关注点:每个连接的平均响应时间(对应quicktestProfessional中的response time,每连接响应用户时间 );
5:待补充;
6 & 7:表示打开响应页面的HTML状态码,200表示响应成功;如果403的类型过多,那可能要注意是否系统遇到了瓶颈。
[root@localhost http_load-14aug2014]# http_load -p 100 -s 10 test_url
214 fetches, 100 max parallel, 5.00758e+06 bytes, in 10 seconds
23399.9 mean bytes/connection
21.4 fetches/sec, 500758 bytes/sec
msecs/connect: 66.9439 mean, 5226.2 max, 0.039 min
msecs/first-response: 198.712 mean, 3557.21 max, 0.204 min
HTTP response codes:
code 200 -- 131
code 403 -- 83