WenRou's Blog
linux系统平均负载定义
2013-12-7 温柔哥


linux系统平均负载定义 为什么要监控系统的平均负载?



有时我们会感觉到系统响应很慢,但是又找不到原因,这时查平均负载,是否有大量的进程在排队等待 



 1,平均负载是什么?



 特定时间间隔内运行队列中的平均进程数,好象还不够明白:就是进程队列的长度,有多少个进程在排队等待运行



 2,什么是"进程队列"? 



 一个进程满足以下条件就会位于进程队列中 



     1,它没有在等待I/O操作的结果 



     2,它没有主动进入等待状态(即没有调用wait) 



     3,它没有被停止 3,如何查看平均负载? 



 最简单的命令是uptime 



 例子: [lhd@localhost ~]$ uptime 00:44:22 up 1:17, 3 users, load average: 8.13, 5.90, 4,94 



4,显示的内容是什么意思?



 load average: 8.13,5.90,4,94 显示的是过去的1,5,15分钟内进程队列中的平均进程数量 



5,如何衡量当前系统是否负载过高? 



 如果每个cpu(可以按CPU核心的数量计算)上当前活动进程数不大于3,则系统性能良好, 不大于4,表示可以接受 如大于5,则系统性能问题严重。   



上面例中的8.13,如果有2个cpu核心,则8.13/2=4.065, 此系统性能可以接受 建议设置严格的报警值为: CPU核心的数量 比如:CPU核心数量为2,则设置报警值为2 (这样设置是合理的,因为毕竟不是每个应用都支持多CPU及多核心) 



6,查看平均负载的命令



有5个可用: 



 tload 能够绘制出负载变化的图形



 uptime 同时显示开机以来的时间 



 w 同时显示出已登录的用户 



 top 这个对资源占用太高,不建议使用



 cat /proc/loadavg 通过/proc系统信息得到平均负载 



 注意:如果你要持续的观察平均负载,建议用 watch uptime 或 watch cat /proc/loadavg 



备注:关于watch:每隔一定时间执行指定的程序,并全屏显示结果。时间默认是2秒

发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容