?
閱讀更多性能測試文章,請掃碼關(guān)注公眾號
或者微信公眾號搜索 測試驛棧
概述
性能測試中,對服務(wù)端的指標(biāo)監(jiān)控也是很重要的一個環(huán)節(jié)。通過對各項服務(wù)器性能指標(biāo)的監(jiān)控分析,可以定位到性能瓶頸。
后端性能指標(biāo)有CPU,內(nèi)存,網(wǎng)絡(luò),I/O等等
分析思路
* 整體系統(tǒng)CPU利用率
* 內(nèi)存利用率
* 磁盤I/O的利用率和延遲
* 網(wǎng)絡(luò)利用率
CPU定位分析
CPU利用率大于50%,需要注意;大于70%,需要密切關(guān)注;高于90%,情況比較嚴(yán)重。
監(jiān)控命令:vmstat、sar、dstat、mpstat、top、ps
類型 度量方法 衡量標(biāo)準(zhǔn)
利用率
1、vmstat 統(tǒng)計1-%idle
2、sar -u 統(tǒng)計1-%idle
3、dstat 統(tǒng)計1-%idl
4、mpstat -P ALL 統(tǒng)計1-%idle
?
注意>=50%
告警>=70%
嚴(yán)重>=90%
滿載 ?
1、vmstat的r值> cpu邏輯顆數(shù)
2、sar -q ,“runq-sz”>cpu邏輯顆數(shù)
?
?運行隊列大于1時,證明已經(jīng)有一定的負(fù)載
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
內(nèi)存定位分析
當(dāng)物理內(nèi)存不夠時,會使用swap分區(qū),所以性能測試過程中需要關(guān)注swap和mem的使用情況。
物理內(nèi)存不夠,大量的內(nèi)存置換到swap空間,可能導(dǎo)致CPU和I/O的瓶頸。
監(jiān)控命令:vmstat、sar、dstat、free、top、ps等
類型
度量方法
衡量標(biāo)注
占用率
1、free 查看使用情況
2、vmstat
3、sar -r
4、ps
注意>=50%
告警>=70%
嚴(yán)重>=80%
滿載
1、vmstat的si/so比例,swapd占比
2、sar -W 查看次缺頁數(shù)
3、dmesg | grep killed
1、so數(shù)值大,且swapd已經(jīng)占比很高,內(nèi)存已經(jīng)飽和
2、sar命令次缺頁多意味內(nèi)存已經(jīng)飽和
3、內(nèi)存不夠用會觸發(fā)內(nèi)核的OOM機制
?
?
?
?
?
?
?
?
?
?
?
?
網(wǎng)絡(luò)定位分析
監(jiān)控命令:sar、ifconfig、netstat,以及查看net的dev速率。
通過查看發(fā)現(xiàn)收發(fā)包的吞吐率達到網(wǎng)卡的最大上限,網(wǎng)絡(luò)數(shù)據(jù)報文有因為這類原因而引起的丟包、阻塞等現(xiàn)象都證明當(dāng)前網(wǎng)絡(luò)可能存在瓶頸。
為了減小網(wǎng)絡(luò)對性能測試的影響,一般我們都在局域網(wǎng)中進行測試執(zhí)行。
類型 度量方法 衡量標(biāo)準(zhǔn)
使用情況
1、sar -n DEV 的收發(fā)計數(shù)大于網(wǎng)卡上限
2、ifconfig RX/TX寬帶超過網(wǎng)卡上限
3、cat /proc/net/dev的速率超過上限
4、nicstat的util基本滿負(fù)荷
1、收發(fā)包的吞吐率達到網(wǎng)卡上限
2、有延遲
3、有丟包
4、有阻塞
滿載
1、ifconfig dropped 有計數(shù)
2、netstat -s "segments retransmited"有計數(shù)
3、sar -n EDEV,rxdrop/s ?txdrop/s有計數(shù)
有丟包統(tǒng)計
錯誤
1、ifconfig,“errors”
2、netstat -i,RX-ERR TX-ERR
3、sar -n EDEV,rxerr/s ? txerr/s?
4、ip -s link, “errors”
錯誤有計數(shù)? ?
??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
IO定位分析
I/O讀寫頻繁的時候,如果I/O得不到滿足會導(dǎo)致應(yīng)用的阻塞。
需要考慮I/O的TPS、平均I/O數(shù)據(jù)、平均隊列長度、平均服務(wù)時間、平均等待時間、IO利用率(磁盤Busy Time%)等指標(biāo)
監(jiān)控命令:sar、iostat、iotop
類型 度量方法 衡量標(biāo)準(zhǔn)
使用情況
1、iostat -xz,“%util”
2、sar -d,“%util”
3、cat /proc/pid/sched | grep iowait
注意>=40%
告警>=60%
嚴(yán)重>=80%
滿載
1、iostat -xnz,“avgqu-sz?”>1
2、iostat await>70
IO疑似滿載
錯誤
1、dmseg 查看io錯誤
2、smartctl /dev/sda
有錯誤信息
熱門工具 換一換