web压测工具http_load

时间:2022-11-05 09:41:04

1.什么是http_load
http_load是一款基于Linux平台的web服务器性能测试工具,用于测试web服务器的吞吐量与负载,web页面的性能。

2.http_load的安装
1)下载地址:http://www.acme.com/software/http_load/http_load-09Mar2016.tar.gz 
2)安装
tar xzvfhttp_load-12mar2006.tar.gz解压---------------------如果不是用gzip下载的,用这个命令解压:tar -xvf http_load-12mar2006.tar.gz

进入目录

执行make & make install命令

查看安装结果,输入http_load不报错即成功 
web压测工具http_load

3.http_load的使用
1)创建文件:新建一个.txt文件,用来存储目标URL(每个URL占一行)

vi urls
写入要测的服务器域名或IP地址
比如urls里是http://www.baidu.com/ 亦或是192.168.0.1这一类的都可以测

2)使用示例

输入命令 http_load -parallel 5 -seconds 10 youname.txt ---------------------------./http_load -rate 5 -seconds 10 urls

web压测工具http_load

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

汇总使用方法

下载并解压缩之后,进入工具的根目录直接make,就可以得到可执行的工具。其使用方法如下图所示:

web压测工具http_load

图中所示的url.txt内容是若干url链接,每行一个,比如:http://127.0.0.1:80/index.html

详细说明一下使用格式:

./http_load [-checksum] [-throttle] [-proxy host:port] [-verbose] [timeout secs] [-sip sip_file]

-parallel N | -rate N [-jitter]

-fetches N | -seconds N

url_file

选项与参数:

-fetches:总计要访问url的次数,无论成功失败都记为一次,到达数量后程序退出。

-rate:每秒访问的次数(即访问频率),控制性能测试的速度。

-seconds:工具运行的时间,到达seconds设置的时间后程序退出。

-parallel:最大并发访问的数目,控制性能测试的速度。

-verbose:使用该选项后,每60秒会在屏幕上打印一次当前测试的进度信息。

-jitter:该选项必须与-rate同时使用,表示实际的访问频率会在rate设置的值上下随机波动10%的幅度。

-checksum:由于要访问某个url很多次,为了保证每次访问时收到的服务器回包内容都一样,可以采用checksum检查,不一致会在屏幕上输出错误信息。

-cipher:使用SSL层的时候会用到此参数(url是https开头),使用特定的密码集。

-timeout:设置超时时间,以秒为单位,默认为60秒。每超过一次则记为一次超时的连接

-proxy:设置web代理,格式为-proxy host:port

-throttle:限流模式,限制每秒收到的数据量,单位bytes/sec。该模式下默认限制为3360bytes/sec。

-sip:指定一个source ip文件,该文件每一行都是ip+port的形式。

需要特别说明的是,-parallel参数和-rate参数中必须有一个,用于指定发请求包的方式;-fetches和-seconds两个参数必须有一个,用于指定程序的终止条件。

执行结果:
说明执行了一个持续时间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
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、men进行分析,才能得出结论

4.常见错误
1)byte count wrong
http_load在处理时会去关注每次访问同一个URL返回结果(即字节数)是否一致,若不一致就会抛出byte count wrong

2)too many open files
系统限制的open files太小,ulimit -n 修改open files值即可

3)无法发送大请求 (请求长度>600个字符)
默认接受请求的buf大小 http_load.c

4)Cannot assign requested address
客户端频繁的连服务器,由于每次连接都在很短的时间内结束,导致很多的TIME_WAIT,以至于用光了可用的端口号,所以新的连接没办法绑定端口,所以要改客户端机器的配置,
在sysctl.conf里加:
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_timestamps=1 开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用
net.ipv4.tcp_tw_recycle=1 表示开启TCP连接中TIME-WAIT sockets的快速回收

转载于:https://www.cnblogs.com/shijingjing07/p/6539179.html

web压测工具http_load的更多相关文章

  1. web压测工具http_load原理分析

    一.前言 http_load是一款测试web服务器性能的开源工具,从下面的网址可以下载到最新版本的http_load: http://www.acme.com/software/http_load/ ...

  2. Web压测工具之Webbench和http_load

    Webbench简介 是知名的网站压力测试工具,能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况. webbench的标准测试可以向我们展示服务器的两项内容:每秒钟相应请求数和每 ...

  3. web服务器压测工具siege、ab

    web服务器压测工具也挺多,这里只介绍我用过的这两种--siege(for linux).ab(for windows). 一.siege 1.简介: Siege是一款开源的压力测试工具,设计用于评估 ...

  4. 网站(Web)压测工具Webbench源码分析

    一.我与webbench二三事 Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能.Webbench ...

  5. SuperBenchmarker一个用.NET编写的压测工具

    0x01 前言 在这之前想必大家对ab(http)与abs(https)也有一些了解,我们今天不去看ab和abs,SuperBenchmarker(sb.exe)是一个压测工具,他是一个受Apache ...

  6. python服务端多进程压测工具

    本文描述一个python实现的多进程压测工具,这个压测工具的特点如下: 多进程 在大多数情况下,压测一般适用于IO密集型场景(如访问接口并等待返回),在这种场景下多线程多进程的区分并不明显(详情请参见 ...

  7. 压测工具Locuse的使用

    我是听朋友提起的"蝗虫"(Locust),然而她不想用python,我就拿来试一试~ http的 各种压测工具也已经太多了,所以主要是试试locust在当前比较流行的rpc协议上的 ...

  8. Http压测工具wrk使用指南

    用过了很多压测工具,却一直没找到中意的那款.最近试了wrk感觉不错,写下这份使用指南给自己备忘用,如果能帮到你,那也很好. 安装 wrk支持大多数类UNIX系统,不支持windows.需要操作系统支持 ...

  9. [软件测试]网站压测工具Webbench源码分析

    一.我与webbench二三事 Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能.Webbench ...

随机推荐

  1. Target-Action回调模式

    前面的博客中提到过回调的概念,是在OC通过协议来实现的回调,和Java中的接口的回调极为相似,下面来介绍另一种方法回调模式: Target-Action回调.首先我们来从字面意思来理解一下Target ...

  2. Maven 整合 spring profile实现多环境自动切换

    Maven 整合 spring profile实现多环境自动切换 时间:2014-03-19 15:32来源:Internet 作者:Internet 点击:525次 profile主要用在项目多环境 ...

  3. JavaScript 调试小技巧

    'debugger;' 除了console.log,debugger就是另一个我很喜欢的快速调试的工具,将debugger加入代码之后,Chrome会自动在插入它的地方停止,很像C或者Java里面打断 ...

  4. iOS开发工具(上班需要必备的软件)

    1 源代码管理工具 SVN:SVN可以使用的客户端软件有Cornerstone,SmartSVN,svnX,乌龟SVN,莲花版svn等等 或者git(sourcetree) 2 有道词典 3 Foxm ...

  5. $GLOBALS['HTTP_RAW_POST_DATA'] 和$_POST的区别

    $_POST:通过 HTTP POST 方法传递的变量组成的数组.是自动全局变量. $GLOBALS['HTTP_RAW_POST_DATA'] :总是产生 $HTTP_RAW_POST_DATA 变 ...

  6. 监听turtlesim仿真器,发送数据到实际的机器人--20

    摘要: 原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/ 1.0.本教程教你写实际的ros程序,控制自己的机器人.采用的是PC端的ubuntu+ros.终 ...

  7. Python中的九九乘法表(for循环)

    用for循环写出的九九乘法表(包括函数的调用) #方向一 for i in range(1,10):    for j in range(1,i+1):        d = i * j        ...

  8. 通过Socket实现TCP编程,用户登录之服务器相应客户端,客户端和服务端之间的通信

    服务器端: 1.创建ServerSocket对象,绑定监听端口: 2.通过accept()方法监听客户端请求: 3.建立连接后通过输入流读取客户端发送的请求信息; 4.通过输出流向客户端发送响应信息; ...

  9. cin与cout格式化输出

    cin 中“<<”流 输入运算符 ----------------------------------------------------------------------------- ...

  10. Python进阶【第七篇】文件处理

    一.文件操作 在Python中,文件读写是最常见的操作.对文件的操作为: #1. 打开文件,得到文件句柄并赋值给一个变量 f=open('a.txt','r',encoding='utf-8') #默 ...