Linux系统监控CPU利用率可通过top、htop、sar等命令行工具及/proc/stat等系统文件实现,适用于性能优化与故障排查等场景。
top
命令(实时动态视图)
- 作用:实时显示进程及CPU占用。
- 操作:
top
- 解读:
%Cpu(s)
行:us
(用户进程)、sy
(系统内核)、id
(空闲)的百分比。- 按
1
键:展开多核CPU详情。 - 按
Shift + P
:按CPU使用率排序进程。
- 退出:按
q
键。
htop
命令(增强版 top
)
- 安装(如未预装):
sudo apt install htop # Debian/Ubuntu sudo yum install htop # CentOS/RHEL
- 操作:
htop
- 优势:
- 彩色界面,直观展示每核利用率。
- 鼠标支持,可横向滚动查看完整命令。
vmstat
命令(系统资源概览)
- 作用:报告进程、内存、CPU等整体状态。
- 操作(每2秒刷新一次,共5次):
vmstat 2 5
- 关键列:
r
:等待运行的进程数(>CPU核心数表示过载)。us
/sy
/id
:同top
中的用户、系统、空闲占比。
mpstat
命令(多核CPU监控)
- 安装(属于
sysstat
包):sudo apt install sysstat # Debian/Ubuntu sudo yum install sysstat # CentOS/RHEL
- 操作(每核详细统计):
mpstat -P ALL 2 # 每2秒刷新,显示所有核心
- 输出示例:
CPU %usr %nice %sys %iowait %irq %soft %idle 0 5.2 0.0 1.3 0.2 0.0 0.1 93.2 1 8.1 0.0 2.0 0.1 0.0 0.2 89.6
/proc/stat
文件(原始数据源)
- 作用:直接读取内核提供的CPU时间数据。
- 操作:
cat /proc/stat
- 解读:
- 首行
cpu
所有核心总和,后续cpu0
、cpu1
等为单核。 - 列含义:
user
、nice
、system
、idle
、iowait
、irq
、softirq
的累计时钟周期数。 - 计算利用率公式:
利用率 = (总时间 - 空闲时间) / 总时间 * 100%
- 首行
sar
命令(历史数据分析)
- 安装:同
mpstat
(sysstat
包)。 - 操作:
- 查看当天历史记录(默认每10分钟采样):
sar -u # 整体CPU使用率 sar -P ALL # 每核详情
- 实时监控(每2秒刷新):
sar -u 2
- 查看当天历史记录(默认每10分钟采样):
图形化工具(可选)
- GNOME 系统监视器:
- 桌面环境直接运行
gnome-system-monitor
。
- 桌面环境直接运行
- Netdata:
实时Web仪表盘,支持Docker部署,提供详细性能可视化。
场景推荐
- 快速检查:
top
或htop
。 - 多核分析:
mpstat -P ALL
。 - 历史趋势:
sar
。 - 脚本开发:解析
/proc/stat
。
安全提示
- 除读取
/proc/stat
外,其他命令通常无需sudo
权限。 - 避免频繁执行高开销命令(如每秒调用
ps
),可能加剧负载。
引用说明: 参考 Linux 官方文档(kernel.org)、sysstat
手册页(github.com/sysstat/sysstat)及 IBM 开发者文档(developer.ibm.com),数据计算逻辑遵循 Linux 内核 procfs
设计规范。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8815.html