我需要监控给定进程及其每个线程的 CPU 使用率。
对于每个进程,我希望获得:
- 平均和最大 CPU 使用率百分比,
- 捕获期间使用的总 CPU 时间,
- CPU 使用率随时间变化的图表,
- 以上所有内容分别针对用户模式和系统模式。
我找到了一些关于 sysstat/sar、collectd、munin、naggios 的参考,但我不确定它们是否具有我需要的功能。
系统是Ubuntu Hardy。
答案1
哎哟……这是一个相当艰巨的任务。
Munin、cacti 或 zabbix 等软件可能最适合,并且可以轻松解决第 1 点和第 3 点。我认为 Munin 可能是这三者中最简单的。第 2 点和第 4 点稍微棘手一些。我不确定是否有任何监控系统可以为您提供一段时间内的总 CPU 时间。通常,系统指标收集的重点是“出了什么问题”,而不是系统核算。希望其他人能提出建议。
作为第 4 点的起点,您需要启用进程记帐功能,这是 Linux 中不可或缺的功能。这里有一些很好的细节:http://shibuvarkala.blogspot.com/2009/04/howto-enable-process-accounting-in.html这将帮助您开始启用流程核算并读取其返回的信息。
建议使用 Munin 的一个原因是编写插件相对简单,并且我认为您需要它来实现您想要实现的目标。
希望我能提供更多帮助。