<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 28,  comments - 15,  trackbacks - 0

     

        Apache Benchmark簡稱為ab,是apache自帶的用于HTTP Server測試的工具。它可以接受單一的URL,然后重復地按照指定的多個獨立線程的方式加載,并使用不同的命令行參數控制訪問的次數、最大的并發訪問數等。另外一項不錯的功能是可以輸出比較詳細的報告。

     

    語法
    ab [ -A auth-username:password ] [ -c concurrency ] [ -C cookie-name=value ] [ -d ] [ -e csv-file ] [ -g gnuplot-file ] [ -h ] [ -H custom-header ] [ -i ] [ -k ] [ -n requests ] [ -p POST-file ] [ -P proxy-auth-username:password ] [ -q ] [ -s ] [ -S ] [ -t timelimit ] [ -T content-type ] [ -v verbosity] [ -V ] [ -w ] [ -x <table>-attributes ] [ -X proxy[:port] ] [ -y <tr>-attributes ] [ -z <td>-attributes ] [http://]hostname[:port]/path

    選項
    -A auth-username:password
    向服務器提供基本認證信息。用戶名和密碼之間由一個":"隔開,并將被以base64編碼形式發送。無論服務器是否需要(即是否發送了401認證需求代碼),此字符串都會被發送。
    -c concurrency
    一次產生的請求個數。默認是一次一個。
    -C cookie-name=value
    對請求附加一個"Cookie:"頭行。其典型形式是 name=value 的一個參數對。此參數可以重復。
    -d
    不顯示"percentage served within XX [ms] table"消息(為以前的版本提供支持)。
    -e csv-file
    產生一個逗號分隔(CSV)文件,其中包含了處理每個相應百分比請求(從1%到100%)所需要的相應百分比時間(以微秒為單位)。由于這種格式已經"二進制化",所以比"gnuplot"格式更有用。
    -g gnuplot-file
    把所有測試結果寫入一個"gnuplot"或者TSV(以Tab分隔)文件。此文件可以方便地導入到 Gnuplot, IDL, Mathematica, Excel中。其中的第一行為標題。
    -h
    顯示使用方法的幫助信息。
    -H custom-header
    對請求附加額外的頭信息。此參數的典型形式是一個有效的頭信息行,其中包含了以冒號分隔的字段和值(如:"Accept-Encoding: zip/zop;8bit")。
    -i
    執行HEAD請求,而不是GET 。
    -k
    啟用KeepAlive功能,即在一個HTTP會話中執行多個請求。默認不啟用KeepAlive功能。
    -n requests
    在測試會話中所執行的請求個數。默認僅執行一個請求,此時其結果不具有意義。
    -p POST-file
    包含了POST數據的文件。
    -P proxy-auth-username:password
    對一個中轉代理提供基本認證信息。用戶名和密碼由一個":"隔開,并將被以base64編碼形式發送。無論服務器是否需要(即是否發送了407代理認證需求代碼),此字符串都會被發送。
    -q
    如果處理的請求數大于150,ab每處理大約10%或者100個請求時,會在stderr輸出一個進度計數。此 -q 標記可以屏蔽這些信息。
    -s
    用于編譯中(ab -h 會告訴你)使用了SSL的受保護的https ,而不是http協議的時候。此功能是實驗性的,最好不要用。
    -S
    不顯示中值和標準偏差值,而且在均值和中值為標準偏差值的1到2倍時,也不顯示警告或出錯信息。默認時,會顯示最小值/均值/最大值等數值。(為以前的版本提供支持)
    -t timelimit
    測試所進行的最大秒數。內部隱含值是"-n 50000"。它可以使對服務器的測試限制在一個固定的總時間以內。默認時,沒有時間限制。
    -T content-type
    POST數據時所使用的"Content-type"頭信息。
    -v verbosity
    設置顯示信息的詳細程度,4或更大值會顯示頭信息,3或更大值可以顯示響應代碼(404,200等),2或更大值可以顯示警告和其他信息。
    -V
    顯示版本號并退出。
    -w
    以HTML表格形式輸出結果。默認時,它是白色背景的兩列寬度的一張表。
    -x <table>-attributes
    設置<table>屬性的字符串。此屬性被填入<table 這里 > 。
    -X proxy[:port]
    對請求使用代理服務器。
    -y <tr>-attributes
    設置<tr>屬性的字符串。
    -z <td>-attributes
    設置<td>屬性的字符串。

    用例

    1.測試本機apache

     

    E:\cluster>ab --1000 -100 http://localhost/
    This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
    Copyright 
    1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
    Copyright 1997-2005 The Apache Software Foundation, http://www.apache.org/

    Benchmarking localhost (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
    Finished 
    1000 requests


    Server Software:        Apache
    /2.0.52
    Server Hostname:        localhost
    Server Port:            
    80

    Document Path:          
    /
    Document Length:        
    1494 bytes

    Concurrency Level:      
    100
    /*整個測試持續的時間*/
    Time taken 
    for tests:   3.296875 seconds
    /*完成的請求數量*/
    Complete requests:      
    1000
    /*失敗的請求數量*/
    Failed requests:        
    0
    Write errors:           
    0
    /*保持聯機連接的請求數量。只有在命令行中使用-k,才能看到該屬性值。*/
    Keep
    -Alive requests:    1000
    /*整個場景中的網絡傳輸量*/
    Total transferred:      
    1987070 bytes
    /*整個場景中的HTML內容傳輸量*/
    HTML transferred:       
    1494000 bytes
    /*每秒鐘平均處理的請求數*/
    Requests per second:    
    303.32 [#/sec] (mean)
    /*每個線程下的一組請求平均消耗時間*/
    Time per request:       
    329.688 [ms] (mean)
    /*并發的每個請求平均消耗時間*/
    Time per request:       
    3.297 [ms] (mean, across all concurrent requests)
    /*平均每秒網絡上的流量,可以幫助排除是否存在網絡流量過大導致響應時間延長的問題*/
    Transfer rate:          
    588.44 [Kbytes/sec] received

    Connection Times (ms)
                  min  mean[
    +/-sd] median   max
    Connect:        
    0    0   0.8      0      15
    Processing:     
    0  212  69.4    218     406
    Waiting:        
    0  211  69.5    218     406
    Total:          
    0  212  69.3    218     406
    /*下面的內容為整個場景中所有請求的響應情況。在場景中每個請求都有一個響應時間,其中 50% 的用戶響應時間小于 218 毫秒,66 % 的用戶響應時間小于 234 毫秒,最大的響應時間小于 406 毫秒*/

    Percentage of the requests served within a certain time (ms)
      
    50%    218
      
    66%    234
      
    75%    250
      
    80%    265
      
    90%    296
      
    95%    312
      
    98%    343
      
    99%    359
     
    100%    406 (longest request)

     

     

    如果你設置的-c過大,比如在windows下大于65可能出現的錯誤,以下是網上收集的解決辦法:

    使用ab的時候當并發數超過1024就會示出錯:
    windows下提示:apr_pollset_create failed: Invalid argument (22)
    linux下提示:socket: Too many open files (24)

    下面是從CSDN轉的一篇linux下的解決辦法
    =======================================
    ab測試apache出錯的解決辦法 http://blog.csdn.net/answerzy/archive/2007/11/19/1892194.aspx
    [root@answer bin]# ./ab -n 20000 -c 2000 http://192.168.2.60/
    This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
    Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
    Copyright 1997-2005 The Apache Software Foundation, http://www.apache.org/

    Benchmarking 192.168.2.60 (be patient)
    socket: Too many open files (24)

    解決辦法: bash自帶的ulimit, 各大版本均有提供
    ulimit -n 2000(你需要的值)
    =======================================
    這應該不難理解,linux是通過文件來對設備進行管理,ulimit -n是設置同時打開文件的最大數值,ab中每一個連接打開一個設備文件,所以設置這個值就可以解決了。

     

    下面是windows下的解決辦法

    TcpTimedWaitDelay

      • 描述:確定 TCP/IP 在釋放已關閉的連接并再次使用其資源前必須經過的時間。關閉與釋放之間的這段時間稱為 TIME_WAIT 狀態或者兩倍最大段生存期(2MSL)狀態。此時間期間,重新打開到客戶機和服務器的連接的成本少于建立新連接。通過減少此條目的值,TCP/IP 可以更快地釋放關閉的連接,并為新連接提供更多資源。如果運行中的應用程序要求快速釋放連接或創建新連接,或者由于多個連接處于 TIME_WAIT 狀態而導致吞吐量較低,請調整此參數。
      • 如何查看或設置:

    1.     使用 regedit 命令,訪問 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters 注冊表子鍵,然后創建新的 REG_DWORD TcpTimedWaitDelay

    2.     將此值設置為十進制 30,即十六進制 0x0000001e。此值將等待時間設置為 30 秒。

    3.     停止并重新啟動系統。

      • 缺省值:0xF0,此值將等待時間設置為 240 秒(4 分鐘)。
      • 建議值:最小值為 0x1E,此值將等待時間設置為 30 秒。
    • MaxUserPort
      • 描述:確定當應用程序向系統請求獲取可用的用戶端口時,TCP/IP 可指定的最高端口號。
      • 如何查看或設置:

    1.     使用 regedit 命令,訪問 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters 注冊表子鍵,然后創建新的 REG_DWORD MaxUserPort

    2.     將此值至少設置為十進制 32768

    3.     停止并重新啟動系統。

      • 缺省值:
      • 建議值:至少為十進制 32768
    • 最大連接儲備
      • 描述:如果同時接收到許多連接嘗試,請增大操作系統支持的缺省暫掛連接數。
      • 如何查看或設置:

    1.     使用 regedit 命令并訪問 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters 注冊表子鍵。

    2.     根據需要創建并設置下列值:

    3. "EnableDynamicBacklog"=dword:00000001

    4.  

    5. "MinimumDynamicBacklog"=dword:00000020

    6.  

    7. "MaximumDynamicBacklog"=dword:00001000

    8.  

    "DynamicBacklogGrowthDelta"=dword:00000010

    9.     這些值將最小可用連接數設置為 20,將最大可用連接數設置為 1000。每當可用連接數小于最小可用連接數時,可用連接數都會增加 10

    10. 停止并重新啟動系統。

    • KeepAliveInterval
      • 描述:確定 TCP 在未接收到響應時重新嘗試保持活動傳輸的頻率。
      • 如何查看或設置:

    1.     使用 regedit 命令,訪問 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters 注冊表子鍵,然后創建新的 REG_DWORD KeepAliveInterval

    2.     將此值設置為 1 秒。

    3.     停止并重新啟動系統。

      • 缺省值:1
      • 建議值:

    另外作者在window xp測試時,即使設置了TcpTimedWaitDelayMaxUserPort同樣會出現apr_pollset_create failed: Invalid argument (22)錯誤。后下載其他版本后竟然可用,經過檢查發現,本機安裝的ab.exe的版本是Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0,而另外下載的版本是:Version 2.0.40-dev <$Revision: 1.1246 $> apache-2.0,下載地址:http://www.9enjoy.com/attachment.php?fid=18

     

    參考資料

    http://httpd.apache.org/docs/2.0/programs/ab.html

     

     

    posted on 2011-09-15 16:09 zhangxl 閱讀(3224) 評論(1)  編輯  收藏


    FeedBack:
    # re: Apache Benchmark(ab)使用[未登錄]
    2012-02-21 16:30 | Sean
    其實就是ab版本不對  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2011年9月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    常用鏈接

    留言簿(1)

    隨筆分類(17)

    隨筆檔案(28)

    文章分類(30)

    文章檔案(30)

    相冊

    收藏夾(2)

    hibernate

    java基礎

    mysql

    xml

    關注

    壓力測試

    算法

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 96260
    • 排名 - 601

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲国产精品一区二区九九| 免费无码A片一区二三区| 日本成人免费在线| 亚洲sss综合天堂久久久| 黄色成人免费网站| 亚洲最大中文字幕| 国产成人yy免费视频| 亚洲制服丝袜一区二区三区| 国产免费的野战视频| 亚洲另类视频在线观看| 国产在线a免费观看| 亚洲色成人网站WWW永久四虎| 毛片a级三毛片免费播放| 亚洲精品无码日韩国产不卡av| 免费看a级黄色片| 美女黄频a美女大全免费皮| 亚洲国产婷婷综合在线精品| 一级成人a做片免费| 亚洲国产精彩中文乱码AV| 少妇人妻偷人精品免费视频| 亚洲欧洲国产成人精品| 在线观看免费精品国产| 亚洲国产免费综合| 老司机亚洲精品影院无码| 又粗又大又黑又长的免费视频| 亚洲精品无码aⅴ中文字幕蜜桃| 免费h成人黄漫画嘿咻破解版| 国产在线精品一区免费香蕉 | 91九色老熟女免费资源站| 亚洲国产综合精品| 国产免费午夜a无码v视频| 国产精品成人免费观看| 亚洲天堂一区二区三区| 亚洲AV无码之日韩精品| 免费视频精品一区二区三区| 日本亚洲精品色婷婷在线影院 | 久草福利资源网站免费| 亚洲三级在线免费观看| 亚洲午夜激情视频| 中文字幕乱码免费视频| 五月天婷婷精品免费视频|