MRTGでCPU使用率というと殆どのページでLoadAverageの設定が書かれています。
LoadAverageの表示には%で書かれている事が多いと思います。
そもそもLoadAverageとはなんなのか?
UNIX処方箋:「load average」によるCPU負荷の確認 – ITmedia エンタープライズ
つまりCPUの負荷を表すものであるがWindowsのプロセスマネージャーやtopコマンドで表示される
おなじみのCPU使用率とは意味合いが少し違うということになりますね。(ほぼ比例しますが)
また本来は%ではなく1.00表記の方が感覚的に正しいのかもしれません。
(1.00=100%なので意味は同じなのですが100%を超える場合もあるということです)
LoadAverageは1を超える可能性があるのでMRTGの設定でUnscaled[xxxx]: dwmyを指定している方は外した方がいいでしょう。
MaxBytes[xxx]:の項目も100以上の値を指定しないとLoadAverageが1を超えた場合にグラフの値がrrdファイルに書き込まれません。
重たい処理を行う時は1を超えることがしばしばありますので大き目の500などを指定しておけば問題ないと思います。
CPUがマルチなシステムの場合は普通に1を超えるようです。
ではお馴染みのtopコマンドと同じCPU使用率はsnmpで取得出来ないのでしょうか?
答えは「取得可能です」
Target[xxxx]: .1.3.6.1.4.1.2021.11.50.0&.1.3.6.1.4.1.2021.11.52.0:public@localhost
ユーザー使用の使用率:.1.3.6.1.4.1.2021.11.50.0
システム使用の使用率:.1.3.6.1.4.1.2021.11.52.0
※最後の0は何番目のCPUかを表します。マルチCPUであれば1を指定で2番目のCPUの値が取れます。
他にもidle時間なんかも取れます。
但し取得してくる値はLoadAverageとは違うのでOptions[xxxx]:の部分に gauge, absoluteは指定しないで下さい。
参考サイト:MRTG: Net-SNMPでLinuxのCPU使用率をプロットするには
※既にリンク先のサイトはなくなっているようです
ということで私の場合はLoadAverageとCPU使用率の両方をRRDTOOL経由で記録して表示することにしました。
※5分の平均なのでCPU使用率がしばしば100%になっててもMAX値は記録されません。
あくまでも平均としての目安で参考程度にした方が良いでしょう。
以下rrdcgiのサンプルです。
※cpu2.rrdがCPU使用率でcpu.rrdがLoadAverageになります。
グラフの便宜上LoadAverageも百分率で表示しています。
------------------
#!/usr/bin/rrdcgi
CPU Use & Load Average for LS-GLDEB
System: localhost
Maintainer: Root
Ip: 192.168.x.x
The statistics were last updated .
------------------