SSブログ

rrdtoolで取得するCPU使用率 その2 (2010/01/19 FreeBSD 8.0R) [FreeBSD]

rrdtoolで、MIBからCPU使用率の計算を行う方法ですが、どうやら大きな間違いをしていたようです。前回の方法でmake buildworldをやってみたのですが、表示上CPU使用率は50%で頭打ちしまいました。buildworldでCPU使用率100%に達することは間違いないのです。atom330は疑似クアッドなのでCPUは論理的に4つ存在することになりますが、x4、÷4、どこをどう補正してもつじつまが合いません。

とまあそこは実際に計算してみるのが早いということで、1分ごとにMIBを取得し1秒あたりのCpuRaw値の増分を調査してみました。まず、CpuRawSystem = CpuRawKernel + CpuRawInterruptとなっていることは間違いないようで、前述の二つは計算より除外します。
増分を1秒当たりに変換するために60で除算し、また論理的に4CPUのため4で除算した結果を見ると、おぼろげながら133という数字が見えてきました。
20100119_CpuRaw.png


133という数字、なんでしょう? と、sysctlを見ていたらstathzに133という数字が。ソースコード等を厳密に追って調べた訳ではないので確証はないですが、とりあえずそういうことにしておこうと思います。
atom# sysctl -a | grep clockrate
kern.clockrate: { hz = 1000, tick = 1000, profhz = 2000, stathz = 133 }
hw.clockrate: 1599

今回の調査の結果、CpuRawの単位時間当たりの増分は、「stathz x 論理CPU数」っぽいということで。違ったらすみません。

共通テーマ:日記・雑感