一: 理解 uptime
[root@server01 ~]# uptime
21:29:15 up 5 min, 1 user, load average: 0.01, 0.11, 0.07
输出结果从左往右分别代表: 系统当前时间,开机持续时间,当前登录用户数量,15分钟,5分钟以及1分钟的平均负载
二:理解 平均负载
平均负载:平均活跃进程数,通俗的理解就是:系统处于可运行状态和不可中断状态的平均进程数也就是平均活跃进程数
注意一点:平均负载跟 cpu使用率没有直接关系
可运行状态: 正在使用或者等待cpu 的进程状态
不可中断状态: 指进程处于不可中断的状态常见的有:等待硬件设备的IO相应,比如向进程在往磁盘写入数据的时候等待磁盘响应的状态
理解和应用:
1:查看 系统当前cpu 核数 grep 'model name' /proc/cpuinfo | wc -l
[root@server01 ~]# grep 'model name' /proc/cpuinfo | wc -l
2
2: 理论上一核一个进程是最理想的状态,实际工作中如果 平均负载一直高于cpu数量 70% 时可能会导致系统性能降低
三: 平均负载与 CPU使用率
- CPU密集型进程 导致平均负载升高 : 在这种情况下,cpu使用率和平均负载表现一致
1:通过 mpstat -P ALL 5 命令来查看 cpu 和 io 的使用情况,下图中 cpu使用率达到100% 但是 ipwait是0 可以确定是cpu密集型进程导致的平均负载升高,这时候cpu就成了性能瓶颈
2: 通过 watch -d uptime 命令查看平均负载 -d 命令输出结果有变化会展示出来
- IO密集型进程导致平均负载升高: 该情况下CPU使用率不一定很高
- 大量等待CPU调度的进程
总结:
1: 理解平均负载的含义
2:能区分 平均负载和 cpu 使用率的区别,能定性分析
3:能使用如下命令定位问题
watch -d uptime 动态查看平均负载
mpstat -P ALL 5 查看cpu使用率和iowait
pidstat -u 5 1 查看系统中进程情况