linux下令行工具http_load和apache的ab很相似,用来做网站的压力测试,他们功能比较有限,无法实现loadrunner那样录制脚本。http_load使用方式:
1、获取httpload:
wget http://acme.com/software/http_load/http_load-12mar2006.tar.gz
tar -zxvf http_load-12mar2006.tar.gz
进入到解压目录执行make
[root@test-74-8 http_load-12mar2006]# make
gcc -Wall -O -c http_load.c
http_load.c: In function ‘main’:
http_load.c:413: 警告:隐式声明函数 ‘time’
http_load.c: In function ‘handle_connect’:
http_load.c:937: 警告:传递参数 5 (属于 ‘getsockopt’) 给指针时目标与指针有/无符号不一致
gcc -Wall -O -c timers.c
gcc -Wall -O http_load.o timers.o -s -o http_load
2、了解参数和文件:
参数 | 全称 | 含义 |
-p | -parallel | 并发的用户进程数。 |
-f | -fetches | 总计的访问次数 |
-r | -rate | 含义是每秒的访问频率 |
-s | -seconds | 连续的访问时间 |
url | | 网站连接地址或url文件 |
3、开始测试
./http_load -p 1021 -s 10 url #url为刚刚新建的文件
SSH执行以上命令,则向www.kwx.gd并发1021个线程,时间为连续10秒。
4、分析结果
41 fetches, 1020 max parallel, 851898 bytes, in 10.0008 seconds
# 一共请求连接41次,最大并发线程1020个,持续10.0008秒内,总传输速率为 851898bytes
20778 mean bytes/connection
#每次请求连接平均数据量(851898÷41)
4.09969 fetches/sec, 85183.3 bytes/sec
#每秒的响应请求连接数为4.09969个,每秒传输的数据为85183.3btyes/毫秒
msecs/connect: 264.607 mean, 269.482 max, 262.187 min
#每次连接平均响应时间:264.607毫秒,最大时间:269.482毫秒,最小时间:262.187毫秒
msecs/first-response: 1949.27 mean, 5394.21 max, 380.501 min
#每次连接平均返回时间:1949.27毫秒,最大时间:5394.21毫秒,最小时间:380.501毫秒
HTTP response codes:
code 200 -- 41
#HTTP返回码:200 ,一共41次。
测试结果中,主要参考fetches/sec、msecs/connect数值,即服务器每秒能够响应的查询次数的数值来衡量性能,当然,单纯数值判断并不准确,还要参考CPU、内存的等消耗综合考虑。