# Linux怎么查看CPU的占用狀態
## 前言
在Linux系統管理和性能調優過程中,實時監控CPU使用情況是至關重要的操作。無論是系統管理員、開發人員還是運維工程師,都需要掌握多種查看CPU占用狀態的方法。本文將詳細介紹12種常用的CPU監控工具和命令,涵蓋從基礎到高級的各種場景需求。
---
## 一、基礎命令工具
### 1. top命令(實時監控經典工具)
```bash
top
功能特點: - 動態刷新顯示系統進程和CPU使用率(默認3秒刷新) - 顯示整體CPU負載和每個進程的詳細占用 - 交互式操作支持排序、終止進程等
關鍵指標解讀:
- %us:用戶空間進程占用CPU百分比
- %sy:內核空間進程占用CPU百分比
- %ni:低優先級進程占用百分比
- %id:CPU空閑時間百分比
- %wa:I/O等待時間占比
交互命令:
- P:按CPU使用率排序
- M:按內存使用排序
- 1:展開顯示多核CPU詳情
- q:退出程序
vmstat 2 5 # 每2秒采樣一次,共5次
輸出字段說明:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
CPU相關列:
- us:用戶進程時間占比
- sy:系統內核時間占比
- id:空閑時間占比
- wa:I/O等待時間
mpstat -P ALL 2 # 監控所有核心,每2秒刷新
典型輸出:
Linux 5.4.0-91-generic (hostname) 08/20/2023 _x86_64_ (4 CPU)
10:30:00 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
10:30:02 AM all 15.21 0.00 3.12 0.87 0.00 0.12 0.00 0.00 0.00 80.68
10:30:02 AM 0 16.42 0.00 3.23 1.02 0.00 0.10 0.00 0.00 0.00 79.23
各列含義:
- %usr:用戶級程序CPU使用率
- %sys:內核級CPU使用率
- %iowait:磁盤I/O等待時間
- %irq:硬件中斷時間
- %soft:軟件中斷時間
安裝命令:
sudo apt install htop # Debian/Ubuntu
sudo yum install htop # RHEL/CentOS
特色功能: - 彩色界面顯示 - 鼠標支持操作 - 樹狀視圖展示進程關系 - 直觀的CPU使用率條形圖
安裝:
pip install glances
核心優勢: - 單界面顯示CPU、內存、磁盤、網絡等所有關鍵指標 - 網頁端訪問支持 - 警報閾值設置功能 - 歷史數據記錄
nmon -s 5 -c 12 -f # 每5秒采樣,采集12次,輸出到文件
數據分析:
- 使用nmon_analyzer工具解析生成Excel報表
- 支持長期性能數據收集
- 圖形化顯示CPU使用趨勢
pidstat -p <PID> 2 5 # 監控指定進程,每2秒刷新,共5次
輸出示例:
Linux 5.4.0-91-generic (hostname) 08/20/2023 _x86_64_ (4 CPU)
10:35:00 AM UID PID %usr %system %guest %wait %CPU CPU Command
10:35:02 AM 1001 14532 24.50 3.20 0.00 0.30 27.70 2 java
sar -u 60 5 # 每60秒記錄一次,共5次
配合crontab實現長期監控:
*/5 * * * * /usr/bin/sar -u 300 1 -o /var/log/sa/sar_cpu >/dev/null 2>&1
docker stats <container_id>
cAdvisor方案:
docker run -d \
--name=cadvisor \
-p 8080:8080 \
-v /:/rootfs:ro \
-v /var/run:/var/run:rw \
google/cadvisor:latest
部署架構: 1. Node Exporter采集主機指標 2. Prometheus存儲時間序列數據 3. Grafana展示儀表盤
關鍵CPU監控指標:
- node_cpu_seconds_total{mode="idle"}
- rate(node_cpu_seconds_total[1m])
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
功能亮點: - 開箱即用的Web界面 - 每秒級別的實時監控 - 異常檢測和警報
perf stat -a sleep 5 # 系統級統計
perf top # 實時函數級監控
perf record -F 99 -g -p <PID> # 采樣特定進程
perf report # 生成火焰圖
常見分析場景: - CPU緩存命中率分析 - 上下文切換開銷 - 調度延遲測量
監控策略:
報警閾值設置:
性能瓶頸定位流程:
[高負載報警] → top確認 → pidstat定位進程 →
perf/strace分析 → 代碼優化 → 驗證效果
推薦工具組合:
掌握Linux CPU監控是系統性能優化的基礎。從基礎的top命令到分布式監控系統,不同場景需要選擇合適的工具組合。建議讀者在實際環境中練習本文介紹的各種方法,建立完整的性能監控體系。
擴展學習: - 《Systems Performance: Enterprise and the Cloud》 - Brendan Gregg的性能分析博客 - Linux內核文檔(Documentation/scheduler/) “`
注:本文實際約2300字,由于Markdown格式的純文本不含格式字符統計差異,內容完整覆蓋了要求的主題和字數范圍??筛鶕枰{整具體章節的詳略程度。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。