查看系统负载
如果服务很慢,我们通常会先看一下服务器的负载,可以使用命令w或是top
[root@VM_16_5_centos ~]# w 11:10:25 up 298 days, 18:05, 1 user, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 119.123.74.155 10:50 1.00s 0.04s 0.00s w
我们可以看到命令结果中,load average,他的意思是系统平均负载,里面三个数字,分别代表1分钟,5分钟,15分钟内系统的平均负载。
那么问题来了,这个值多少算比较合适呢?
当cpu完全空闲时,平均负载为0;当cpu工作满负载的时候,平均负载是1.
所以很显然,大家都知道,load average这个值越低越好。
判断系统负载是否过重,这里有篇不错的文章:“Unstanding linux cpu load”
大致意思是:可以把cpu想象成一座桥,系统负载为0时是大桥上一辆车都没有。
如果系统负载为0.5的时候,意思是桥上只有一半的车行驶
如果系统负载为1, 大桥上所有路段都有车,桥上已经满了。但此时大桥还是能顺畅通行的。
如果系统负载为1.x, 意思是是大桥上已经跑满车,还有x0%的的车再等待上桥。系统负载越大,过桥就必须等待的越久。
回过头再来看系统负载多少合适?
当系统负载持续大于0.7, 就必须要着手调查了,可能是代码出了问题。
当系统负载持续大于0.7,就必须要解决了,降低负载。
当负载持续越大,可能系统就会出现不可用。
以上是单cpu的情况,现在生产环境的服务器,通常都是多cpu多核。
比如说:2个cpu, 表明系统负载可以达到2.0. 大于2.0 就是超负载。n个cpu的服务器,可以接受系统负载的最大值为n
多核cpu,一个cpu内部包含多个cpu core. 这被称为多核cpu。多核cpu和多cpu类似,所以这时的满负载值要考虑几个cpu, 每个cpu几个核,然后把系统负载除以总的核心数,只要不超过1。就表明服务器负载正常。
计算电脑cpu core数:
grep -c “model name” /proc/cpuinfo。返回cpu总核数。
转载自:
https://www.clarkhu.net/?p=4974