概述
效能測試中,對服務端的指標監控也是很重要的一個環節。通過對各項伺服器效能指標的監控分析,可以定位到效能瓶頸。
後端效能指標有CPU,記憶體,網路,I/O等等
分析思路
- 整體系統CPU利用率
- 記憶體利用率
- 磁碟I/O的利用率和延遲
- 網路利用率
CPU定位分析
CPU利用率大於50%,需要注意;大於70%,需要密切關注;高於90%,情況比較嚴重。
監控命令:vmstat、sar、dstat、mpstat、top、ps
型別 | 度量方法 | 衡量標準 |
利用率 |
1、vmstat 統計1-%idle 2、sar -u 統計1-%idle 3、dstat 統計1-%idl 4、mpstat -P ALL 統計1-%idle |
注意>=50% 告警>=70% 嚴重>=90% |
滿載 |
1、vmstat的r值> cpu邏輯顆數 2、sar -q ,“runq-sz”>cpu邏輯顆數
|
執行佇列大於1時,證明已經有一定的負載 |
記憶體定位分析
當實體記憶體不夠時,會使用swap分割槽,所以效能測試過程中需要關注swap和mem的使用情況。
實體記憶體不夠,大量的記憶體置換到swap空間,可能導致CPU和I/O的瓶頸。
監控命令:vmstat、sar、dstat、free、top、ps等
型別 |
度量方法 |
衡量標註 |
佔用率 |
1、free 檢視使用情況 2、vmstat 3、sar -r 4、ps |
注意>=50% 告警>=70% 嚴重>=80% |
滿載 |
1、vmstat的si/so比例,swapd佔比 2、sar -W 檢視次缺頁數 3、dmesg | grep killed |
1、so數值大,且swapd已經佔比很高,記憶體已經飽和 2、sar命令次缺頁多意味記憶體已經飽和 3、記憶體不夠用會觸發核心的OOM機制 |
網路定位分析
監控命令:sar、ifconfig、netstat,以及檢視net的dev速率。
通過檢視發現收發包的吞吐率達到網路卡的最大上限,網路資料包文有因為這類原因而引起的丟包、阻塞等現象都證明當前網路可能存在瓶頸。
為了減小網路對效能測試的影響,一般我們都在區域網中進行測試執行。
型別 | 度量方法 | 衡量標準 |
使用情況 |
1、sar -n DEV 的收發計數大於網路卡上限 2、ifconfig RX/TX寬頻超過網路卡上限 3、cat /proc/net/dev的速率超過上限 4、nicstat的util基本滿負荷 |
1、收發包的吞吐率達到網路卡上限 2、有延遲 3、有丟包 4、有阻塞 |
滿載 |
1、ifconfig dropped 有計數 2、netstat -s "segments retransmited"有計數 3、sar -n EDEV,rxdrop/s txdrop/s有計數 |
有丟包統計 |
錯誤 |
1、ifconfig,“errors” 2、netstat -i,RX-ERR TX-ERR 3、sar -n EDEV,rxerr/s txerr/s 4、ip -s link, “errors” |
錯誤有計數 |
IO定位分析
I/O讀寫頻繁的時候,如果I/O得不到滿足會導致應用的阻塞。
需要考慮I/O的TPS、平均I/O資料、平均佇列長度、平均服務時間、平均等待時間、IO利用率(磁碟Busy Time%)等指標
監控命令:sar、iostat、iotop
型別 | 度量方法 | 衡量標準 |
使用情況 |
1、iostat -xz,“%util” 2、sar -d,“%util” 3、cat /proc/pid/sched | grep iowait |
注意>=40% 告警>=60% 嚴重>=80% |
滿載 |
1、iostat -xnz,“avgqu-sz ”>1 2、iostat await>70 |
IO疑似滿載 |
錯誤 |
1、dmseg 檢視io錯誤 2、smartctl /dev/sda |
有錯誤資訊 |