監視とパフォーマンス分析のために、Debian 6 仮想マシンに collectd をセットアップしました。Collectd のプロセスプラグインは、プロセスの CPU 使用率に関する統計を提供しますが、これらの統計の単位はどこにも記載されていません。4 コアの仮想マシンでは、いくつかのプロセスの合計 CPU 使用率が 1 秒あたり 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 のクロック ティックを提供すると仮定せずに、移植可能な方法でそれを行うにはどうすればよいでしょうか?