Apache benchmark 使用

1. 併發測試
同時對Web服務器進行10個併發請求,直到進行到100個請求爲止。
ab -n 100 -c 10 http://www.example.com/ 
2. 時間測試
下面我們使用以下命令來模擬10個用戶在20秒的時間內同時訪問網站:
ab -c 10 -t 20 http://www.example.com/ 
該命令不包含n標記,但默認情況下包含該標記並且使用t選項時ab將其值設置爲50 000。某些情況下,使用t選項時,最大請求數可能會達到50 000,此時模擬結束。
3. url 參數問題
在windows下直接使用"&"符號添加request參數時,例如:http://localhost:8080/srv.action?method=xxxx&param1=xxx
會報錯,使用"":如ab -n 10 "http://localhost:8080/srv.action?method=xxxx&param1=xxx"
4. 如何模擬post文件請求
當需要post文件時,可以使用-p參數
ab -n 10 -c 10 -p home/aa.txt "http://www.example.com/"
在java中可以通過getInputStream()獲取文件內容
InputStream is = null;
is = this.getRequest().getInputStream();
int lens = this.getRequest().getContentLength();
byte[] bytes = new byte[lens];
is.read(bytes);
String resp = new String(bytes, Constants.CHAR_SET_UTF8);

結果說明:

/*整個測試持續的時間*/
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: 4 646 1078.7 89 3291
Processing: 165 992 493.1 938 4712

Waiting: 118 934 480.6 882 4554
Total: 813 1638 1338.9 1093 7785

//請求在多少時間內響應
//整個場景中所有請求的響應情況。在場景中每個請求都有一個響應時間,其中50%的用戶響應時間小於1093 毫秒,60% 的用戶響應時間小於1247 毫秒,最大的響應時間小於7785 毫秒

Percentage of the requests served within a certain time (ms)
50% 1093
66% 1247
75% 1373
80% 1493

90% 4061
95% 4398
98% 5608
99% 7368

對failed和length的解讀
若failed類型都是length,請不必擔心,這些請求並沒有真正的失敗,只是返回頁面的長度跟別的不一樣而已。參考:

http://stackoverflow.com/questions/579450/load-testing-with-ab-fake-failed-requests-length

http://stackoverflow.com/questions/1512304/failed-requests-by-length-in-my-apachebench-load-test-result


發佈了54 篇原創文章 · 獲贊 4 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章