性能測試-服務端瓶頸分析思路

概述

性能測試中,對服務端的指標監控也是很重要的一個環節。經過對各項服務器性能指標的監控分析,能夠定位到性能瓶頸。ios

後端性能指標有CPU,內存,網絡,I/O等等後端

分析思路

  • 總體系統CPU利用率
  • 內存利用率
  • 磁盤I/O的利用率和延遲
  • 網絡利用率

CPU定位分析

CPU利用率大於50%,須要注意;大於70%,須要密切關注;高於90%,狀況比較嚴重。服務器

監控命令:vmstat、sar、dstat、mpstat、top、ps網絡

類型 度量方法 衡量標準
利用率

一、vmstat 統計1-%idle性能

二、sar -u 統計1-%idle測試

三、dstat 統計1-%idlspa

四、mpstat -P ALL 統計1-%idle隊列

 

注意>=50%ip

告警>=70%內存

嚴重>=90%

滿載  

一、vmstat的r值> cpu邏輯顆數

二、sar -q ,「runq-sz」>cpu邏輯顆數

 

 運行隊列大於1時,證實已經有必定的負載

內存定位分析

當物理內存不夠時,會使用swap分區,因此性能測試過程當中須要關注swap和mem的使用狀況。

物理內存不夠,大量的內存置換到swap空間,可能致使CPU和I/O的瓶頸。

監控命令:vmstat、sar、dstat、free、top、ps等

類型

度量方法

衡量標註

佔用率

一、free 查看使用狀況

二、vmstat

三、sar -r

四、ps

注意>=50%

告警>=70%

嚴重>=80%

滿載

一、vmstat的si/so比例,swapd佔比

二、sar -W 查看次缺頁數

三、dmesg | grep killed

一、so數值大,且swapd已經佔比很高,內存已經飽和

二、sar命令次缺頁多意味內存已經飽和

三、內存不夠用會觸發內核的OOM機制

 

網絡定位分析

監控命令:sar、ifconfig、netstat,以及查看net的dev速率。

經過查看發現收發包的吞吐率達到網卡的最大上限,網絡數據報文有由於這類緣由而引發的丟包、阻塞等現象都證實當前網絡可能存在瓶頸。

爲了減少網絡對性能測試的影響,通常咱們都在局域網中進行測試執行。

類型 度量方法 衡量標準
使用狀況

一、sar -n DEV 的收發計數大於網卡上限

二、ifconfig RX/TX寬帶超過網卡上限

三、cat /proc/net/dev的速率超過上限

四、nicstat的util基本滿負荷

一、收發包的吞吐率達到網卡上限

二、有延遲

三、有丟包

四、有阻塞

滿載

一、ifconfig dropped 有計數

二、netstat -s "segments retransmited"有計數

三、sar -n EDEV,rxdrop/s  txdrop/s有計數

有丟包統計
錯誤

一、ifconfig,「errors」

二、netstat -i,RX-ERR TX-ERR

三、sar -n EDEV,rxerr/s   txerr/s 

四、ip -s link, 「errors」

錯誤有計數   

  

IO定位分析

I/O讀寫頻繁的時候,若是I/O得不到知足會致使應用的阻塞。

須要考慮I/O的TPS、平均I/O數據、平均隊列長度、平均服務時間、平均等待時間、IO利用率(磁盤Busy Time%)等指標

監控命令:sar、iostat、iotop

類型 度量方法 衡量標準
使用狀況

一、iostat -xz,「%util」

二、sar -d,「%util」

三、cat /proc/pid/sched | grep iowait

注意>=40%

告警>=60%

嚴重>=80%

滿載

一、iostat -xnz,「avgqu-sz 」>1

二、iostat await>70

IO疑似滿載
錯誤

一、dmseg 查看io錯誤

二、smartctl /dev/sda

有錯誤信息
相關文章
相關標籤/搜索