ab壓力測(cè)試

安裝好Apache

測(cè)試場(chǎng)景:模擬10個(gè)用戶,對(duì)百度首頁(yè)發(fā)起總共100次請(qǐng)求。

測(cè)試命令:?ab -n 100 -c 10? https://www.baidu.com/index.htm

在Windows系統(tǒng)的命令行下,進(jìn)入ab.exe程序所在目錄,執(zhí)行ab.exe程序。注意直接雙擊無(wú)法正確運(yùn)行。

執(zhí)行ab命令成功后,可以看到如圖提示。該幫助很清楚詳細(xì)的介紹了ab的用法以及各個(gè)參數(shù)的含義。

ab 的用法是:ab [options] [http://]hostname[:port]/path

例如:ab -n 5000 -c 200 http://localhost/index.php

上例表示總共訪問(wèn)http://localhost/index.php這個(gè)腳本5000次,200并發(fā)同時(shí)執(zhí)行。

ab常用參數(shù)的介紹:

-n :總共的請(qǐng)求執(zhí)行數(shù),缺省是1;

-c: 并發(fā)數(shù),缺省是1;

-t:測(cè)試所進(jìn)行的總時(shí)間,秒為單位,缺省50000s

-p:POST時(shí)的數(shù)據(jù)文件

-w: 以HTML表的格式輸出結(jié)果

下面來(lái)逐行解釋我的理解,以下注釋部分有查閱網(wǎng)上資料,但所寫(xiě)內(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的版本信息,與本次測(cè)試無(wú)關(guān)

Benchmarking www.baidu.com (be patient).....done

//以上內(nèi)容顯示測(cè)試完成度,本次測(cè)試發(fā)起請(qǐng)求數(shù)量較少,完成較快,無(wú)中間過(guò)程顯示。在請(qǐng)求數(shù)量很多時(shí)會(huì)分行顯示當(dāng)前完成數(shù)量。



Server Software:? ? ? ? bfe/1.0.8.14//被測(cè)試的服務(wù)器所用的軟件信息,這里使用的是百度自己開(kāi)發(fā)的反向代理Baidu Front End,類似nginx。

Server Hostname:? ? ? ? www.baidu.com?//被測(cè)主機(jī)名

Server Port:? ? ? ? ? ? 443?//被測(cè)主機(jī)的服務(wù)端口號(hào),一般http請(qǐng)求的默認(rèn)端口號(hào)是80,https默認(rèn)使用443端口

SSL/TLS Protocol: ? ? ? TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128??//加密協(xié)議


Document Path:? ? ? ? ? /index.html//請(qǐng)求的具體文件

Document Length:? ? ? ? 227 bytes?//請(qǐng)求的文件index.html大小


Concurrency Level:? ? ? 10?//并發(fā)級(jí)別,也就是并發(fā)數(shù),請(qǐng)求中-c參數(shù)指定的數(shù)量

Time taken for tests: ? 1.093 seconds?//本次測(cè)試總共花費(fèi)的時(shí)間

Complete requests:? ? ? 100?//本次測(cè)試總共發(fā)起的請(qǐng)求數(shù)量

Failed requests:? ? ? ? 0?//失敗的請(qǐng)求數(shù)量。因網(wǎng)絡(luò)原因或服務(wù)器性能原因,發(fā)起的請(qǐng)求并不一定全部成功,通過(guò)該數(shù)值和Complete requests相除可以計(jì)算請(qǐng)求的失敗率,作為測(cè)試結(jié)果的重要參考。

Total transferred:? ? ? 103314 bytes//總共傳輸?shù)臄?shù)據(jù)量,指的是ab從被測(cè)服務(wù)器接收到的總數(shù)據(jù)量,包括index.html的文本內(nèi)容和請(qǐng)求頭信息。

HTML transferred: ? ? ? 22700 bytes?//從服務(wù)器接收到的index.html文件的總大小,等于Document Length*Complete requests=227?bytes*100=22700 bytes

Requests per second:? ? 91.50 [#/sec] (mean)?//平均(mean)每秒完成的請(qǐng)求數(shù):QPS,這是一個(gè)平均值,等于Complete requests/Time taken for tests=100/1.093=91.50

Time per request: ? ? ? 109.287 [ms] (mean)?//從用戶角度看,完成一個(gè)請(qǐng)求所需要的時(shí)間(因用戶數(shù)量不止一個(gè),服務(wù)器完成10個(gè)請(qǐng)求,平均每個(gè)用戶才接收到一個(gè)完整的返回,所以該值是下一項(xiàng)數(shù)值的10倍。)

Time per request: ? ? ? 10.929 [ms] (mean, across all concurrent requests)// 服務(wù)器完成一個(gè)請(qǐng)求的時(shí)間。

Transfer rate:? ? ? ? ? 92.32 [Kbytes/sec] received//網(wǎng)絡(luò)傳輸速度。對(duì)于大文件的請(qǐng)求測(cè)試,這個(gè)值很容易成為系統(tǒng)瓶頸所在。要確定該值是不是瓶頸,需要了解客戶端和被測(cè)服務(wù)器之間的網(wǎng)絡(luò)情況,包括網(wǎng)絡(luò)帶寬和網(wǎng)卡速度等信息。


Connection Times (ms)

? ? ? ? ? ? ? min? mean[+/-sd] median ? max

Connect: ? ? ? 47 ? 74? 12.9 ? ? 74 ? ? 106

Processing: ? ? 9 ? 32? 20.2 ? ? 32 ? ? 106

Waiting:? ? ? ? 9 ? 29? 19.1 ? ? 27? ? ? 98

Total: ? ? ? ? 66? 106? 20.8? ? 106 ? ? 195

//這幾行組成的表格主要是針對(duì)響應(yīng)時(shí)間也就是第一個(gè)Time per request進(jìn)行細(xì)分和統(tǒng)計(jì)。一個(gè)請(qǐng)求的響應(yīng)時(shí)間可以分成網(wǎng)絡(luò)鏈接(Connect),系統(tǒng)處理(Processing)和等待(Waiting)三個(gè)部分。表中min表示最小值;?mean表示平均值;[+/-sd]表示標(biāo)準(zhǔn)差(Standard Deviation) ,也稱均方差(mean square error),這個(gè)概念在中學(xué)的數(shù)學(xué)課上學(xué)過(guò),表示數(shù)據(jù)的離散程度,數(shù)值越大表示數(shù)據(jù)越分散,系統(tǒng)響應(yīng)時(shí)間越不穩(wěn)定。 median表示中位數(shù); max當(dāng)然就是表示最大值了。

//需要注意的是表中的Total并不等于前三行數(shù)據(jù)相加,因?yàn)榍叭械臄?shù)據(jù)并不是在同一個(gè)請(qǐng)求中采集到的,可能某個(gè)請(qǐng)求的網(wǎng)絡(luò)延遲最短,但是系統(tǒng)處理時(shí)間又是最長(zhǎng)的呢。所以Total是從整個(gè)請(qǐng)求所需要的時(shí)間的角度來(lái)統(tǒng)計(jì)的。這里可以看到最慢的一個(gè)請(qǐng)求花費(fèi)了195ms,這個(gè)數(shù)據(jù)可以在下面的表中得到驗(yàn)證。


Percentage of the requests served within a certain time (ms)

? 50%? ? 106

? 66%? ? 109

? 75%? ? 111

? 80%? ? 114

? 90%? ? 118

? 95%? ? 154

? 98%? ? 176

? 99%? ? 195

?100%? ? 195 (longest request)

//這個(gè)表第一行表示有50%的請(qǐng)求都是在106ms內(nèi)完成的,可以看到這個(gè)值是比較接近平均系統(tǒng)響應(yīng)時(shí)間(第一個(gè)Time per request: ? ? ? 109.287 [ms] (mean)?)

以此類推,90%的請(qǐng)求是小于等于118ms的。剛才我們看到響應(yīng)時(shí)間最長(zhǎng)的那個(gè)請(qǐng)求是195ms,那么顯然所有請(qǐng)求(100%)的時(shí)間都是小于等于195毫秒的,也就是表中最后一行的數(shù)據(jù)肯定是時(shí)間最長(zhǎng)的那個(gè)請(qǐng)求(longest request)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1 我們可以模擬100個(gè)并發(fā)用戶,對(duì)一個(gè)頁(yè)面發(fā)送1000個(gè)請(qǐng)求 ./ab -n1000 -c100 https:/...
    米開(kāi)朗基樂(lè)閱讀 1,283評(píng)論 0 0
  • 原文:https://www.fanhaobai.com/2016/02/ab.html ab(ApacheBen...
    Howborn閱讀 959評(píng)論 0 1
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,551評(píng)論 19 139
  • 壓測(cè)工具:壓力工具選擇使用ApacheBench; 下載:http://www.apachelounge.com/...
    手拉手一起走閱讀 891評(píng)論 0 1
  • 愛(ài)好是會(huì)變的。小時(shí)候的理想,就是跳出農(nóng)門(mén)。誰(shuí)成想,三十來(lái)歲時(shí),抽瘋勁上來(lái),租了些田地。當(dāng)然必須承認(rèn),當(dāng)年做農(nóng)業(yè)最大...
    王陸良閱讀 1,286評(píng)論 0 0

友情鏈接更多精彩內(nèi)容