1. 程式人生 > >Apache ab 測試使用指南

Apache ab 測試使用指南

引言: ab測試是業界比較流行和簡單易用的一種壓力測試工具包,本文將簡要介紹其核心使用的方法。

1.  ab

  ab是Apache HTTP server benchmarking tool的縮寫,可以用以測試HTTP請求的伺服器效能。其是通過命令列的不同引數從而提供簡單易用的效能測試工具命令組合。

2.   環境資訊

    CentOS 7,  ab的版本是2.3, 目前最新的版本是2.4

   

3.  使用指南

   3.1  檢視幫助檔案內容

[[email protected]~]# ab -h
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
    -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.
    -h              Display usage information (this message)
    -Z ciphersuite  Specify SSL/TLS cipher suite (See openssl ciphers)
    -f protocol     Specify SSL/TLS protocol
                    (SSL2, SSL3, TLS1, TLS1.1, TLS1.2 or ALL)
 3.2  初步測試

     引數說明: -n 請求數量, -c 併發數量    

      ab  option  url-address

      Case  1:      ab -n1000 -c10 http://www.baidu.com/index.html

      結果資訊如下:

[[email protected] ~]# ab -n1000 -c10 http://www.baidu.com/index.html
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.baidu.com (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
apr_socket_recv: Connection reset by peer (104)
      分析百度不允許直接這麼測試,直接將請求重置。

    Case 2:  

   command:  ab -n1000 -c10 http://www.csdn.net/index.html
      測試結果:
[[email protected]~]# ab -n1000 -c10 http://www.csdn.net/index.html
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.csdn.net (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

//伺服器資訊: openresty
Server Software:        openresty
Server Hostname:        www.csdn.net
Server Port:            80

Document Path:          /index.html
Document Length:        100686 bytes

Concurrency Level:      10
Time taken for tests:   24.567 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      100982000 bytes
HTML transferred:       100686000 bytes
//伺服器的吞吐量,每秒請求處理量
Requests per second:    40.71 [#/sec] (mean)
//使用者平均等待時間
Time per request:       245.665 [ms] (mean)
//伺服器端單個請求的處理時間
Time per request:       24.567 [ms] (mean, across all concurrent requests)
Transfer rate:          4014.21 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       38   71 175.3     44    3065
Processing:   114  173  30.4    170     446
Waiting:       38   46   9.6     44     302
Total:        152  244 180.7    213    3294

Percentage of the requests served within a certain time (ms)
  50%    213
  66%    238
  75%    247
  80%    249
  90%    256
  95%    288
  98%   1201
  99%   1248
 100%   3294 (longest request)
  測試結果: 請求吞吐量為:40.71/s,  單個請求處理時間為:24.567

  Case 2:   ab -n1000 -c10  http://www.sina.com.cn/index.html

[[email protected]~]# ab -n1000 -c10 http://www.sina.com.cn/index.html
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.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

//後臺伺服器是nginx
Server Software:        nginx
Server Hostname:        www.sina.com.cn
Server Port:            80

Document Path:          /index.html
Document Length:        27201 bytes

Concurrency Level:      10
Time taken for tests:   8.470 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      27538766 bytes
HTML transferred:       27201000 bytes
Requests per second:    118.06 [#/sec] (mean)
Time per request:       84.704 [ms] (mean)
Time per request:       8.470 [ms] (mean, across all concurrent requests)
Transfer rate:          3174.97 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       15   27  70.7     21    1026
Processing:    32   57  24.3     53     321
Waiting:       15   24  16.4     22     253
Total:         47   84  74.9     74    1094

Percentage of the requests served within a certain time (ms)
  50%     74
  66%     84
  75%     90
  80%     92
  90%    103
  95%    120
  98%    124
  99%    289
 100%   1094 (longest request)
分析結果: 請求吞吐量為:118.06/s,  伺服器處理單個請求的時間為8.470 ms。 相比csdn.net而言,舒淇效率將近3倍。csdn為40個請求/s, 單個請求為24ms。

那提個問題為什麼sina比csdn的效能高3倍呢? 我們來簡要分析一下,首先是傳輸的資料量,csdn是sina的3倍;以下皆以mean時間為準。

站點connectprocessingwaitingtotal
csdn7117346244
sina.com.cn27ms572484
   整體而言,可以發現sina.com.cn在各個節點上都是由於csdn的效能的。

3.3  加大併發數的壓測(單臺機器)

      case 1: ab -c100 -n1000 http://www.csdn.net/index.html   [100併發數]

HTML transferred:       100580778 bytes
Requests per second:    52.39 [#/sec] (mean)
Time per request:       1908.606 [ms] (mean)
Time per request:       19.086 [ms] (mean, across all concurrent requests)
Transfer rate:          5161.49 [Kbytes/sec] received
  相比之前的資料,併發設為100之後,吞吐量從40上升到52, 單個請求響應時間從24ms降低為19ms

    case 2:  ab -c200 -n1000 http://www.csdn.net/index.html

HTML transferred:       100358484 bytes
Requests per second:    48.32 [#/sec] (mean)
Time per request:       4139.429 [ms] (mean)
Time per request:       20.697 [ms] (mean, across all concurrent requests)
Transfer rate:          4749.23 [Kbytes/sec] received
   相比之前的資料,併發數為200, 吞吐量下降了,響應時間變長。

    case 3: ab -c500 -n1000 http://www.csdn.net/index.html   [100併發數]

HTML transferred:       83827148 bytes
Requests per second:    49.05 [#/sec] (mean)
Time per request:       10193.544 [ms] (mean)
Time per request:       20.387 [ms] (mean, across all concurrent requests)
Transfer rate:          4029.59 [Kbytes/sec] received
   結果分析: 整體資料無太大變化,只是對於單個使用者而言,等待時間變得比較久,需要10s.

6. 參考資料

  •  http://httpd.apache.org/docs/current/programs/ab.html

相關推薦

Apache ab 測試使用指南

引言: ab測試是業界比較流行和簡單易用的一種壓力測試工具包,本文將簡要介紹其核心使用的方法。1.  ab  ab是Apache HTTP server benchmarking tool的縮寫,可以用以測試HTTP請求的伺服器效能。其是通過命令列的不同引數從而提供簡單易用的

Apache ab測試工具使用方法(無參、get傳參、post傳參)(轉)

結果 文字 測試結果 方法 htm .html 但我 apache2.4 請求 轉自Apache ab測試工具使用方法(無參、get傳參、post傳參) Ab測試工具是apache自帶的測試工具,具有簡單易上手的特性,下面我總結一下我的使用方法,首先去官方下載apache程

Apache ab測試

mage iss 是不是 測試命令 src 總數 macbook 全部 采集 Apache ab性能測試結果分析 轉自:https://www.cnblogs.com/gumuzi/p/5617232.html 一直以來我都是用Loadrunner去做性能測試。Load

Apache ab 測試工具分析

參 數 簡 要 描 述 -n requests請求 Number of requests to perform要執行的請求數量

Apache ab 測試工具使用(一)

簡述: 試用apache ab測試工具 下載點 參考: ab的引數說明 -n  需要執行的請求次數 -c  併發的數量 -t   等待返回的最長時間 -b  TCP收發緩衝區的大小,單位(byte) -p 使用post (同時需要定義-T引數) -u 使用put (

Apache ab測試工作用法看你的apache每秒處理多少請求

windows 下先執行cmd 然後 輸入apache的bin目錄 然後執行 ab -n1000 -c10 http://www.qq.com/ 比如我的是這樣的 我的apache目錄是在 G:/APMServ5.2.6/Apache/bin/ 下面是執行步驟 在XP

apache ab性能測試實踐

gin use connect per level ebe cross server ice E:\developtools\apache ab\httpd-2.4.25-x86-vc14-r1\Apache24\bin>ab -n 15000 -c 600 "htt

PHP 使用Apache 中的ab 測試站點的壓力性能

apache2.4 ng- -c exe程序 apach 雙擊 fontsize html gravity   打開Apacheserver的安裝路徑(我用的是 WampServer),在bin文件夾中有一個ab.exe的可運行程序,它就是要介紹的壓力測試工具。

利用apache ab命令完成性能測試

apache 性能測試 ab 小強測試品牌 ab是什麽ab的全稱是ApacheBench,是 Apache 附帶的一個小工具,專門用於 HTTP Server 的benchmark testing,可以同時模擬多個並發請求。ab的用法ab 的用法是:ab [options] [http://]

Apache ab性能測試結果分析

wait 指定 path name 平均值 connect con ssi ans Apache ab性能測試結果分析   測試場景:模擬10個用戶,對某頁發起總共100次請求。   測試命令: ab -n 100 -c 10 地址   測試報告:     Server

壓力測試 apache ab工具使用說明

ab ab工具使用說明1 . 安裝ab工具命令sudo apt-get install apache2-utils 2.ab命令參數說明Usage: ab [options] [http[s]://]hostname[:

Ubuntu 16.04/CentOS 6.9安裝Apache壓力測試工具ab

方法 apt www. 文檔 請求 str blog pan program 說明: ab工具已經在Apache中包含,如果不想安裝Apache,那麽可以使用下面方法單獨安裝。 安裝: Ubuntu: sudo apt-get install apache2-u

Ubuntu 16.04下安裝Apache壓力測試工具ab

apt-get gpo 簡單使用 utils sta markdown 測試結果 壓力測試 安裝apache 安裝 sudo apt-get install apache2-utils 簡單使用 # 對http://www.baidu.com/進行100次請求,10個並發請

Apacheab 測試工具

finish iss his 只需要 mes 死機 form encoding ftw ab命令原理 Apache的ab命令模擬多線程並發請求,測試服務器負載壓力,也可以測試nginx、lighthttp、IIS等其它Web服務器的壓力。 Apache附帶的ab工

使用apache ab進行壓力測試

測試 col 技術分享 proc nag size mark pre vpd ab -n10000 -c1000 http://127.0.0.1:80/ 使用apache ab進行壓力測試

Apache壓力測試方法之ab命令

ab命令簡介及作用 ab命令進行壓力測試 ab命令使用的一些問題 ab命令的性能指標 Apache壓力測試方法之ab命令1、性能測試工具ab簡介ab(Apache Bench)命令是apache免費自帶的性能測試工具,默認在apache的bin目錄下,它能模擬多個並發請求,主要是用來測試apa

windows Apache ab安裝及壓力測試

一:安裝 ab是Apache自帶的網站壓力測試工具。使用起來非常的簡單和方便。不僅僅是可以Apache伺服器進行網站訪問壓力測試,還可以對其他型別的伺服器進行壓力測試。比如nginx,tomcat,IIS等 首先當然是下載安裝了。在這裡只講window下在下載安裝官方下載地址:,(https://www.

Apache ab壓力測試工具Window下載和用法詳解

ab是apache自帶的網站壓力測試工具。 使用起來非常的簡單和方便。 不僅僅是可以apache伺服器進行網站訪問壓力測試,還可以對其他型別的伺服器進行壓力測試。 比如nginx,tomcat,IIS等 首先當然是下載安裝了。 在這裡只講window下在下載安裝 官方下載地址:,(htt

Apache-ab 簡單測試PHP框架的併發數

所有測試地址都只有一行程式碼: echo 'hello world'; 環境: ab:2.3 Apache:2.4.6 PHP:7.2.10 Nginx:1.14.1 這是apache執行的php檔案 這是nginx+php laravel5.7直接開啟的服務,emmmmm

ApacheApache ab壓力測試工具Window下載和用法詳解

enc ons 所有 The 產生 ima 腳本 數據 等待 ab是apache自帶的網站壓力測試工具。 使用起來非常的簡單和方便。 不僅僅是可以apache服務器進行網站訪問壓力測試,還可以對其他類型的服務器進行壓力測試。 比如nginx,tomcat,IIS等 首先當然