溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

網(wǎng)站性能ab命令壓力測(cè)試

發(fā)布時(shí)間:2020-07-26 20:08:26 來(lái)源:網(wǎng)絡(luò) 閱讀:966 作者:上nuo絕地 欄目:建站服務(wù)器

PS:網(wǎng)站性能壓力測(cè)試是性能調(diào)優(yōu)過(guò)程中必不可少的一環(huán)。只有讓服務(wù)器處在高壓情況下才能真正體現(xiàn)出各種設(shè)置所暴露的問(wèn)題。Apache中有個(gè)自帶的,名為ab的程序,可以對(duì)Apache或其它類(lèi)型的服務(wù)器進(jìn)行網(wǎng)站訪問(wèn)壓力測(cè)試。

ApacheBench命令原理:

ab命令會(huì)創(chuàng)建很多的并發(fā)訪問(wèn)線程,模擬多個(gè)訪問(wèn)者同時(shí)對(duì)某一URL地址進(jìn)行訪問(wèn)。它的測(cè)試目標(biāo)是基于URL的,因此,既可以用來(lái)測(cè)試Apache的負(fù)載壓力,也可以測(cè)試nginx、lighthttp、tomcat、IIS等其它Web服務(wù)器的壓力。ab命令對(duì)發(fā)出負(fù)載的計(jì)算機(jī)要求很低,既不會(huì)占用很高CPU,也不會(huì)占用很多內(nèi)存,但卻會(huì)給目標(biāo)服務(wù)器造成巨大的負(fù)載,其原理類(lèi)似CC***。自己測(cè)試使用也須注意,否則一次上太多的負(fù)載,可能造成目標(biāo)服務(wù)器因資源耗完,嚴(yán)重時(shí)甚至導(dǎo)致死機(jī)。

格式:# ab [options] [http://]hostname[:port]/path
參數(shù)說(shuō)明:
-n requests Number of requests to perform
//在測(cè)試會(huì)話中所執(zhí)行的請(qǐng)求個(gè)數(shù)(本次測(cè)試總共要訪問(wèn)頁(yè)面的次數(shù))。默認(rèn)時(shí),僅執(zhí)行一個(gè)請(qǐng)求。
-c concurrency Number of multiple requests to make
//一次產(chǎn)生的請(qǐng)求個(gè)數(shù)(并發(fā)數(shù)),就相當(dāng)于一定是同時(shí)處理這個(gè)多個(gè)并發(fā),處理完就是一個(gè)事務(wù)。默認(rèn)是一次一個(gè)。

ApacheBench用法詳解:在Linux系統(tǒng),一般安裝好Apache后可以直接執(zhí)行;

# ab  -n  1000 -c 100 http://10.1.1.128/test.php  
//n后面的代表總共發(fā)出1000個(gè)請(qǐng)求;-c后面的100表示采用100個(gè)并發(fā)(模擬100個(gè)人同時(shí)訪問(wèn)),后面的網(wǎng)址表示測(cè)試的目標(biāo)URL。

網(wǎng)站性能ab命令壓力測(cè)試

結(jié)果分析:

Document Path: /test.php
#測(cè)試的頁(yè)面
Document Length: 15 bytes
#頁(yè)面大小

Concurrency Level: 100
#測(cè)試的并發(fā)數(shù),也是-c選項(xiàng)
Time taken for tests: 0.575 seconds
#整個(gè)測(cè)試持續(xù)的時(shí)間
Complete requests: 1000
#完成的請(qǐng)求數(shù)量
Failed requests: 0
#失敗的請(qǐng)求數(shù)量
Write errors: 0
Total transferred: 171171 bytes
#整個(gè)過(guò)程中的網(wǎng)絡(luò)傳輸量
HTML transferred: 15015 bytes
#整個(gè)過(guò)程中的HTML內(nèi)容傳輸量
Requests per second: 1739.26 [#/sec] (mean)
#最重要的指標(biāo)之一,相當(dāng)于LR中的每秒事務(wù)數(shù),后面括號(hào)中的mean表示這是一個(gè)平均值
Time per request: 57.496 [ms] (mean)
#最重要的指標(biāo)之二,相當(dāng)于LR中的平均事務(wù)響應(yīng)時(shí)間,后面括號(hào)中的mean表示這是一個(gè)平均值  ----》計(jì)算公式:事務(wù)量=n/c,事務(wù)平均響應(yīng)時(shí)間=總耗時(shí)/事務(wù)量
Time per request: 0.575 [ms] (mean, across all concurrent requests)
#每個(gè)連接請(qǐng)求實(shí)際運(yùn)行時(shí)間的平均值
Transfer rate: 290.73 [Kbytes/sec] received
#平均每秒網(wǎng)絡(luò)上的流量,可以幫助排除是否存在網(wǎng)絡(luò)流量過(guò)大導(dǎo)致響應(yīng)時(shí)間延長(zhǎng)的問(wèn)題

Connection Times (ms)
                     min mean[+/-sd] median max
Connect:                  0   6  8.5    1   28
Processing:                 1  49  18.4    51  113
Waiting:                  0  46  17.2    49  91                     
Total:                  11  55  19.5    54  140


網(wǎng)站性能ab命令壓力測(cè)試

#整個(gè)場(chǎng)景中所有請(qǐng)求的響應(yīng)情況。在場(chǎng)景中每個(gè)請(qǐng)求都有一個(gè)響應(yīng)時(shí)間,其中50%的用戶(hù)響應(yīng)時(shí)間小于54毫秒,66%的用戶(hù)響應(yīng)時(shí)間小于58毫秒,最大的響應(yīng)時(shí)間小于140毫秒。對(duì)于并發(fā)請(qǐng)求,cpu實(shí)際上并不是同時(shí)處理的,而是按照每個(gè)請(qǐng)求獲得的時(shí)間片逐個(gè)輪轉(zhuǎn)處理的,所以基本上第一個(gè)Time per request時(shí)間約等于第二個(gè)Time per request時(shí)間乘以并發(fā)請(qǐng)求數(shù)。

總結(jié):在遠(yuǎn)程對(duì)web服務(wù)器進(jìn)行壓力測(cè)試,往往效果不理想(因?yàn)榫W(wǎng)絡(luò)延時(shí)過(guò)大),建議使用內(nèi)網(wǎng)的另一臺(tái)或者多臺(tái)服務(wù)器通過(guò)內(nèi)網(wǎng)進(jìn)行測(cè)試,這樣得出的數(shù)據(jù),準(zhǔn)確度會(huì)高很多。如果只有單獨(dú)的一臺(tái)服務(wù)器,可以直接本地測(cè)試,比遠(yuǎn)程測(cè)試效果要準(zhǔn)確。

本文來(lái)自個(gè)人博客:http://www.forgecode.cn/250.html


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI