Debian cpustat故障排查指南
cpustat是Debian系統中sysstat工具包的核心組件之一,主要用于實時監控CPU使用情況(如用戶態/內核態占比、空閑率、I/O等待時間等),幫助定位CPU性能瓶頸或異常。以下是針對cpustat本身及CPU問題的完整排查流程:
cpustat需通過sysstat包安裝,Debian系統默認未啟用sysstat服務,需先執行以下命令:
sudo apt update && sudo apt install sysstat
安裝完成后,啟動sysstat服務并設置開機自啟:
sudo systemctl start sysstat && sudo systemctl enable sysstat
cpustat,默認每秒刷新一次,顯示所有CPU核心的匯總數據(包括%usr、%sys、%idle等指標)。-i參數設置刷新間隔(秒),如每2秒刷新一次:cpustat -i 2
cpustat > cpu_usage.log
-c參數指定核心編號(如核心0),或-p ALL查看所有核心:cpustat -c 0 # 監控核心0
cpustat -p ALL 5 # 每5秒刷新一次所有核心數據
-e參數顯示每個核心的上下文切換(vcx/icx)、中斷(in/s/outs)等詳細指標:cpustat -e
*/5 * * * * cpustat > cpu_usage_$(date +\%Y\%m\%d\%H\%M\%S).txt
top命令查看具體進程(按P鍵按CPU排序),定位到高負載進程后,使用pwdx <PID>查找進程路徑,進一步分析是否為惡意程序或業務代碼問題。vmstat(查看內存/交換分區使用)、iostat(查看磁盤I/O)等工具,判斷是否為內存不足或磁盤瓶頸。pidstat -w -p <PID>查看具體進程的上下文切換情況,優化進程并發設計(如減少鎖粒度、調整線程池大?。?。lspci -vvv查看設備中斷號,或更新驅動程序解決。iostat -x 1查看磁盤的await(平均I/O等待時間)、%util(磁盤利用率),若%util接近100%,需升級磁盤(如更換為NVMe SSD)或優化I/O密集型進程(如批量寫入改為異步)。cpustat僅提供CPU層面的數據,需結合以下工具進行全面排查:
sudo perf record -F 99 -ag -- sleep 10; perf script | ./FlameGraph/stackcollapse-perf.pl | ./FlameGraph/flamegraph.pl > cpu.svg),直觀展示占用CPU的熱點函數或代碼路徑。sudo運行:sudo cpustat
-i后跟數字,-c后跟核心編號),可通過cpustat -h查看幫助。sudo systemctl status sysstat # 檢查服務狀態
sudo systemctl start sysstat # 啟動服務
-i 0.1等極短間隔,可能導致數據波動過大,建議設置為1秒及以上。sar可記錄歷史CPU數據(默認保存在/var/log/sa/saXX文件中),通過sar -u 1 5查看過去某段時間的CPU使用情況,或使用sar -u -f /var/log/sa/sa10查看指定日期的數據。/var/log),避免磁盤空間不足導致I/O瓶頸。journalctl -xe或dmesg查看內核日志,及時發現硬件或驅動異常(如磁盤壞道、網卡故障)。nice/renice)、線程數或緩存大小,減少CPU占用。