关于系统负载过高的判断标准哪个是正确的呢?

庆沉 发布于 2014/03/04 14:56
阅读 974
收藏 0

大家好!我在不同的书上看到判断系统负载过高的标准分别为:

标准一:

 # uptime

 9:51pm up 3 days, 4:43, 4 users, load average:6.02, 5.90, 3.94

load average的3个值大小一般不能大于系统CPU的个数。本系统有2个CPU,如果load average的3个值长期大于2时,说明CPU很繁忙,负载很高,可能会影响系统性能;如果偶尔大于2,一般不会影响系统性能;如果load average的输出值小于CPU的个数,则表示CPU还有空闲的时间。

标准二:

 # uptime

 9:51pm up 3 days, 4:43, 4 users, load average:6.02, 5.90, 3.94

上面命令显示示最近1 分钟内系统的平均负载是6.02,在最近5分钟内系统的平均负载是5.90,在最近的15 分钟内系统的平均负载是3.94。通常来说只要每个CPU的当前活动进程数不大于3那幺系统的性能就是良好的,如果每个CPU的任务数大于 5,那幺就表示这台机器的性能有严重问题。对于上面的例子来说,由于笔者系统使用是双CPU,那幺其每个CPU的当前任务数为:6.02/2=3.01。 这表示该服务器的性能是可以接受的。

那么哪个标准是正确的呢?

加载中
0
红薯
红薯

你不如执行 top 命令看5分钟 CPU 的变化情况?

庆沉
庆沉
回复 @红薯 : "根据经验,us+sy的参考值为80%,如果us+sy大于80%,说明可能存在CPU资源不足。"上面是看南非蚂蚁的书上写的。哈哈,谢谢您!
红薯
红薯
回复 @庆沉 : 没有标准,关键是系统的反应速度如何,OSC 的服务器 CPU 负载都是 80% 左右的,啥事没有
庆沉
庆沉
有的书上不建议用top,说是占用CPU比较多,还有就是我想用Nagios监控CPU,这个需要判断什么情况下是警告值,什么情况下严重值,还是要有一个标准的。
0
eechen
eechen
sar里面的%idle字段表示空闲CPU百分比,值越大系统负载越低。

sar -u 1 每1秒显示一次
sar -P ALL 1  查看所有CPU核心的负载, 每1秒显示一次

sar -u 字段含义:
%usr : 显示在用户级别(例如应用程序)执行时CPU利用率的百分比
%nice :显示在拥有nice优先级的用户级别执行时CPU利用率的百分比
%sys : 显示在系统级别(例如内核)执行时CPU利用率的百分比
%iowait : 显示在系统有未完成的磁盘I/O请求期间CPU空闲时间的百分比
%steal : 显示虚拟机管理器(hypervisor)在服务一个虚拟CPU时另一个虚拟CPU处在非自愿等待下花费时间的百分比
%idle : 显示CPU空闲和系统没有未完成的磁盘I/O请求情况下的时间百分比



sar系统监控守护进程(放到后台执行):
nohup sar -u 2 >>/home/eechen/sar.log 2>&1 &
ps -ef|grep sar
kill PID
加入到/etc/rc.local,还可以开机自启动:
nohup sar -u 2 >>/var/log/sar.log 2>&1 &
日志归档可以使用logrotate.

如果觉得日志文件过大,降低sar采集时间间隔也是可以的,比如20秒记录一次:
nohup sar -u 20 >>/var/log/sar.log 2>&1 &

另外使用dstat也不错: 

还有htop:

庆沉
庆沉
首先感谢您的回答!sar我用过,后边两个没有用过,不过看了您的介绍,感觉实现的效果是一样的。
返回顶部
顶部