2

我在我的 Debian 6 虚拟机上设置 collectd 用于监控和性能分析。Collectd 的processes插件提供有关进程的 cpu 使用情况的统计信息,尽管这些统计信息所具有的单位在任何地方都没有记录。这当然不是瞬间或毫秒,因为在 4 核虚拟机上,几个进程的总 CPU 使用率可能高达每秒 400,000(某个未知单位)。

通过查看 collectd 的源代码(https://github.com/collectd/collectd/blob/master/src/processes.c - 在ps_read_process函数中),我发现这些数据是从/proc/$pid/进程的stat文件。proc 手册页(链接- http://man7.org/linux/man-pages/man5/proc.5.html)说那里的 cpu 使用率是以时钟滴答声来衡量的。

这很好,但时钟滴答对于监控和性能分析来说有点随意。我想将时钟刻度值转换为更有意义的值,理想情况下是总 CPU 时间的百分比。我怎样才能以便携的方式做到这一点,而不仅仅是假设我的处理器提供 3GHZ 的时钟滴答?

4

1 回答 1

2

对 collectd 代码的进一步检查显示,cpu 使用率转换为微秒。

此外,结果发现这里已经提出并回答了一个类似的问题。

于 2015-10-15T14:11:43.053 回答