性能測試中,對服務端的指標監控也是很重要的一個環節。經過對各項服務器性能指標的監控分析,能夠定位到性能瓶頸。ios
後端性能指標有CPU,內存,網絡,I/O等等後端
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 |
有錯誤信息 |