系統性能分析:
1、整體系統CPU利用率
2、內存利用率
3、磁盤I/O的利用率和延遲
4、網絡利用率
1、CPU定位分析
在系統的CPU分析定位過程中,當系統的CPU利用率大於50%時,我們就需要注意了;當系統的CPU利用率大於70%的時候,就需要密切關注;當系統的CPU的利用率高於90%的時候,情況就比較嚴重了。通過這些監控分析情況,我們可以用命令有vmstat、sar、dstat、mpstat、top、ps等命令來進行統計分析。
| 模塊 |
類型 |
度量方法 |
衡量標准 |
| CPU |
使用情況 |
1、通過vmstat 統計1-id的計數 2、通過sar -u 統計1-%idle的計數 3、通過dstat命令 統計1-id1的計數 4、通過mpstat -P ALL統計1-%idle的計數 5、通過ps命令統計cpu的計數 |
注意>=50% 告警>=70% 嚴重>=90% |
| CPU |
滿載 |
6、vmstat的r的計數 > CPU邏輯數 7、sar -q, “runq-sz” >CPU邏輯數 8、dstat -p, “run” > CPU邏輯數 |
運行的隊列大於1時,說明已經有一定的負載了,不過這個值也不絕對,需要進一步分析其他的資源情況來確定CPU是否已經滿載符合運行 |
| CPU |
錯誤 |
9、通過perf工具去捕獲處理器的錯誤信息,需要處理器支持 |
需處理器支持 |
2、內存定位分析
在系統的內存分析定位過程中,當系統內存的利用率大於50%的時候,我們就需要注意了;當系統的內存大於70%的時候,就需要密切關注;當系統的內存利用率高於80%的時候,情況就比較嚴重。通過這些監控分析,可以用vmstat、sar、dstat、free、top、ps等命令來進行統計分析。
| 模塊 |
類型 |
度量方法 |
衡量標准 |
| 內存 |
使用情況 |
1、free命令查看使用情況 2、vmstat命令查看使用情況 3、sar -r 命令查看使用情況 4、ps命令查看使用情況 |
注意>=50% 告警>=70% 嚴重>=80% |
| 內存 |
滿載 |
5、vmstat的si/so比例輔助swpad和free利用 6、sar -W 查看次缺頁數 7、查看內核日志有無OOM機制kill進程 8、dmesg | grep killed |
1、so數值大,且swpad已經占比很高,內存肯定已經飽和 2、sar命令缺頁以為不停地和swap打交道,證明內存已經飽和 |
| 內存 |
錯誤 |
9、查看內核有無physical failures 10、通過工具如valgrind等進行檢查 |
有計數 |
3、網絡定位分析
衡量系統網絡的使用情況,可以使用的命令有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、有阻塞 |
| 網絡 |
滿載 |
5、ifconfig dropped 有計數 6、netstat -s “segments restransmited”有計數 7、sar -n DEV rxdrop txdrop 有計數 |
統計的丟包有計數證明已經滿載了 |
| 網絡 |
錯誤 |
8、ifconfig, ‘errors’ 9、netstat -I, “RX-ERR”/”TX-ERR” 10、sar -n EDEV, “rxerr/s”,”txerr/s” 11、ip -s link, “errors” |
錯誤有計數 |
4、IO定位分析
衡量系統IO的使用情況,可以使用sar、iostat、iotop等命令進行系統級別的IO監控分析。當發現IO的利用率大於40%時候,就需要注意了;當使用率大於60%則處於告警階段;大於80%時IO就會出現阻塞了。
| 模塊 |
類型 |
度量方法 |
度量標准 |
| IO |
使用情況 |
1、iostat -xz, “%util” 2、sar -d, “%util” 3、iotop 的利用率很高 4、cat /proc/pid/sched|grep iowait |
注意>=40% 告警>=60% 嚴重>=80% |
| IO |
滿載 |
5、iostat -xnz 1, “avgqu-sz”>1 6、iostat await>70 |
IO已經有滿載嫌疑 |
| IO |
錯誤 |
7、dmesg 查看io錯誤 8、smartctl /dev/sda |
有信息 |
