硬件瓶颈分析
CPU瓶颈分析
CPU使用率:
CPU负载:
cpu的负载可以用top、uptime、cat /proc/loadavg等命令查看
load average
反应1min、5min、15min时间内的CPU负载
$ top
top - 10:01:36 up 58 days, 14:31, 3 users, load average: 0.02, 0.07, 0.06
Tasks: 243 total, 1 running, 242 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.8 us, 0.8 sy, 0.0 ni, 98.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 24523252 total, 1205852 free, 19259672 used, 4057728 buff/cache
KiB Swap: 25165820 total, 22870716 free, 2295104 used. 3459996 avail Mem
(略)
$ uptime
10:01:23 up 58 days, 14:30, 3 users, load average: 0.03, 0.07, 0.06
# 前三个数字是1、5、15分钟内的平均进程数
# 后面的(1/331)分子是正在运行的进程数,分母是进程总数
# 最后是最近运行的进程ID号
$ cat /proc/loadavg
0.00 0.01 0.05 2/110 3057
系统负荷 = load average / 核心数
当系统负荷持续大于0.7,你必须开始调查了,问题出在哪里,防止情况恶化。
当系统负荷持续大于1.0,你必须动手寻找解决办法,把这个值降下来。
当系统负荷达到5.0,就表明你的系统有很严重的问题,长时间没有响应,或者接近死机了。你不应该让系统达到这个值。
???
为什么系统负载很高,但是CPU使用率缺很低?
有很多的进程等待CPU的处理,但是这些进程又都是很消耗IO的操作,CPU大部分时间在等待IO的响应
为什么CPU使用率很高,但是系统负载却很低?
等待CPU处理的进程很少,但是这个进程都是一些非常消耗CPU的运算