1.ab是什麼?linux
ab是apache自帶的一個壓測工具。它的原理是ab命令會建立多個併發訪問線程,模擬多個訪問者同時對某一URL地址進行訪問。它的測試目標是基於URL的,所以,它既能夠用來測試apache的負載壓力,也能夠測試nginx、lighthttp、tomcat、IIS等其它Web服務器的壓力。nginx
2.爲何要使用ab?apache
我作的是遊戲支付平臺,要求必定要穩定,併發大的時候不能掛,因此上線以前要使用壓測工具壓測,看看接口的峯值等。json
3.linux上安裝ab後端
linux上安裝ab很是簡單,步驟以下:tomcat
1.我是安裝在 /usr/local 下,新建一個文件夾 mkdir ab服務器
2.開始安裝 yum -y install httpd-tools併發
3.測試是否安裝成功 ab -Vapp
4.ab經常使用的參數介紹工具
-n :總共的請求執行數,缺省是1;
-c: 併發數,缺省是1;
-t:測試所進行的總時間,秒爲單位,缺省50000s
-p:POST時的數據文件
-T:跟_p一塊兒使用,主要post請求時請求頭的信息
5.開始測試
我此次是測試nginx的性能。由於我是post請求,要有請求體、請求頭的信息。後端使用了@RequestBody,因此請求體的內容必須是json格式。
下面開始介紹用ab壓測的時候post請求的用法:
1.首先在安裝路徑下,新建一個文件 post.txt,命令以下:
2.而後打開post.txt文件,將本身的請求體的信息放進去:
3.最重要的命令來了,注意看:
ab -n 100 -c 10 -p post.txt -T 'application/json' 服務器地址:端口號/test.json
這個表示同時處理10個請求並運行100次這個test.json
解釋一下 -n是指總共100個請求 -c是指併發數10 -p是指post請求請求體內容 -T是指請求體信息 後面的就是本身的請求地址
4.執行結果
比較重要的參數詳細解釋一下:
//你們最關心的指標之一,至關於 LR 中的 每秒事務數 ,後面括號中的 mean 表示這是一個平均值
Requests per second: 122.12 [#/sec] (mean)
//你們最關心的指標之二,至關於 LR 中的 平均事務響應時間 ,後面括號中的 mean 表示這是一個平均值
Time per request: 8188.731 [ms] (mean)
//每一個請求實際運行時間的平均值
Time per request: 8.189 [ms] (mean, across all concurrent requests)