apach ab效能測試小結

2021-08-14 02:21:39 字數 3441 閱讀 9002

ab的原理:

ab是apachebench命令的縮寫。

ab的原理:ab命令會建立多個併發訪問執行緒,模擬多個訪問者同時對某一url位址進行訪問。它的測試目標是基於url的,因此,它既可以用來測試apache的負載壓力,也可以測試nginx、lighthttp、tomcat、iis等其它web伺服器的壓力。

ab命令對發出負載的計算機要求很低,它既不會占用很高cpu,也不會占用很多記憶體。但卻會給目標伺服器造成巨大的負載,其原理類似cc攻擊。自己測試使用也需要注意,否則一次上太多的負載。可能造成目標伺服器資源耗完,嚴重時甚至導致宕機。

apach ab安裝:

注意:如果不想安裝apache但是又想使用ab命令的話,我們可以直接安裝apache的工具包httpd-tools。如下:

檢視ab是否安裝成功,ab –v命令。

ab常用引數的介紹:

我們可以通過ab –help檢視

下面我們對這些引數,進行相關說明。如下:

-n在測試會話中所執行的請求個數。預設時,僅執行乙個請求。

-c一次產生的請求個數。預設是一次乙個。

-t測試所進行的最大秒數。其內部隱含值是-n 50000,它可以使對伺服器的測試限制在乙個固定的總時間以內。預設時,沒有時間限制。

-p包含了需要post的資料的檔案。

-p對乙個中轉**提供basic認證信任。使用者名稱和密碼由乙個:隔開,並以base64編碼形式傳送。無論伺服器是否需要(即, 是否傳送了401認證需求**),此字串都會被傳送。

-t post資料所使用的content-type頭資訊。

-v設定顯示資訊的詳細程度-4或更大值會顯示頭資訊,3或更大值可以顯示響應**(404,200等),2或更大值可以顯示警告和其他資訊。

-v顯示版本號並退出。

-w以html表的格式輸出結果。預設時,它是白色背景的兩列寬度的一張表。

-i執行head請求,而不是get。

-x設定

屬性的字串。

-x對請求使用**伺服器。

-y設定屬性的字串。

-z設定

屬性的字串。

-c對請求附加乙個cookie:行。其典型形式是name=value的乙個引數對,此引數可以重複。

-h對請求附加額外的頭資訊。此引數的典型形式是乙個有效的頭資訊行,其中包含了以冒號分隔的字段和值的對(如,」accept-encoding:zip/zop;8bit」)。

-a對伺服器提供basic認證信任。使用者名稱和密碼由乙個:隔開,並以base64編碼形式傳送。無論伺服器是否需要(即,是否傳送了401認證需求**),此字串都會被傳送。

-h顯示使用方法。

-d不顯示」percentage served within xx [ms] table」的訊息(為以前的版本提供支援)。

-e產生乙個以逗號分隔的(csv)檔案,其中包含了處理每個相應百分比的請求所需要(從1%到100%)的相應百分比的(以微妙為單位)時間。由於這種格式已經「二進位製化」,所以比』gnuplot』格式更有用。

-g把所有測試結果寫入乙個』gnuplot』或者tsv(以tab分隔的)檔案。此檔案可以方便地匯入到gnuplot,idl,mathematica,igor甚至excel中。其中的第一行為標題。

-i執行head請求,而不是get。

-k啟用http keepalive功能,即在乙個http會話中執行多個請求。預設時,不啟用keepalive功能。

-q如果處理的請求數大於150,ab每處理大約10%或者100個請求時,會在stderr輸出乙個進度計數。此-q標記可以抑制這些資訊。

ab效能指標ab返回引數

通過上圖,測試結果也一目了然,apache測試出的吞吐率為:requests per second: 204.89#/sec。

除此之外還有其他一些資訊,需要說明下,如下:

server software表示被測試的web伺服器軟體名稱。

server hostname表示請求的url主機名。

server port表示被測試的web伺服器軟體的監聽埠。

document path表示請求的url中的根絕對路徑,通過該檔案的字尾名,我們一般可以了解該請求的型別。

document length表示http響應資料的正文長度。

concurrency level表示併發使用者數,這是我們設定的引數之一。

time taken for tests表示所有這些請求被處理完成所花費的總時間。

complete requests表示總請求數量,這是我們設定的引數之一。

failed requests表示失敗的請求數量,這裡的失敗是指請求在連線伺服器、傳送資料等環節發生異常,以及無響應後超時的情況。如果接收到的http響應資料的頭資訊中含有2xx以外的狀態碼,則會在測試結果中顯示另乙個名為「non-2xx responses」的統計項,用於統計這部分請求數,這些請求並不算在失敗的請求中。

total transferred表示所有請求的響應資料長度總和,包括每個http響應資料的頭資訊和正文資料的長度。注意這裡不包括http請求資料的長度,僅僅為web伺服器流向使用者pc的應用層資料總長度。

html transferred表示所有請求的響應資料中正文資料的總和,也就是減去了total transferred中http響應資料中的頭資訊的長度。

requests per second吞吐率,計算公式:complete requests/time taken for tests

time per request使用者平均請求等待時間,計算公式:time token for tests/(complete requests/concurrency level)。

time per requet(across all concurrent request)伺服器平均請求等待時間,計算公式:time taken for tests/complete requests,正好是吞吐率的倒數。也可以這麼統計:time per request/concurrency level。

transfer rate表示這些請求在單位時間內從伺服器獲取的資料長度,計算公式:total trnasferred/ time taken for tests,這個統計很好的說明伺服器的處理能力達到極限時,其出口寬頻的需求量。

percentage of requests served within a certain time(ms)這部分資料用於描述每個請求處理時間的分布情況,比如以上測試,80%的請求處理時間都不超過6ms,這個處理時間是指前面的time per request,即對於單個使用者而言,平均每個請求的處理時間。

效能測試個人經驗小結

效能測試定義 通過一定的工具結合相應的測試方法,對部署的系統應用進行測試,發現系統應用內部存在的 邏輯問題及應用部署的機器硬體資源瓶頸問題及應用部署架構存在架構錯誤問題,如 網路端 客戶端 服務端搭建的架構問題 負載測試 是乙個分析軟體應用程式和支撐架構 模擬真實環境的使用,從而來確定能夠接收的效能...

OI gprof 效能測試工具 小結

首先說明這篇部落格偏向個人備忘 我會將我覺得在oi中實用精簡的地方做小結 簡單的說就是要用的時候背得出來 想要了解更詳盡資訊的同學可以移步這裡或這裡 好像真的會有人看我這篇一樣 gprof 首先名字要背 可以很方便的顯示出 中函式呼叫的次數 時間及所佔百分比,甚至是有關函式的父函式及子函式呼叫資訊 ...

Iperf效能測試的問題小結

1.iperf用檔案作為資料來源無效的問題 iperf生成的資料報,預設是0 9這10個數字的迴圈 十六進製制的話就是0x30 0x39的迴圈 我們可能需要去人工指定資料內容,比如全都置成0來方便的檢視物理傳輸過程中的出錯情況,於是我造了乙個資料檔案之後呼叫 iperf f root input d...