22

在 Linux 机器上,我需要显示上周平均每小时的 CPU 利用率。该信息是否记录在某处?或者我是否需要编写一个每 15 分钟唤醒一次的脚本以将 /proc/loadavg复制到日志文件?

编辑:我不允许使用除 Linux 附带的工具以外的任何工具。

4

3 回答 3

28

您可能想查看sar手册页),它非常适合您的用例。

System Activity Reporter (SAR) - 定期捕获重要的系统性能指标。

IBM Developer Works 文章中的示例:

向您的根 crontab 添加一个条目

# Collect measurements at 10-minute intervals
0,10,20,30,40,50   * * * *   /usr/lib/sa/sa1
# Create daily reports and purge old files
0                  0 * * *   /usr/lib/sa/sa2 -A

然后您可以使用 sar 命令简单地查询此信息(显示今天的所有信息):

root ~ # sar -A

或者只是某天的日志文件:

root ~ # sar -f /var/log/sa/sa16

你通常可以在你的 linux 发行版的sysstat包中找到它

于 2009-02-10T06:24:16.960 回答
16

据我所知,它没有存储在任何地方......无论如何,写起来是一件微不足道的事情。只需添加类似

cat /proc/loadavg >> /var/log/loads

到你的crontab.

请注意,有一些监控工具(例如Munin)可以为您做这种事情,并生成漂亮的图表以启动......不过,它们对于您的情况可能有点矫枉过正。

于 2009-02-10T06:21:25.437 回答
1

我建议查看Multi Router Traffic Grapher (MRTG)

使用 snmpd 读取负载平均值,它将自动计算任何时间间隔和长度的平均值,以及用于分析的漂亮图表。

Someone has already posted a CPU usage example.

于 2009-02-10T06:25:24.413 回答