2.8 KiB
2.8 KiB
Linux 监控指标
1、监控指标概览
做 Linux 监控时,不要只盯某一个指标,而是要结合 CPU、内存、磁盘、网络、进程等多个维度一起看。
这篇先整理最常见的 CPU 指标,再补充观察思路。
2、CPU 相关指标
Linux 中 CPU 指标常可从 /proc/stat 获取,也可以通过 top、sar、vmstat 等工具观察。
cat /proc/stat | grep '^cpu '
示例输出:
cpu 123456 7890 123456 7890123 4567 0 0 0 0 0
这些字段是累计时间片,通常单位是 jiffies,不是直接百分比。真正做监控时,通常是采样两个时间点之间的增量,再换算比例。
3、常见 CPU 指标说明
3.1 CPU idle
表示 CPU 空闲时间占比。
- 值高:说明 CPU 相对空闲
- 值低:说明 CPU 比较忙
3.2 CPU user
表示 CPU 花在用户态程序上的时间比例。
如果这个值高,说明大量时间花在用户进程执行上。
3.3 CPU system
表示 CPU 花在内核态上的时间比例。
如果这个值高,可能与系统调用频繁、网络栈、磁盘 I/O、内核开销增加等有关。
3.4 CPU iowait
表示 CPU 在等待 I/O 完成的时间比例。
如果 iowait 高,常见方向是:
- 磁盘压力大
- 网络存储慢
- 后端 I/O 阻塞
3.5 CPU irq
表示 CPU 花在硬中断上的时间比例。
如果这个值高,可能与硬件中断频繁有关,例如高网卡中断、高磁盘中断等。
3.6 CPU softirq
表示 CPU 花在软中断上的时间比例。
如果这个值高,常见和:
- 高网络流量
- 大量包处理
- 内核网络栈压力
有关。
4、如何理解这些指标
4.1 不是看单点,而是看组合
例如:
user高:更像业务代码或用户进程忙system高:更像内核态开销大iowait高:更像 I/O 瓶颈softirq高:更像网络包处理压力大
4.2 不是看瞬时,而是看趋势
监控更重要的是:
- 持续升高还是偶发尖峰
- 单机异常还是集群共性
- 指标升高时,业务是否真的受影响
5、常用观察命令
5.1 top
top
5.2 vmstat
vmstat 1
5.3 sar
sar -u 1 5
5.4 mpstat
mpstat -P ALL 1
6、监控排障建议
6.1 CPU 高但 idle 也高
说明可能只是瞬时波动,或者不是 CPU 真正瓶颈。
6.2 iowait 高
优先联动查看:
- 磁盘 I/O
- 文件系统
- 后端存储
6.3 softirq 高
优先联动查看:
- 网卡流量
- 网卡中断
- 网络连接数
7、小结
/proc/stat中的 CPU 字段是累计值,不是直接百分比- 高价值指标通常包括
idle、user、system、iowait、irq、softirq - 看监控要结合趋势、场景和其他系统指标一起分析