powerdのおかげで、CPUの周波数が動的に変化するようになった。
動的に変化するならば、グラフで見たいところです。
そこで、この辺を参考にグラフ化してみました。
まずは、普通に5分周期のデータソースを作って、下のようなスクリプトでグラフにしてみた。
#!/usr/bin/perl

$ret = `sysctl -n dev.cpu.0.freq`;
$ret =~ s/\n//;

print "$ret";
この方法だと、cronで5分毎に起動される cactiのpoller.phpから上記スクリプトが呼ばれて、rrdが更新されると思うんだけど、普段はだいだい75MHzで動いているはずのシステムなのに、グラフでは1GHzくらいが表示されてしまう。
poller.phpの実行でcpuが忙しくなってしまったところを計測してしまうのかな?
そこで、別のスクリプトを作って1分ごとに周波数を記録し、その平均を5分の値にすることにした。(それこそrrdtoolを使えば良いんだけど、面倒だったのでシェルスクリプトにした)
#!/bin/sh
FILE=/usr/local/share/cacti/rra/cpufreq.dat

val=`sysctl -n dev.cpu.0.freq`
echo $val >> $FILE
tail -5 $FILE > $FILE.tmp
mv $FILE.tmp $FILE
このシェルスクリプトを、cronで1分毎に実行してやる。
そして、cacti用のスクリプトは以下のようにする。
#!/usr/bin/perl
$total = 0;
$min = 2000;
$max = 0;
$count = 0;

open(FILE, "/usr/local/share/cacti/rra/cpufreq.dat");
while(<FILE>) {
  chomp;
  $total += $_;
  $count++;
  if ($max < $_) {
    $max = $_;
  }
  if ($min > $_) {
    $min = $_;
  }
}
close(FILE);

$ret = $total / $count;

print "average:$ret maximum:$max minimum:$min";
手抜きなので、データファイルに1件もデータがない場合の動作は保証しない。

そして、cactiのコンソールから以下の手順でグラフにしてみた。
  1. Data Input Methods の追加
    1. 左側のメニューから Data Input Methods を選択し、右上の「Add」を押す。
    2. Data Input Methods の name に「Unix - CPU Frequency」、Input Typeに「Script/Command」、Input Stringに先ほどのスクリプトのパス「perl /scripts/cpufreq.pl」を入力する。
    3. Createボタンを押してから、Output Fields のところに「average」、「maximum」、「minimum」の3つを追加する。
    4. Saveを押す。
  2. Data Sourcesの追加
    1. 左側のメニューから Data Sources を選択し、右上の「Add」を押す。
    2. Hostに「Localhost」を選び、Createを押す。
    3. Data Source の name に「Localhost - CPU Frequency」、Data Input Methodに「Unix - CPU Frequency」を入力する。
    4. Data Source ItemのInternal Data Source Nameに「average」、Maximum Valueに2000を入れてCreateを押す。
    5. Data Source ItemのNewボタンを押して、averageと同じようにmaximum, minimumを追加する。
      このとき、Output Fieldをそれぞれあわせる。
      ※ 何故か、minimumを指定すると正しく rra が作成されないので、この画面の*Turn Off Data Source Debug Mode.をクリックして表示される rrdtool のコマンドラインでrrd ファイルを作成した。
  3. Graphの追加
    1. 左側のメニューから Graph Management を選択し、右上の「Add」を押す。
    2. Hostに「Localhost」を選び、Createを押す。
    3. Graph ConfigurationのTitle に「Localhost - CPU Frequency」、Upper Limitに2000、Vertical LabelにMHzを入力し、Createを押す。
    4. Graph ItemsのAddを押し、以下を追加する。
      Data SourceColorGraph Item TypeConsolidation FunctionText Format
      maximumFF0000LINE2AVERAGEmaximum
      minimum00FF00LINE2AVERAGEminimum
      averageFFF200LINE2AVERAGEaverage
      average-GPRINTLASTCurrent:
      average-GPRINTAVERAGEAverage:
      maximum-GPRINTMAXMaximum:
      minimum-GPRINTMINMinimum:

こうしてできたグラフが以下のような感じ。
graph_27_1.png

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: cactiでCPUの周波数をグラフ化する

このブログ記事に対するトラックバックURL: https://www.wizard-limit.net/cgi-bin/mt/mt-tb.cgi/1009

コメントする

このブログ記事について

このページは、falseが2005年11月26日 18:03に書いたブログ記事です。

ひとつ前のブログ記事は「WHEELSUからPAMへ」です。

次のブログ記事は「ネットワークカード交換」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

広告

Powered by Movable Type 6.1.1