科技改变世界,技术改变人生。
分类: 系统运维
2015-09-14 11:32:24
平均负载是指系统的运行队列的平均利用率,也可以认为是可运行进程的平均数.
一般的进程需要消耗CPU,内存,磁盘I/O,网络I/O等资源,在这种情况下,平均负载就不是单独指的CPU使用情况.即内存,磁盘,网络等因素,也可以影响系统的平均负载值.
在单核处理器中,平均负载值为1或者小于1的时候,系统处理进程会非常轻松,即负载很低.当达到3的时候,就会显得很忙.达到5或者8的时候,就不能很好的处理进程了.(5,8目前还是个争议的阈值,为了保守起见,选择低的.)
比如我的服务器是两颗CPU.每颗6个核心,相当于12核的处理器.
如果负载小于12,说明服务器利用率较低.
如果负载大于12小于36,说明服务器利用率比较高,这个时候,就应该考虑优化业务,或者更换更快的CPU.
如果负载大于36小于60,甚至超过60,说明该服务器很危险,随时可能发生问题.
经过上面的分析,我们用以下命令获取系统的平均负载值.
top
uptime
w
平均负载值部分如:load average: 0.08, 0.03, 0.00.这些数值是指系统在最后1/5/15分钟的平均负载.那么我们判断负载过高,要以哪个值为准?
根据经验:我们应该把重点放在5/15分钟的平均负载,因为1分钟的平均负载太频繁,一瞬间的高并发,就会导致该值的大幅度改变.
结合nagios报警,12核的服务器计划做如下报警设置:
check_load –w 36,24,12 –c 60,48,36
以上总结,参考如下:
1. Understanding Linux Load Average
2. Understanding Linux CPU Load - when should you be worried?
http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages
(中文翻译版)
3. wiki
%28computing%29