• http_load


    http_load

    简介

    http_load以并行复用的方式运行,用以测试Web服务器的吞吐量与负载。但是它不同于大多数压力测试工具,其可以以一个单一的进程运行,这样就不会把客户机搞死,还可以测试HTTPS类的网站请求。关于http_load的详细信息参见这里,点击这里下载。

    安装

    # tar xzvf http_load-09Mar2016.tar.gz
    # cd http_load-09Mar2016
    # make && make install
    • 1
    • 2
    • 3

    测试

    http_load的命令参数比较简单,直接在命令行下执行http_load就能看到,具体如下:

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

    http_load的命令格式也比较简单,各参数可以自由组合,常用格式如下:

    $ http_load -p 并发访问进程数 -f 访问总数 需要访问的URL文件
    $ http_load -r 每秒访问频率 -s 访问时间 需要访问的URL文件
    • 1
    • 2

    通常:参数pf一起使用,参数rs一起使用。

    这里以某网页测试为例说明之:

    $ vi test.url
    http://www.xxxxx.com
    • 1
    • 2

    当然上面存放请求URL的文件中,可以存放多个URL,每行一个。

    $ http_load -p 5 -s 300 test.url
    11694 fetches, 5 max parallel, 5.6872e+08 bytes, in 300 seconds
    48633.5 mean bytes/connection
    38.98 fetches/sec, 1.89573e+06 bytes/sec
    msecs/connect: 10.476 mean, 9008.81 max, 5.002 min
    msecs/first-response: 36.5928 mean, 5383.94 max, 16.614 min
    7 timeouts
    10428 bad byte counts
    HTTP response codes:
      code 200 -- 7552
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    上面命令表示:5个并发进程,持续300秒请求某网页。


    #http_load -r 5 -s 300 test.url
    1499 fetches, 5 max parallel, 9.49031e+07 bytes, in 300.017 seconds
    63310.9 mean bytes/connection
    4.99638 fetches/sec, 316326 bytes/sec
    msecs/connect: 21.5961 mean, 3020.17 max, 16.782 min
    msecs/first-response: 36.6554 mean, 61.907 max, 17.919 min
    1261 bad byte counts
    HTTP response codes:
      code 200 -- 1261
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    上面命令表示:每秒频率为5条请求,持续300秒请求某网页。 
    结果分析如下: 
    (1)1499 fetches, 5 max parallel, 9.49031e+07 bytes, in 300.017 seconds 
    说明在上面的测试中运行了1499个请求,最大的并发进程数是5,总计传输的数据是9.49031e+07 bytes,运行的时间是300.017秒 
    (2)63310.9 mean bytes/connection 
    说明每个连接平均传输的数据量63310.9/1499=42.24 
    (3)4.99638 fetches/sec, 316326 bytes/sec 
    说明每秒的响应请求为4.99638,每秒传递的数据为316326 bytes/sec 
    (4)msecs/connect: 21.5961 mean, 3020.17 max, 16.782 min 
    说明每个连接的平均响应时间是21.5961 msecs,最大的响应时间3020.17 msecs,最小的响应时间16.782 msecs 
    (5)HTTP response codes: code 200 — 1261 
    说明打开响应页面的类型,如果403的类型过多,那可能要注意是否系统遇到了瓶颈 
    特殊说明:测试结果中主要的指标是fetches/sec和msecs/connect,即服务器每秒能够响应的请求次数和每个连接的平均响应时间。当然仅有这两个指标并不能完成对性能的分析,这两个指标主要反映的是QPS和RT。此外,还需要对服务器的CPU(idle和load)、Mem进行分析,才能得出结论。 
    需要注意的是:http_load请求方式默认为GET方式,不支持POST方式。

  • 相关阅读:
    HTTP协议
    Python学习--装饰器、列表生成式、生成器、map filter、json处理
    Python学习--多线程&多进程
    Python学习--发送邮件
    Python学习--异常处理
    【第五节】【Python学习】【configparser模块】
    【第一节】【shell脚本】【文件里的内容与变量中的内容大小写替换】
    【Python】【多线程多进程】
    【Selenium学习】【拖动滚动条】
    【Python】【异常的获取与处理】
  • 原文地址:https://www.cnblogs.com/hurry-up/p/9322633.html
Copyright © 2020-2023  润新知