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

飛天小子發表於2019-07-30

概述

效能測試中,對服務端的指標監控也是很重要的一個環節。通過對各項伺服器效能指標的監控分析,可以定位到效能瓶頸。

後端效能指標有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

有錯誤資訊

相關文章