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


 

概述

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

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

分析思路

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

CPU定位分析

監控命令: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

user%+sys%<70%(好)

70%<user%+sys%<=85%(壞)

90%<=user%+sys%(糟糕)

負載

1、vmstat的r

2、sar -q ,“runq-sz

3、load average

r長期>cpu個數,cpu不足

runq-sz 長期>cpu個數,cpu不足

load average>cpu個數(cpu繁忙)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

內存定位分析

當物理內存不夠時,會使用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

有錯誤信息


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM