• 使用ab进行页面的压力测试


    ab是apache自带的一个很好用的压力测试工具,当安装完apache的时候,就可以在bin下面找到ab

    1 我们可以模拟100个并发用户,对一个页面发送1000个请求

    ./ab -n1000 -c100 http://vm1.jianfeng.com/a.html

    其中-n代表请求数,-c代表并发数

    返回结果:

    ##首先是apache的版本信息 
    This is ApacheBench, Version 2.3 <Revision:655654
    Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ 
    Licensed to The Apache Software Foundation, http://www.apache.org/

    Benchmarking vm1.jianfeng.com (be patient)


    Server Software:        Apache/2.2.19    ##apache版本 
    Server Hostname:        vm1.jianfeng.com   ##请求的机子 
    Server Port:            80 ##请求端口

    Document Path:          /a.html 
    Document Length:        25 bytes  ##页面长度

    Concurrency Level:      100  ##并发数 
    Time taken for tests:   0.273 seconds  ##共使用了多少时间 
    Complete requests:      1000   ##请求数 
    Failed requests:        0   ##失败请求 
    Write errors:           0   
    Total transferred:      275000 bytes  ##总共传输字节数,包含http的头信息等 
    HTML transferred:       25000 bytes  ##html字节数,实际的页面传递字节数 
    Requests per second:    3661.60 [#/sec] (mean)  ##每秒多少请求,这个是非常重要的参数数值,服务器的吞吐量 
    Time per request:       27.310 [ms] (mean)  ##用户平均请求等待时间 
    Time per request:       0.273 [ms] (mean, across all concurrent requests)  ##服务器平均处理时间,也就是服务器吞吐量的倒数 
    Transfer rate:          983.34 [Kbytes/sec] received  ##每秒获取的数据长度

    Connection Times (ms) 
                  min  mean[+/-sd] median   max 
    Connect:        0    1   2.3      0      16 
    Processing:     6   25   3.2     25      32 
    Waiting:        5   24   3.2     25      32 
    Total:          6   25   4.0     25      48

    Percentage of the requests served within a certain time (ms) 
      50%     25  ## 50%的请求在25ms内返回 
      66%     26  ## 60%的请求在26ms内返回 
      75%     26 
      80%     26 
      90%     27 
      95%     31 
      98%     38 
      99%     43 
    100%     48 (longest request)

    2 ab也可以运行在windows中,如果在windows下安装apache,就可以在bin下找到ab.exe

    直接就可以使用,不用依赖其他的dll

    下面是我使用ab.exe 测试新浪一个页面的结果:

    C:Users ickyjfDesktopuseful>ab -n1000 -c100 http://sports.sina.com.cn/k/2011-05-24/12095590365.shtml 
    This is ApacheBench, Version 2.3 <Revision:655654
    Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ 
    Licensed to The Apache Software Foundation, http://www.apache.org/

    Benchmarking sports.sina.com.cn (be patient) 
    Completed 100 requests 
    Completed 200 requests 
    Completed 300 requests 
    Completed 400 requests 
    Completed 500 requests 
    Completed 600 requests 
    Completed 700 requests 
    Completed 800 requests 
    Completed 900 requests 
    Completed 1000 requests 
    Finished 1000 requests


    Server Software:        Apache/2.0.63 
    Server Hostname:        sports.sina.com.cn 
    Server Port:            80

    Document Path:          /k/2011-05-24/12095590365.shtml 
    Document Length:        86680 bytes

    Concurrency Level:      100 
    Time taken for tests:   66.453 seconds 
    Complete requests:      1000 
    Failed requests:        0 
    Write errors:           0 
    Total transferred:      87135790 bytes 
    HTML transferred:       86680000 bytes 
    Requests per second:    15.05 [#/sec] (mean) 
    Time per request:       6645.294 [ms] (mean) 
    Time per request:       66.453 [ms] (mean, across all concurrent requests) 
    Transfer rate:          1280.51 [Kbytes/sec] received

    Connection Times (ms) 
                  min  mean[+/-sd] median   max 
    Connect:        1   56 398.3      2    3003 
    Processing:    89 6331 2603.7   6293   14626 
    Waiting:        2 1748 1485.9   1590    6284 
    Total:         90 6388 2615.0   6302   14627

    Percentage of the requests served within a certain time (ms) 
      50%   6302 
      66%   7121 
      75%   8435 
      80%   9193 
      90%   9231 
      95%   9385 
      98%  11549 
      99%  12459 
    100%  14627 (longest request)

    3 apache的ab工具也算是一种ddos攻击工具

    下面是一个具体的例子:

    在命令行下输出:

    ./ab -n number_of_total_requests -c number_of_simultaneous_requestshttp://your_web_server/your_php_app.php

    例如:./ab -n 1000 -c 50 http://www.domain.com/myapp.php

    AB将同时向http://www.domain.com/myapp.php发出50个并发请求,共发出1000次。

    测试结果将可能是这样的:

    Server Software: Apache/2.0.16
    Server Hostname: localhost
    Server Port: 80
    Document Path: /myapp.php
    Document Length: 1311 bytes
    Concurrency Level: 50
    Time taken for tests: 8.794 seconds
    Complete requests: 1000
    Failed requests: 0
    Total transferred: 1754000 bytes
    HTML transferred: 1311000 bytes
    Requests per second: 113.71
    Transfer rate: 199.45 kb/s received
    Connection Times (ms)
    min avg max
    Connect: 0 0 5
    Processing: 111 427 550
    Total: 111 427 555

    myapp.php每秒钟可以处理的请求数为113.71个。将请求数增加,看看服务器能否处理更大的压力。你也需要调节Apache的 MaxClients,ThreadsPerChild,MaxThreadsPerChild等参数,基于你的httpd.conf中的MPM模块选择。

    如果你想得到更详细的信息,请到www.apache.org上查阅一些更深入的文档,包括模块和第三方的提高效率的工具。修改httpd.conf后,要重启Apache服务器,然后再用AB测试。你会看到每秒请求数增加或减少。记下每次的参数,最后选择最佳效率的那种配置。

  • 相关阅读:
    【dp专题1】hdu1003 D
    #网络之宙斯盾航母#-----占位--------linux
    面向过程6-----#过程之王#----占个位-----汇编语言----(面向机器)
    面向过程5----c#
    高级语言学习总结
    js实现求二元一次方程的根
    小知识点总结
    js小案例,判断年龄是否成年
    js实现结婚吧小案例
    面向过程4-----perl
  • 原文地址:https://www.cnblogs.com/yun007/p/3734983.html
Copyright © 2020-2023  润新知