ab是apache自帶的壓力測試工具。ab進行的一切測試本質上是基於HTTP的。下面是對ab輸出項信息的解釋和出現Failed requests緣由分析。
測試實例:
1. ab輸出信息說明:php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
Server Software: web服務器軟件及版本
Server Hostname: 表示請求的URL中的主機部分名稱
Server Port: 被測試的Web服務器的監聽端口
Document Path: 請求的頁面路徑
Document Length: 頁面大小
Concurrency Level: 併發數
Time taken for tests: 測試總共花費的時間
Complete requests: 完成的請求數
Failed requests: 失敗的請求數,這裏的失敗是指請求的鏈接服務器、發送數據、接收數據等環節發生異常,以及無響應後超時的狀況。對於超時時間的設置能夠用ab的-t參數。若是接受到的http響應數據的頭信息中含有2xx之外的狀態碼,則會在測試結果顯示另外一個名爲「Non-2xx responses」的統計項,用於統計這部分請求數,這些請求並不算是失敗的請求。
Write errors: 寫入錯誤
Total transferred: 總共傳輸字節數,包含http的頭信息等。使用ab的-v參數便可查看詳細的http頭信息。
HTML transferred: html字節數,實際的頁面傳遞字節數。也就是減去了Total transferred中http響應數據中頭信息的長度。
Requests per second: 每秒處理的請求數,服務器的吞吐量,等於:Complete requests / Time taken for tests
Time per request: 平均數,用戶平均請求等待時間
Time per request: 服務器平均處理時間
Transfer rate: 平均傳輸速率(每秒收到的速率)。能夠很好的說明服務器在處理能力達到限制時,其出口帶寬的需求量。
Connection Times (ms) 壓力測試時的鏈接處理時間。
min mean[+/-sd] median max
Connect: 0 67 398.4 9 3009
Processing: 49 2904 2327.2 2755 12115
Waiting: 48 2539 2075.1 2418 12110
Total: 53 2972 2385.3 2789 12119
|
2. 測試時出現的Failed requests緣由分析:
Failed requests: 2303
(Connect: 0, Length: 2303, Exceptions: 0)
只要出現Failed requests就會多一行數據來統計失敗的緣由,分別有Connect、Length、Exceptions。
Connect 沒法送出要求、目標主機鏈接失敗、要求的過程當中被中斷。
Length 響應的內容長度不一致 ( 以 Content-Length 頭值爲判斷依據 )。
Exception 發生沒法預期的錯誤。html
上圖的測試失敗請求都落在Length類別上,是由於測試的是PHP動態頁面,測試過程當中響應的Content-Length大小不一致形成的。有網友說對於動態頁面的Length不一致是合理的,能夠不予理會。可是我這測試實例是經過PHP來訪問圖片的,這個響應的大小應該是固定的吧。web
如需轉載請註明出處:http://www.ttlsa.com/html/2624.htmlapache