探究CPU和平均负载的关系

查看cpu总核心数
grep -c 'model name' /proc/cpuinfo
查看当前服务器负载:top
top - 16:23:33 up 12 days, 23:35,  2 users,  load average: 0.18, 0.14, 0.14
Tasks: 141 total,   1 running, 140 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.7 us,  1.3 sy,  0.0 ni, 98.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.7 us,  1.0 sy,  0.0 ni, 98.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  2027960 total,   166024 free,   954732 used,   907204 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   903032 avail Mem

其中load average后面分别是1分钟、5分钟、15分钟平均负载
数字越大,服务器负载越高。

这里经常会碰到有些服务器1分钟平均负载已经超过5了,或者任意比1大的数是怎么回事呢?怎么算正常呢?

这里举一个例子:
比如1个CPU,那么服务器所有运算都由这一个CPU来计算,最大处理100%把CPU占满,后面再有运算就要排队。
如果2个CPU,那么最大处理200%,以此类推。
只要不超过CPU数量太多就没事,如果1个CPU,负载已经3.x了,那么就是又问题的,CPU处理不过来就会影响当前服务器的业务,是很危险的,也是我们平时需要监控的一个重要指标。

那么可以得到一个公式

n个CPU的电脑,可接受的系统负荷最大为n.0。

所以日常运维管理,服务器迁移升配置等操作时,可以仔细观察服务器性能,然后根据需求来调整。

你可能感兴趣的:(探究CPU和平均负载的关系)