wiki/运维/操作系统/Linux/笔记/33.监控指标.md
2025-01-02 10:46:09 +08:00

185 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Linux监控指标
## 一、CPU类
### 1、CPU idle
Linux CPU idle 是指 CPU 空闲的时间百分比,也就是 CPU 没有在执行任何任务的时间占总时间的比例。在 Linux 系统中,可以通过查看 /proc/stat 文件来获取 CPU idle 的信息。
可以使用以下命令来查看 CPU idle 的信息:
```
cat /proc/stat | grep 'cpu'
```
该命令会输出类似以下的信息:
```
cpu 123456 7890 123456 7890123 4567 0 0 0 0 0
```
其中,第 5 个字段就是 CPU idle 的时间,单位是 jiffiesLinux 内核中的一个时间单位,通常为 1/100 秒)。可以将该值除以 CPU 的时钟频率,再乘以 100就可以得到 CPU idle 的百分比。
例如,如果 CPU 的时钟频率是 2.4 GHz那么可以使用以下命令来计算 CPU idle 的百分比:
```
echo "scale=2; $(cat /proc/stat | grep 'cpu ' | awk '{print $5}') / 2400000000 * 100" | bc
```
该命令会输出 CPU idle 的百分比,例如:
```
98.23
```
### 2、CPU busy user
Linux CPU busy user 是指 CPU 在执行用户进程的时间百分比,也就是 CPU 在执行用户进程的时间占总时间的比例。在 Linux 系统中,可以通过查看 /proc/stat 文件来获取 CPU busy user 的信息。
具体来说,可以使用以下命令来查看 CPU busy user 的信息:
```
cat /proc/stat | grep 'cpu '
```
该命令会输出类似以下的信息:
```
cpu 123456 7890 123456 7890123 4567 0 0 0 0 0
```
其中,第 2 个字段就是 CPU 在执行用户进程的时间,单位是 jiffiesLinux 内核中的一个时间单位,通常为 1/100 秒)。可以将该值除以 CPU 的时钟频率,再乘以 100就可以得到 CPU busy user 的百分比。
例如,如果 CPU 的时钟频率是 2.4 GHz那么可以使用以下命令来计算 CPU busy user 的百分比:
```
echo "scale=2; $(cat /proc/stat | grep 'cpu ' | awk '{print $2}') / 2400000000 * 100" | bc
```
该命令会输出 CPU busy user 的百分比,例如:
```
12.34
```
### 3、CPU busy system
Linux CPU busy system 是指 CPU 在执行内核进程的时间百分比,也就是 CPU 在执行内核进程的时间占总时间的比例。在 Linux 系统中,可以通过查看 /proc/stat 文件来获取 CPU busy system 的信息。
具体来说,可以使用以下命令来查看 CPU busy system 的信息:
```
cat /proc/stat | grep 'cpu '
```
该命令会输出类似以下的信息:
```
cpu 123456 7890 123456 7890123 4567 0 0 0 0 0
```
其中,第 4 个字段就是 CPU 在执行内核进程的时间,单位是 jiffiesLinux 内核中的一个时间单位,通常为 1/100 秒)。可以将该值除以 CPU 的时钟频率,再乘以 100就可以得到 CPU busy system 的百分比。
例如,如果 CPU 的时钟频率是 2.4 GHz那么可以使用以下命令来计算 CPU busy system 的百分比:
```
echo "scale=2; $(cat /proc/stat | grep 'cpu ' | awk '{print $4}') / 2400000000 * 100" | bc
```
该命令会输出 CPU busy system 的百分比,例如:
```
5.67
```
### 4、CPU iowait
Linux CPU iowait 是指 CPU 等待 I/O 操作完成的时间百分比,也就是 CPU 在等待 I/O 操作完成的时间占总时间的比例。在 Linux 系统中,可以通过查看 /proc/stat 文件来获取 CPU iowait 的信息。
具体来说,可以使用以下命令来查看 CPU iowait 的信息:
```
cat /proc/stat | grep 'cpu '
```
该命令会输出类似以下的信息:
```
cpu 123456 7890 123456 7890123 4567 0 0 0 0 0
```
其中,第 5 个字段就是 CPU 等待 I/O 操作完成的时间,单位是 jiffiesLinux 内核中的一个时间单位,通常为 1/100 秒)。可以将该值除以 CPU 的时钟频率,再乘以 100就可以得到 CPU iowait 的百分比。
例如,如果 CPU 的时钟频率是 2.4 GHz那么可以使用以下命令来计算 CPU iowait 的百分比:
```
复制echo "scale=2; $(cat /proc/stat | grep 'cpu ' | awk '{print $5}') / 2400000000 * 100" | bc
```
该命令会输出 CPU iowait 的百分比,例如:
```
2.34
```
### 5、CPU IRQs
Linux CPU IRQs 是指 CPU 在处理硬件中断的时间百分比,也就是 CPU 在处理硬件中断的时间占总时间的比例。在 Linux 系统中,可以通过查看 /proc/stat 文件来获取 CPU IRQs 的信息。
具体来说,可以使用以下命令来查看 CPU IRQs 的信息:
```
cat /proc/stat | grep 'cpu '
```
该命令会输出类似以下的信息:
```
cpu 123456 7890 123456 7890123 4567 0 0 0 0 0
```
其中,第 6 个字段就是 CPU 在处理硬件中断的时间,单位是 jiffiesLinux 内核中的一个时间单位,通常为 1/100 秒)。可以将该值除以 CPU 的时钟频率,再乘以 100就可以得到 CPU IRQs 的百分比。
例如,如果 CPU 的时钟频率是 2.4 GHz那么可以使用以下命令来计算 CPU IRQs 的百分比:
```
echo "scale=2; $(cat /proc/stat | grep 'cpu ' | awk '{print $6}') / 2400000000 * 100" | bc
```
该命令会输出 CPU IRQs 的百分比,例如:
```
0.56
```
### 6、CPU softirq
Linux CPU 软中断softirq对应的参数是 CPU 的第 7 个字段。软中断是一种由内核发起的中断,用于处理一些与网络、磁盘、定时器等相关的事件。在 Linux 系统中,软中断是由软件实现的,因此相对于硬中断来说,软中断的开销更小,但是也会占用 CPU 的一定时间。
具体来说,可以使用以下命令来查看 CPU 软中断的信息:
```
复制cat /proc/stat | grep 'cpu '
```
该命令会输出类似以下的信息:
```
复制cpu 123456 7890 123456 7890123 4567 0 89012 0 0 0
```
其中,第 7 个字段就是 CPU 在处理软中断的时间,单位是 jiffiesLinux 内核中的一个时间单位,通常为 1/100 秒)。可以将该值除以 CPU 的时钟频率,再乘以 100就可以得到 CPU 软中断的百分比。
例如,如果 CPU 的时钟频率是 2.4 GHz那么可以使用以下命令来计算 CPU 软中断的百分比:
```
复制echo "scale=2; $(cat /proc/stat | grep 'cpu ' | awk '{print $7}') / 2400000000 * 100" | bc
```
该命令会输出 CPU 软中断的百分比,例如:
```
复制0.23
```