CPU平均负载
平均负载是指在单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃数。
- 可运行状态 正在使用CPU或者正在等待CPU的进程,可以使用PS查看到状态为R的进程
- 不可中断状态 正处于内核态关键流程的进程,ps查看到D状态的进程
uptime
19:37:58 up 22 days, 4:06, 2 users, load average: 0.10, 0.13, 0.13
CPU平均负载合理值
查看CPU核数
grep 'model name' /proc/cpuinfo | wc -l
在平均负载高于CPU数量的 70% 的时候就属于负载高的情况了
注意
cpu使用率高可能确实是使用率高,也可能实际处理不高而是进程太多切换上下文频繁,也可能是进程内线程的上下文切换频繁。
分析工具及命令
apt install sysstat #安装
watch -d uptime
mpstat -P ALL 5
pidstat -u 5 1
模拟工具
- stress Linux 系统压力测试工具 多进程
- sysbench 多线程的基准测试工具,用来评估不同系统参数下的数据库负载情况。
vmstat 分析内存使用情况、cpu上下文切换和中断的次数。cs每秒上下文切换的次数,in每秒中断的次数,r运行或等待cpu的进程数,b中断睡眠状态的进程数。
pidstat 查看每个进程详细情况。
- cswch(每秒自愿上下文切换次数),进程无法获取所需资源导致的上下文切换
- nvcswch 每秒非自愿上下文切换次数,进程由于时间片已到等原因,被系统强制调度,进而发生的上下文切换
平均负载总结
先用uptime
查看系统的平均负载;而在平均负载升高后,又用mpstat
和pidstat
,分别观察每个CPU和每个进程CPU的使用情况,进而找出导致平均负载升高的进程。
持续补充中………………
中断
查看命令:
watch -d cat /proc/interrupts