在Linux机器上,我需要显示上周每小时的平均CPU利用率。这些信息是否记录在某处?或者我是否需要编写一个每15分钟唤醒一次的脚本来将 / proc / loadavg 复制到日志文件中?
编辑:我不允许使用Linux以外的任何工具。
答案 0 :(得分:25)
您可能需要查看 sar (man page),它很适合您的用例。
系统活动报告程序(SAR) - 捕获重要的系统性能指标 定期间隔。
来自IBM Developer Works Article的示例:
在root 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 包中找到它
答案 1 :(得分:14)
据我所知,它并没有存储在任何地方......无论如何,编写这是一件微不足道的事情。只需添加类似
的内容cat /proc/loadavg >> /var/log/loads
到crontab
。
请注意,有一些监控工具(如Munin)可以为您执行此类操作,并生成漂亮的图表以启动...但它们可能会因您的情况而过度。
答案 2 :(得分:1)
我建议查看Multi Router Traffic Grapher (MRTG)。
使用snmpd读取平均负载,它将自动计算任何时间间隔和长度的平均值,以及用于分析的漂亮图表。
有人已发布了CPU usage example。