zoukankan      html  css  js  c++  java
  • 使用 ab 对网站进行压力测试

    概述

    这是 Apache 自带的一个网站压力测试工具,是 ApacheBench 的缩写,我们可以使用这个工具来对我们的网站进行压力测试。

    安装

    在 Ubuntu 上要安装下面这个包

    sudo apt-get install apache2-utils

    在 CentOS 下是下面这个包

    sudo yum install httpd-tools -y

    使用

    可以直接输入 ab 来看参数和使用方法:

      > ab
    
      ab: wrong number of arguments
    
      Usage: ab [options] [http[s]://]hostname[:port]/path
    
      Options are:
    
          -n requests     Number of requests to perform
    
          -c concurrency  Number of multiple requests to make at a time
    
          -t timelimit    Seconds to max. to spend on benchmarking
    
                          This implies -n 50000
    
          -s timeout      Seconds to max. wait for each response
    
                          Default is 30 seconds
    
          -b windowsize   Size of TCP send/receive buffer, in bytes
    
          -B address      Address to bind to when making outgoing connections
    
          -p postfile     File containing data to POST. Remember also to set -T
    
          -u putfile      File containing data to PUT. Remember also to set -T
    
          -T content-type Content-type header to use for POST/PUT data, eg.
    
                          'application/x-www-form-urlencoded'
    
                          Default is 'text/plain'
    
          -v verbosity    How much troubleshooting info to print
    
          -w              Print out results in HTML tables
    
          -i              Use HEAD instead of GET
    
          -x attributes   String to insert as table attributes
    
          -y attributes   String to insert as tr attributes
    
          -z attributes   String to insert as td or th attributes
    
          -C attribute    Add cookie, eg. 'Apache=1234'. (repeatable)
    
          -H attribute    Add Arbitrary header line, eg. 'Accept-Encoding: gzip'
    
                          Inserted after all normal header lines. (repeatable)
    
          -A attribute    Add Basic WWW Authentication, the attributes
    
                          are a colon separated username and password.
    
          -P attribute    Add Basic Proxy Authentication, the attributes
    
                          are a colon separated username and password.
    
          -X proxy:port   Proxyserver and port number to use
    
          -V              Print version number and exit
    
          -k              Use HTTP KeepAlive feature
    
          -d              Do not show percentiles served table.
    
          -S              Do not show confidence estimators and warnings.
    
          -q              Do not show progress when doing more than 150 requests
    
          -l              Accept variable document length (use this for dynamic pages)
    
          -g filename     Output collected data to gnuplot format file.
    
          -e filename     Output CSV file with percentages served
    
          -r              Don't exit on socket receive errors.
    
          -m method       Method name
    
          -h              Display usage information (this message)
    
          -Z ciphersuite  Specify SSL/TLS cipher suite (See openssl ciphers)
    
          -f protocol     Specify SSL/TLS protocol
    
                          (TLS1, TLS1.1, TLS1.2 or ALL) 

    下面介绍一个最常用的使用方法:

    ab -c 10 -n 100 http://www.example.com/

    上面的意思是模仿 10 个用户对网站进行 1000 次请求。

    下面是输出:

      > ab -c 10 -n 100 http://www.linux.cn/ 
    
      This is ApacheBench, Version 2.3 <$Revision: 1706008 $>
    
      Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
    
      Licensed to The Apache Software Foundation, http://www.apache.org/
    
      Benchmarking www.linux.cn (be patient).....done
    
      Server Software:        nginx
    
      Server Hostname:        www.linux.cn
    
      Server Port:            80
    
      Document Path:          /
    
      Document Length:        178 bytes
    
      Concurrency Level:      10
    
      Time taken for tests:   0.861 seconds
    
      Complete requests:      100
    
      Failed requests:        0
    
      Non-2xx responses:      100
    
      Total transferred:      35800 bytes
    
      HTML transferred:       17800 bytes
    
      Requests per second:    116.09 #/sec
    
      Time per request:       86.142 ms
    
      Time per request:       8.614 ms
    
      Transfer rate:          40.59 [Kbytes/sec] received
    
      Connection Times (ms)
    
                    min  mean[+/-sd] median   max
    
      Connect:       32   41   7.3     37      53
    
      Processing:    33   42   7.4     38      55
    
      Waiting:       33   42   7.4     38      55
    
      Total:         65   83  14.7     75     108
    
      Percentage of the requests served within a certain time (ms)
    
        50%     75
    
        66%     78
    
        75%    102
    
        80%    103
    
        90%    105
    
        95%    106
    
        98%    107
    
        99%    108
    
       100%    108 (longest request) 

    其实最主要看的输出参数是下面这几个:

    Server Software 服务器软件

    Server Hostname 主机名

    Server Port 服务器端口

    Time taken for tests 测试时间

    Complete requests 完成的请求

    Failed requests 失败的请求

    Time per request 每次请求的时间

    Transfer rate 传输速度

    作者:Charles Zhang


    出处:https://www.cnblogs.com/weisenz/


    本站使用「署名 4.0 国际」创作共享协议,转载请在文章明显位置注明作者及出处。

  • 相关阅读:
    160-13. 罗马数字转整数
    159-118. 杨辉三角
    158-190. 颠倒二进制位
    157-461. 汉明距离
    156-412. Fizz Buzz
    155-278. 第一个错误的版本
    154-108. 将有序数组转换为二叉搜索树
    153-101. 对称二叉树
    152-234. 回文链表
    秒杀程序架构演进
  • 原文地址:https://www.cnblogs.com/weisenz/p/2578985.html
Copyright © 2011-2022 走看看