http_load
是运行在linux操作系统上的命令行测试工具, 用来对网站做压力测试.

下载地址:http://www.acme.com/software/http_load/http_load-12mar2006.tar.gz

程序非常小,解压后也不到100K.安装也很简单直接make;make instlall 就行。

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

命令格式:http_load   -p
并发访问进程数   -s
访问时间   需要访问的URL文件

http_load能测试出什么性能指标?
2008/11/06 15:25

测试网站每秒所能承受的平均访问量(吞吐量,
单位时间内的事物处理能力)

http_load -parallel 5 -fetches 1000 urls.txt
这段命令行是同时使用5个进程,随机访问urls.txt中的网址列表,总共访问1000次。运行之后的结果:

1000 fetches, 5 max parallel, 6e+06 bytes, in
58.1026 seconds
6000 mean bytes/connection
17.2109 fetches/sec, 103266 bytes/sec(吞吐量)
msecs/connect: 0.403263 mean, 68.603 max, 0.194
min(响应时间)
msecs/first-response: 284.133 mean, 5410.13 max, 55.735 min
HTTP response codes:
code 200 — 1000

从上面的运行结果来看,目标网站仅仅能够承受每秒17次访问,不够强壮。

测试网站是否能承受住预期的访问压力(大量用户并发访问,
持续一段时间)

http_load -rate 2 -seconds 300 urls.txt
在300秒内保持一定的频率访问目标url。

:
不要测试上线之后的网站,压垮了可不好玩

http_load学习心得:

测试网站每秒所能承受的平均访问量(吞吐量)

http_load -parallel 5 -fetches 1000
urls.txt

这段命令行是同时使用5个进程,随机访问urls.txt中的网址列表,总共访问1000次。运行之后的结果:

1000 fetches, 5 max parallel, 6e+06 bytes, in 58.1026
seconds
6000 mean bytes/connection
17.2109 fetches/sec, 103266 bytes/sec
msecs/connect: 0.403263 mean, 68.603 max, 0.194 min
msecs/first-response: 284.133 mean, 5410.13 max, 55.735 min
HTTP response codes:
code 200 — 1000

从上面的运行结果来看,目标网站仅仅能够承受每秒17次访问,不够强壮。

测试网站是否能承受住预期的访问压力(

http_load -rate 2 -seconds 300
urls.txt

在300秒内保持一定的频率访问目标url。

注:

  • urls.txt保存要访问的url列表,每行一个
  • 不要测试上线之后的网站,压垮了可不好玩

例如:

1.http_load -parallel 5 -fetches 1000 urls.txt

2.http_load -rate 2 -seconds 300 urls.txt

3. http_load -p 30 -s
60   urllist.txt

4. http_load -parallel 50 -s 10 urls.txt
      
这段命令行是同时使用50个进程,随机访问urls.txt中的网址列表,总共访问10秒。

参数说明:

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

参数是可以自由组合的,参数之间的选择并没有什么限制。

urls.txt保存要访问的url列表,

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, in
10.0148 seconds
5916 mean bytes/connection
4.89274 fetches/sec, 28945.5 bytes/sec
(重要性能指标吞吐量)
msecs/connect
: 28.8932 mean, 44.243 max, 24.488
min(重要指标响应时间)

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.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
这个值得是根据 49 fetches / 10.0148 seconds 秒计算出来的
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
他们分别对应的常用性能指标参数
Qpt-每秒响应用户数和response time,每连接响应用户时间。
测试的结果主要也是看这两个值。当然仅有这两个指标并不能完成对性能的分析,我们还需要对服务器的cpu、memory进行分析,才能得出结论

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

http_load测试参数比较

6月 11th, 2008 Posted in http_load < by Johnny Woo
>

./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
如果是动态页面,由于返回数据内容不同.则此报错可以忽略

web服务器压力测试工具的更多相关文章

  1. Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍

    一.http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把 ...

  2. [转]web服务器压力测试工具

    http_load学习心得: 测试网站每秒所能承受的平均访问量(吞吐量) http_load -parallel 5 -fetches 1000 urls.txt这段命令行是同时使用5个进程,随机访问 ...

  3. 网站服务器压力Web性能测试(1):Apache Bench:Apache自带服务器压力测试工具

    一个网站或者博客到底能够承受多大的用户访问量经常是我们在用VPS或者独立服务器搭建网站了最关心的问题,还有不少人喜欢对LNMP或者LAMP进行一些优化以便提高Web性能,而优化后到底有多大的效果,就需 ...

  4. Web服务器压力测试一例

    近期部门新上线一个服务,我们使用ab和locust分别测试 目前项目属于demo阶段,对访问量的支持不要求太高,我们暂且设定在500请求,20并发 工具介绍 ab ab全称为:Apache HTTP ...

  5. 三种web性能压力测试工具

    三种web性能压力测试工具http_load webbench ab小结 题记:压力和性能测试工具很多,下文讨论的是我觉得比较容易上手,用的比较多的三种 http_load 下载地址:http://w ...

  6. [AapacheBench工具]web性能压力测试工具的应用与实践

    背景:网站性能压力测试是性能调优过程中必不可少的一环.服务器负载太大而影响程序效率是很常见的事情,一个网站到底能够承受多大的用户访问量经常是我们最关心的问题.因此,只有让服务器处在高压情况下才能真正体 ...

  7. (总结)Web性能压力测试工具之WebBench详解

      PS:在运维工作中,压力测试是一项很重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验.但是,在压力测试中存在一个共性,那就是压力 ...

  8. Web性能压力测试工具之WebBench

    在运维工作中,压力测试是一项很重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验.但是,在压力测试中存在一个共性,那就是压力测试的结果 ...

  9. Web性能压力测试工具之WebBench详解

    PS:在运维工作中,压力测试是一项很重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验.但是,在压力测试中存在一个共性,那就是压力测试 ...

随机推荐

  1. c++ 弧度值与角度值的转换

    Rad_to_deg --- 弧度_到_角度 的 比率Rad_to_deg = 45.0 / atan(1.0): 弧度值到角度值的转换 用 角度 = 弧度值* Rad_to_deg 角度值到弧度值的 ...

  2. Hadoop HDFS的常用命令

    1.将目录/root/data/下的item.txt复制到HDFS下的/user/root下: hadoop fs -copyFromLocal /root/data/item.txt itemdat ...

  3. Clean Code – Chapter 6 Objects and Data Structures

    Data Abstraction Hiding implementation Data/Object Anti-Symmetry Objects hide their data behind abst ...

  4. 打开链接(C# / 默认浏览器)

    System.Diagnostics.Process.Start("http://www.baidu.com/");

  5. SQLite 入门教程(三)好多约束 Constraints(转)

    转于: SQLite 入门教程(三)好多约束 Constraints 一.约束 Constraints 在上一篇随笔的结尾,我提到了约束, 但是在那里我把它翻译成了限定符,不太准确,这里先更正一下,应 ...

  6. IOS - view之间切换

    //进入下一页 - (IBAction)Go:(id)sender { TwoViewController *twoVC = [[TwoViewController alloc] init];//这里 ...

  7. JS/JQ综合总结

    总结 js部分 一 语法结构 1 区分大小写 2注意 //单行  /*多行注释*/ 3子面量(直接量 literal) 12//数字 5.8//小数 "hello"字符串 true ...

  8. Windows Server 2012 R2中的网络诊断命令

    Get-NetAdapter Get-NetIPAddress Get-NetIPConfiguration(GIP) TNC :Pinging Servers and Trace Route tnc ...

  9. Microsoft.Net中数字签名技术

    概 述:本文以Microsoft.Net中创建签名的CAB文件为例,说明如何创建签名文件,从而使你的代码能够安全的在INTERNET上公布.希望能起到抛转引玉的作用. keyword:数字签名,Act ...

  10. 【14】在资源管理类中小心copying行为

    1.为什么要使用资源管理类? 资源管理类的思路就是,栈上的对象,封装堆上分配的资源,确保一定会释放资源.auto_ptr和shared_ptr就是资源管理类,行为上像指针. 2.auto_ptr和sh ...