查看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。
所以日常运维管理,服务器迁移升配置等操作时,可以仔细观察服务器性能,然后根据需求来调整。