平均负载
除了常见命令top外,常使用的命令有top
root@debian:~# uptime 15:20:25 up 20 days, 23:51, 9 users, load average: 0.62, 0.13, 0.04
后面三个数字分别代表 1 分钟,5 分钟,15 分钟的平均负载。
如何理解这个平均负载。
如果数字为 2 ,设备有 2 个 CPU,意味着 CPU 刚好被完全占用
数字为2 ,设备有 4 个 CPU ,CPU占用率 50%
数字为2 ,设备只有1个CPU,CPU过载,一半进程竞争不到CPU。
根据平均负载分析CPU占用
这里会使用到 iostat、mpstat、pidstat 三个工具看具体负载占用。
使用 stress 和 sysstat (apt install stress sysstat) 模拟负载占用
CPU密集型进程占用
我使用的系统有8个CPU
stress --cpu 4 --timeout 600 #模拟4个CPU占用
分别另外打开三个窗口,分别执行以下命令
watch -d uptime # watch 实时刷新看平均负载变化
mpstat -P ALL 5 # 5 秒刷新一次
pidstat -u 5 1000 # 5 秒刷新一次,执行1000次,查看主要进程占用
以下是运行2分钟左右运行情况
IO密集型进程占用
使用以下命令模拟IO占用
stress -i 4 --timeout 600 #模拟IO占用
同样在4个窗口查看
watch -d uptime # watch 实时刷新看平均负载变化
mpstat -P ALL 5 # 5 秒刷新一次
pidstat -u 5 1000 -d # 5 秒刷新一次,执行1000次,查看主要进程占用。加-d 参数看IO
测试结果如下