集成式测试工具http_load

一、http_load简介

  http_load基于linux平台的一种性能测工具。以并行复用的方式运行,用以测试web服务器的吞吐量与负载,测试web页面的性能。
优点
1.基于命令行,简单、易于上手
2.小巧轻便,解压缩后不到100k
3.开源,免费
缺点
1.仅适用于web页面的性能测试,不适用于访问数据库
2.测试结果分析有限
3.平台依赖linux

http_load以并行复用的方式运行,用以测试web服务器的吞吐量和负载。但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死。可以测试HTTPS类的网站请求。

二、安装方法
官方下载地址:http://www.acme.com/software/http_load/
官网挺简陋的,一看就感觉是一个小工具……
安装也很简单,直接预编译好了,解压,make && make install就ok了。

解压缩:#tar zxvf http_load-12mar2006.tar.gz
  进入http_load 目录:#cd http_load-12mar2006
  编译:#make
  安装:#make install
  如果报错:“无法创建一般文件‘/usr/local/man/man1’: 没有那个文件或目录”
  可先mkdir /usr/local/man 再次make install

三、参数说明

-fetches 简写-f :含义是总计的访问次数
  -rate 简写-r :含义是每秒的访问频率
  -seconds简写-s :含义是总计的访问时间
  -parallel 简写-p:并发访问的线程数
  urls是一个url 列表,每个url 单独的一行。可以单个页面。

四、应用实例
到http_load的安装目录下,建立一个urls.txt文件,这个文件里可以放多个url列表(你要测试的服务器上的url列表),逐行隔开。http_load运行的时候你可以指定这个urls.txt文件,这样它会随机访问目标url列表中的url,url最好超过50-100个测试效果比较好.文件格式如下
文件格式如下:

http://iceskysl.1sters.com/?action=show&id=336
http://iceskysl.1sters.com/?action=show&id=335
http://iceskysl.1sters.com/?action=show&id=332
http://iceskysl.1sters.com/?action=show&id=32

参数了解了,我们来运行一条命令, 来看看它的返回结果

命令./http_load -rate 5 -seconds 10 urls
命令解释
: 执行一个持续时间为10秒的测试,每秒的访问频率为5次。

49 fetches, 2 max parallel, 289884 bytes, in10.0148 seconds
5916 mean bytes/connection
4.89274 fetches/sec, 28945.5 bytes/sec(重要性能指标吞吐量)
msecs/connect
: 28.8932 mean, 44.243 max, 24.488min(重要指标响应时间)
msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min
HTTP response codes:
code 200 — 49

结果分析:
1.49 fetches, 2 max parallel, 289884 bytes, in 10.0148seconds
说明在上面的测试中运行了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
这个值得是根据 49 fetches / 10.0148 seconds 秒计算出来的
4.msecs/connect: 28.8932 mean, 44.243 max, 24.488min (响应时间: 每次请求需要的时间, 平均, 最大, 最小)
说明每连接的平均响应时间是28.8932 msecs,最大的响应时间44.243 msecs,最小的响应时间24.488msecs
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
他们分别对应的常用性能指标参数

Qpt-每秒响应用户数和response time,每连接响应用户时间。
测试的结果主要也是看这两个值。当然仅有这两个指标并不能完成对性能的分析,我们还需要对服务器的cpu、memory进行分析,才能得出结论

,另外,测试结果中主要的指标是 fetches/sec这个选项,即服务器每秒能够响应的查询次数,用这个指标来衡量性能。似乎比apache的ab准确率要高一些,也更有说服力一些。

五、参数比较

./http_load -parallel 200 -seconds 10 urls
按照固定时间来结束测试,这样可以比较相同时间内被测服务器的响应速度.
./http_load -parallel 200 -fetches 1000 urls
按照固定申请数来测试,这样可以比较相同访问量下返回的响应速度.

虽然两者都可以获取到服务器的响应速度
但是使用fetches更容易让被测服务器收到压力
由于seconds控制测试时间,很有可能在短时间内测试客户端并没有发起足够数量的请求
而服务端在收到足够压力之前,测试就已经结束了.
有一些情况,诸如内存泄漏以及资源回收不利或者对后面的响应速度越来越慢等情况
在这种测试条件下不容易发生
而使用fetchs,能够让客户端保证确定请求数的全部处理.
使用时间作为控制参数
会由于测试人员不够耐心而人为将seconds参数设置过小
导致测试结果失去意义

所以,最后建议使用fetches作为测试参数.用以作为基准进行比较

http_load做测试时出现”byte count wrong”的错误,
如果httpd_load获取到的页面数据和上次不一致
则会报错byte count wrong
如果是动态页面,由于返回数据内容不同.则此报错可以忽略




你可能感兴趣的:(性能测试,http_load,压力测试,访问量)