wiki/运维/Linux/笔记/33.监控指标.md
2026-04-08 19:40:00 +08:00

2.8 KiB
Raw Permalink Blame History

Linux 监控指标

1、监控指标概览

做 Linux 监控时,不要只盯某一个指标,而是要结合 CPU、内存、磁盘、网络、进程等多个维度一起看。

这篇先整理最常见的 CPU 指标,再补充观察思路。

2、CPU 相关指标

Linux 中 CPU 指标常可从 /proc/stat 获取,也可以通过 topsarvmstat 等工具观察。

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 字段是累计值,不是直接百分比
  • 高价值指标通常包括 idleusersystemiowaitirqsoftirq
  • 看监控要结合趋势、场景和其他系统指标一起分析