利用 apache ab 测试服务器性能
安裝步驟:https://blog.csdn.net/ahaaaaa/article/details/51514175
?
?
在Windows系統(tǒng)下,打開cmd命令行窗口,定位到apache安裝目錄的bin目錄下?
?
測試場景:模擬10個用戶,對百度首頁發(fā)起總共100次請求。
測試命令:?ab -n 100 -c 10? https://www.baidu.com/index.html
?
?
(ab -t 60 -c 100?https://www.baidu.com/index.html? ?在60秒內(nèi)發(fā)請求,一次100個請求。?)
//如果需要在url中帶參數(shù),這樣做?
ab -t 60 -c 100 -T "text/plain" -p p.txt?https://www.baidu.com/index.html
p.txt 是和ab.exe在一個目錄?
p.txt 中可以寫參數(shù),如? p=wdp&fq=78?
?
?
?
測試報告:
下面來逐行解釋我的理解,以下注釋部分有查閱網(wǎng)上資料,但所寫內(nèi)容均為自己理解之后手打內(nèi)容,希望加入自己的理解之后能讓讀者更容易理解。
bogon:~ tang$ ab -n 100 -c 10 https://www.baidu.com/index.html This is ApacheBench, Version 2.3 <$Revision: 1706008 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org///以上為apache的版本信息,與本次測試無關(guān) Benchmarking www.baidu.com (be patient).....done//以上內(nèi)容顯示測試完成度,本次測試發(fā)起請求數(shù)量較少,完成較快,無中間過程顯示。在請求數(shù)量很多時會分行顯示當前完成數(shù)量。 Server Software: bfe/1.0.8.14 //被測試的服務(wù)器所用的軟件信息,這里使用的是百度自己開發(fā)的反向代理Baidu Front End,類似nginx。 Server Hostname: www.baidu.com //被測主機名 Server Port: 443 //被測主機的服務(wù)端口號,一般http請求的默認端口號是80,https默認使用443端口 SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128 //加密協(xié)議 Document Path: /index.html //請求的具體文件 Document Length: 227 bytes //請求的文件index.html大小 Concurrency Level: 10 //并發(fā)級別,也就是并發(fā)數(shù),請求中-c參數(shù)指定的數(shù)量 Time taken for tests: 1.093 seconds //本次測試總共花費的時間 Complete requests: 100 //本次測試總共發(fā)起的請求數(shù)量 Failed requests: 0 //失敗的請求數(shù)量。因網(wǎng)絡(luò)原因或服務(wù)器性能原因,發(fā)起的請求并不一定全部成功,通過該數(shù)值和Complete requests相除可以計算請求的失敗率,作為測試結(jié)果的重要參考。 Total transferred: 103314 bytes //總共傳輸?shù)臄?shù)據(jù)量,指的是ab從被測服務(wù)器接收到的總數(shù)據(jù)量,包括index.html的文本內(nèi)容和請求頭信息。 HTML transferred: 22700 bytes //從服務(wù)器接收到的index.html文件的總大小,等于Document Length*Complete requests=227 bytes*100=22700 bytes Requests per second: 91.50 [#/sec] (mean) //平均(mean)每秒完成的請求數(shù):QPS,這是一個平均值,等于Complete requests/Time taken for tests=100/1.093=91.50 Time per request: 109.287 [ms] (mean) //從用戶角度看,完成一個請求所需要的時間(因用戶數(shù)量不止一個,服務(wù)器完成10個請求,平均每個用戶才接收到一個完整的返回,所以該值是下一項數(shù)值的10倍。) Time per request: 10.929 [ms] (mean, across all concurrent requests)// 服務(wù)器完成一個請求的時間。 Transfer rate: 92.32 [Kbytes/sec] received //網(wǎng)絡(luò)傳輸速度。對于大文件的請求測試,這個值很容易成為系統(tǒng)瓶頸所在。要確定該值是不是瓶頸,需要了解客戶端和被測服務(wù)器之間的網(wǎng)絡(luò)情況,包括網(wǎng)絡(luò)帶寬和網(wǎng)卡速度等信息。 Connection Times (ms)min mean[+/-sd] median maxConnect: 47 74 12.9 74 106Processing: 9 32 20.2 32 106Waiting: 9 29 19.1 27 98Total: 66 106 20.8 106 195//這幾行組成的表格主要是針對響應(yīng)時間也就是第一個Time per request進行細分和統(tǒng)計。一個請求的響應(yīng)時間可以分成網(wǎng)絡(luò)鏈接(Connect),系統(tǒng)處理(Processing)和等待(Waiting)三個部分。表中min表示最小值; mean表示平均值;[+/-sd]表示標準差(Standard Deviation) ,也稱均方差(mean square error),這個概念在中學的數(shù)學課上學過,表示數(shù)據(jù)的離散程度,數(shù)值越大表示數(shù)據(jù)越分散,系統(tǒng)響應(yīng)時間越不穩(wěn)定。 median表示中位數(shù); max當然就是表示最大值了。//需要注意的是表中的Total并不等于前三行數(shù)據(jù)相加,因為前三行的數(shù)據(jù)并不是在同一個請求中采集到的,可能某個請求的網(wǎng)絡(luò)延遲最短,但是系統(tǒng)處理時間又是最長的呢。所以Total是從整個請求所需要的時間的角度來統(tǒng)計的。這里可以看到最慢的一個請求花費了195ms,這個數(shù)據(jù)可以在下面的表中得到驗證。 Percentage of the requests served within a certain time (ms)50% 10666% 10975% 11180% 11490% 11895% 15498% 17699% 195100% 195 (longest request)//這個表第一行表示有50%的請求都是在106ms內(nèi)完成的,可以看到這個值是比較接近平均系統(tǒng)響應(yīng)時間(第一個Time per request: 109.287 [ms] (mean) ) 以此類推,90%的請求是小于等于118ms的。剛才我們看到響應(yīng)時間最長的那個請求是195ms,那么顯然所有請求(100%)的時間都是小于等于195毫秒的,也就是表中最后一行的數(shù)據(jù)肯定是時間最長的那個請求(longest request)。?
轉(zhuǎn)載于:https://www.cnblogs.com/wang666/p/9007066.html
總結(jié)
以上是生活随笔為你收集整理的利用 apache ab 测试服务器性能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Android Studio 找不到Ev
- 下一篇: sql server 日期类型
