存储/计算历史负载平均值

当我运行uptime ,我得到类似于以下内容的输出:

  07:50:39 up 13 days, 5:00, 1 user, load average: 0.00, 0.02, 0.00 

除了通过每运行多less分钟来运行uptime运行uptime来获得更加历史的平均负载,还有没有办法?

我希望能够绘制上周,月份等的负载平均值。

也许我看错了地方?

更新
我不能在collectd (@ david spillet )或munin (@ icapan )之间做出select,所以现在我将同时使用(在不同的机器上)。

谢谢 :)

我使用collectd来logging其他一些参数中的系统负载。 它将数据存储在RRD存储中,可以使用许多可用的工具和脚本进行graphics化分析。 我使用这个脚本的修改版本作为我的graphics( 示例输出 )。

Collectd拥有插件来监视大量的东西(通常要求的东西以及顶部的东西),如果你需要一些专门的东西,创build你自己的东西不应该是困难的,所以使得一个非常灵活的工具。 在rrd.cgi中configurationgraphics是一个非常手动的过程,虽然不难,尽pipe您可能会发现更方便的工具来处理由collectd维护的RRD文件。

Munin是在安装和configuration过程中以最less的努力获得正常运行时间图表的最简单方法。 我也使用atop来处理某些进程的CPU使用情况,但这不是你要求的。

看看man sadc (系统活动数据收集器)和man sar (收集,报告或保存系统活动信息)。

在我的Ubuntu系统上,所有我必须做的数据收集,因为cron作业已经到位了,编辑/etc/default/sysstat ,并将这一行更改为“true”:

 ENABLED="true" 

要显示类似于uptime负载信息,请执行:

 sar -q 

要显示特定时间范围和date的默认输出(这里是本月的20日):

 sar -s 11:00:00 -e 14:00:00 -f /var/log/sysstat/sa20 

加载平均数据可以在/proc/loadavg伪文件中find。 那里的格式可能更适合自动处理。 除了格式之外,这些数字与执行uptime命令时收到的数字完全相同。

以前,为了解决类似于你的问题,我只是用cron安排了一个bash脚本来读取/proc/loadavg并发出rrdtool update命令来更新一个RRD数据库。