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

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

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

    paulwong

    ab --- apache自帶的壓力測試工具 (apache benchmark )

    簡介
    ab的全稱是ApacheBench, Apache 附帶的一個小工具專門用于 HTTP Server benchmark testing,可以同時模擬多個并發(fā)請求。前段時間看到公司的開發(fā)人員也在用它作一些測試,看起來也不錯,很簡單,也很容易使用,所以今天花一點時間看了一下。
    通過下面的一個簡單的例子和注釋,相信大家可以更容易理解這個工具的使用。
    一個簡單的例子
    /*在這個例子的一開始,我執(zhí)行了這樣一個命令 ab -n 10 -c 10 http://www.google.com/。這個命令的意思是啟動 ab ,向 www.google.com 發(fā)送10個請求(-n 10) ,并每次發(fā)送10個請求(-c 10)——也就是說一次都發(fā)過去了。跟著下面的是 ab 輸出的測試報告,紅色部分是我添加的注釋。*/
    C:\Program Files\Apache Software Foundation\Apache2.2\bin>ab -n 10 -c 10 http
    ://www.google.com/
    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 www.google.com (be patient).....done
    Server Software:        GWS/2.1
    Server Hostname:        www.google.com
    Server Port:            80
    Document Path:          /
    Document Length:        230 bytes
    Concurrency Level:      10
    /*整個測試持續(xù)的時間*/
    Time taken for tests:   3.234651 seconds
    /*完成的請求數(shù)量*/
    Complete requests:      10
    /*失敗的請求數(shù)量*/
    Failed requests:        0
    Write errors:           0
    Non-2xx responses:      10
    Keep-Alive requests:    10
    /*整個場景中的網(wǎng)絡(luò)傳輸量*/
    Total transferred:      6020 bytes
    /*整個場景中的HTML內(nèi)容傳輸量*/
    HTML transferred:       2300 bytes
    /*大家最關(guān)心的指標(biāo)之一,相當(dāng)于 LR 中的 每秒事務(wù)數(shù) ,后面括號中的 mean 表示這是一個平均值*/
    Requests per second:    3.09 [#/sec] (mean)
    /*大家最關(guān)心的指標(biāo)之二,相當(dāng)于 LR 中的 平均事務(wù)響應(yīng)時間 ,后面括號中的 mean 表示這是一個平均值*/
    Time per request:       3234.651 [ms] (mean)
    /*每個事物的響應(yīng)時間 */
    Time per request:       323.465 [ms] (mean, across all concurrent requests)
    /*平均每秒網(wǎng)絡(luò)上的流量,可以幫助排除是否存在網(wǎng)絡(luò)流量過大導(dǎo)致響應(yīng)時間延長的問題*/
    Transfer rate:          1.55 [Kbytes/sec] received
    /*網(wǎng)絡(luò)上消耗的時間的分解,各項數(shù)據(jù)的具體算法還不是很清楚*/
    Connection Times (ms)
                  min mean[+/-sd] median   max
    Connect:       20 318 926.1     30    2954
    Processing:    40 2160 1462.0   3034    3154
    Waiting:       40 2160 1462.0   3034    3154
    Total:         60 2479 1276.4   3064    3184
    /*下面的內(nèi)容為整個場景中所有請求的響應(yīng)情況。在場景中每個請求都有一個響應(yīng)時間,其中 50 的用戶響應(yīng)時間小于 3064 毫秒,60  的用戶響應(yīng)時間小于 3094 毫秒,最大的響應(yīng)時間小于 3184 毫秒*/
    Percentage of the requests served within a certain time (ms)
    50%   3064
    66%   3094
    75%   3124
    80%   3154
    90%   3184
    95%   3184
    98%   3184
    99%   3184
    100%   3184 (longest request)
    參數(shù)詳解
    ab is a tool for benchmarking your Apache Hypertext Transfer Protocol(HTTP) server. It is designed to give you an impression of how your current Apache installation performs. This especially shows you how many requests per second your Apache installation is capable of serving.
    ab是Apache超文本傳輸協(xié)議(HTTP)的性能測試工具。 其設(shè)計意圖是描繪當(dāng)前所安裝的Apache的執(zhí)行性能, 主要是顯示你安裝的Apache每秒可以處理多少個請求。
    OPTIONS
    -A auth-username:password
    Supply BASIC Authentication credentials to the server. The user name and password are separated by a single : and sent on the wire base64 encoded. The string is sent regardless of whether the server needs it (i.e., has sent an 401 authentication needed).
    對服務(wù)器提供BASIC認(rèn)證信任。 用戶名和密碼由一個:隔開,并以base64編碼形式發(fā)送。 無論服務(wù)器是否需要(即, 是否發(fā)送了401認(rèn)證需求代碼),此字符串都會被發(fā)送。
    -c concurrency
    Number of multiple requests to perform at a time. Default is one request at a time.
    一次產(chǎn)生的請求個數(shù)。默認(rèn)是一次一個。
    -C cookie-name=value
    Add a Cookie: line to the request. The argument is typically in the form of a name=value pair. This field is repeatable.
    對請求附加一個Cookie:行。 其典型形式是name=value的一個參數(shù)對。 此參數(shù)可以重復(fù)。
    -d Do not display the "percentage served within XX [ms] table".
    (legacy support).
    不顯示"percentage served within XX [ms] table"的消息(為以前的版本提供支持)。
    -e csv-file
    Write a Comma separated value (CSV) file which contains for each percentage (from 1% to 100%) the time (in milliseconds) it took to serve that percentage of the requests. This is usually more useful than the 'gnuplot' file; as the results are already 'binned'.
    產(chǎn)生一個以逗號分隔的(CSV)文件, 其中包含了處理每個相應(yīng)百分比的請求所需要(從1%到100%)的相應(yīng)百分比的(以毫秒為單位)時間。 由于這種格式已經(jīng)“二進(jìn)制化”,所以比'gnuplot'格式更有用。
    -g gnuplot-file
    Write all measured values out as a 'gnuplot' or TSV (Tab separate values) file. This file can easily be imported into packages like Gnuplot, IDL, Mathematica, Igor or even Excel. The labels are on the first line of the file.
    把所有測試結(jié)果寫入一個'gnuplot'或者TSV (以Tab分隔的)文件。 此文件可以方便地導(dǎo)入到Gnuplot, IDL, Mathematica, Igor甚至Excel中。 其中的第一行為標(biāo)題。
    -h Display usage information.
    顯示使用方法。
    -H custom-header
    Append extra headers to the request. The argument is typically in the form of a valid header line, containing a colon-separated field-value pair (i.e., "Accept-Encoding: zip/zop;8bit").
    對請求附加額外的頭信息。 此參數(shù)的典型形式是一個有效的頭信息行,其中包含了以冒號分隔的字段和值的對 (如, "Accept-Encoding: zip/zop;8bit").
    -i Do HEAD requests instead of GET.
    執(zhí)行HEAD請求,而不是GET。
    -k Enable the HTTP KeepAlive feature, i.e., perform multiple
    requests within one HTTP session. Default is no KeepAlive.
    啟用HTTP KeepAlive功能,即, 在一個HTTP會話中執(zhí)行多個請求。 默認(rèn)是不啟用KeepAlive功能.
    -n requests
    Number of requests to perform for the benchmarking session. The default is to just perform a single request which usually leads to non-representative enchmarking results.
    在測試會話中所執(zhí)行的請求個數(shù)。 默認(rèn)時,僅執(zhí)行一個請求,但通常其結(jié)果不具有代表意義。
    -p POST-file
    File containing data to POST.
    包含了需要POST的數(shù)據(jù)的文件.
    -P proxy-auth-username:password
    Supply BASIC Authentication credentials to a proxy en-route. The username and password are separated by a single : and sent on the wire base64 encoded. The string is sent regardless of whether the proxy needs it (i.e., has sent an 407 proxy authentication needed).
    對一個中轉(zhuǎn)代理提供BASIC認(rèn)證信任。 用戶名和密碼由一個:隔開,并以base64編碼形式發(fā)送。 無論服務(wù)器是否需要(即, 是否發(fā)送了401認(rèn)證需求代碼),此字符串都會被發(fā)送。
    -q When processing more than 150 requests, ab outputs a progress count on stderr every 10% or 100 requests or so. The -q flag will suppress these messages.
    如果處理的請求數(shù)大于150, ab每處理大約10%或者100個請求時,會在stderr輸出一個進(jìn)度計數(shù)。 此-q標(biāo)記可以抑制這些信息。
    -s When compiled in (ab -h will show you) use the SSL protected https rather than the http protocol. This feature is experimental and very rudimentary. You probably do not want to use it.
    用于編譯中(ab -h會顯示相關(guān)信息)使用了SSL的受保護(hù)的https, 而不是http協(xié)議的時候。此功能是實驗性的,也是很簡陋的。最好不要用。
    -S Do not display the median and standard deviation values, nor display the warning/error messages when the average and median are more than one or two times the standard deviation apart. And default to the min/avg/max values. (legacy support).
    不顯示中值和標(biāo)準(zhǔn)背離值, 而且在均值和中值為標(biāo)準(zhǔn)背離值的1到2倍時,也不顯示警告或出錯信息。 默認(rèn)時,會顯示 最小值/均值/最大值等數(shù)值。(為以前的版本提供支持).
    -t timelimit
    Maximum number of seconds to spend for benchmarking. This implies a -n 50000 internally. Use this to benchmark the server within a fixed total amount of time. Per default there is no timelimit.
    測試所進(jìn)行的最大秒數(shù)。其內(nèi)部隱含值是-n 50000。 它可以使對服務(wù)器的測試限制在一個固定的總時間以內(nèi)。默認(rèn)時,沒有時間限制。
    -T content-type
    Content-type header to use for POST data.
    POST數(shù)據(jù)所使用的Content-type頭信息。
    -v verbosity
    Set verbosity level - 4 and above prints information on headers, 3 and above prints response codes (404, 200, etc.), 2 and above prints warnings and info.
    設(shè)置顯示信息的詳細(xì)程度 - 4或更大值會顯示頭信息, 3或更大值可以顯示響應(yīng)代碼(404, 200等), 2或更大值可以顯示警告和其他信息。
    -V Display version number and exit.
    顯示版本號并退出。
    -w Print out results in HTML tables. Default table is two columns wide, with a white background.
    以HTML表的格式輸出結(jié)果。默認(rèn)時,它是白色背景的兩列寬度的一張表。
    -x <table>-attributes
    String to use as attributes for <table>. Attributes are inserted <table here >.
    設(shè)置<table>屬性的字符串。 此屬性被填入<table這里>.
    -X proxy[:port]
    Use a proxy server for the requests.
    對請求使用代理服務(wù)器。
    -y <tr>-attributes
    String to use as attributes for <tr>.
    設(shè)置<tr>屬性的字符串.
    -z <td>-attributes
    String to use as attributes for <td>.
    設(shè)置<td>屬性的字符串.
    BUGS
    There are various statically declared buffers of fixed length. Combined with the lazy parsing of the command line arguments, the response headers from the server and other external inputs, this might bite you. It does not implement HTTP/1.x fully; only accepts some 'expected' forms of responses. The rather heavy use of strstr(3) shows up top in profile, which might indicate a performance problem; i.e., you would measure the ab performance rather than the server's.
    程序中有各種靜態(tài)聲明的固定長度的緩沖區(qū)。另外,對命令行參數(shù)、服務(wù)器的響應(yīng)頭和其他外部輸入的解析也很簡單,這可能會有不良后果。它沒有完整地實現(xiàn)HTTP/1.x; 僅接受某些'預(yù)想'的響應(yīng)格式。strstr(3)的頻繁使用可能會帶來性能問題,即, 你可能是在測試ab而不是服務(wù)器的性能。

    posted on 2015-01-08 18:38 paulwong 閱讀(2041) 評論(0)  編輯  收藏 所屬分類: 性能優(yōu)化

    主站蜘蛛池模板: 色视频色露露永久免费观看| 免费高清国产视频| 成人黄软件网18免费下载成人黄18免费视频 | 亚洲福利精品电影在线观看| 韩国日本好看电影免费看| 亚洲av无码专区在线| 久九九精品免费视频| 亚洲xxxxxx| 日本特黄特黄刺激大片免费| 国产亚洲情侣一区二区无| 人妖系列免费网站观看| 免费看成人AA片无码视频羞羞网| 国产高清在线精品免费软件| 免费人成网站在线高清| 老司机亚洲精品影院| 看Aⅴ免费毛片手机播放| 少妇亚洲免费精品| 国产精品美女久久久免费| 久久精品国产亚洲AV麻豆不卡| 亚洲精品宾馆在线精品酒店| 国产免费变态视频网址网站| 亚洲制服丝袜一区二区三区| A毛片毛片看免费| 亚洲大片在线观看| 国产精品成人免费视频网站京东 | 一级一看免费完整版毛片| 亚洲熟女一区二区三区| 亚洲欧洲免费视频| 亚洲欧美中文日韩视频| 久久影视国产亚洲| 青娱乐在线免费观看视频| 女人被男人躁的女爽免费视频| 亚洲天天在线日亚洲洲精| a级片免费在线观看| AV无码免费永久在线观看| 亚洲欧洲无卡二区视頻| 中文字幕久久亚洲一区| 韩国免费一级成人毛片| 一级毛片免费在线观看网站| 亚洲视频一区网站| 皇色在线视频免费网站|