zoukankan      html  css  js  c++  java
  • web压测工具http_load

    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不报错即成功 
    这里写图片描述

    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

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

    汇总使用方法

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

    图中所示的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

  • 相关阅读:
    OSCP Learning Notes Buffer Overflows(3)
    OSCP Learning Notes Buffer Overflows(5)
    OSCP Learning Notes Exploit(3)
    OSCP Learning Notes Exploit(4)
    OSCP Learning Notes Exploit(1)
    OSCP Learning Notes Netcat
    OSCP Learning Notes Buffer Overflows(4)
    OSCP Learning Notes Buffer Overflows(1)
    OSCP Learning Notes Exploit(2)
    C++格式化输出 Learner
  • 原文地址:https://www.cnblogs.com/hhwu/p/11956214.html
Copyright © 2011-2022 走看看