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

  • 相关阅读:
    dedecms初解
    Java二十三设计模式之------单例模式
    Java二十三设计模式之------工厂方法模式
    数组和集合的区别及深入了解
    团队项目计划
    团队介绍及团队题目
    第二阶段冲刺(第十天)
    第二阶段冲刺(第九天)
    第二阶段冲刺(第八天)
    第二阶段冲刺(第七天)
  • 原文地址:https://www.cnblogs.com/hhwu/p/11956214.html
Copyright © 2011-2022 走看看