146 lines
2.8 KiB
Markdown
146 lines
2.8 KiB
Markdown
# Linux 监控指标
|
||
|
||
## 1、监控指标概览
|
||
|
||
做 Linux 监控时,不要只盯某一个指标,而是要结合 CPU、内存、磁盘、网络、进程等多个维度一起看。
|
||
|
||
这篇先整理最常见的 CPU 指标,再补充观察思路。
|
||
|
||
## 2、CPU 相关指标
|
||
|
||
Linux 中 CPU 指标常可从 `/proc/stat` 获取,也可以通过 `top`、`sar`、`vmstat` 等工具观察。
|
||
|
||
```shell
|
||
cat /proc/stat | grep '^cpu '
|
||
```
|
||
|
||
示例输出:
|
||
|
||
```text
|
||
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`
|
||
|
||
```shell
|
||
top
|
||
```
|
||
|
||
### 5.2 `vmstat`
|
||
|
||
```shell
|
||
vmstat 1
|
||
```
|
||
|
||
### 5.3 `sar`
|
||
|
||
```shell
|
||
sar -u 1 5
|
||
```
|
||
|
||
### 5.4 `mpstat`
|
||
|
||
```shell
|
||
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`
|
||
- 看监控要结合趋势、场景和其他系统指标一起分析
|