manekineko倉金家ホームページ

趣味の部屋/インターネットサーバー/サーバー構築メモ その2

sensors設定とグラフ化

2010年6月21日(月) 2010年6月23日(水)更新
ハードウェアの状況をモニターするsensorsの設定を行います。
電源電圧、CPU温度、ファン回転数などがモニターできます。
さらにこれらをグラフ化し、モニターパネルに加えてみました。


サーバーを稼働していると時折ハードはだいじょうぶなのだろうかと心配になります。
ハードディスクの状況をモニターするsmartctlはすでに入っていて
# smartctl -a /dev/sda
# smartctl -a /dev/sdb
でハードディスクの状況をモニターできます。
あと気になるのは電源の状態、CPUの温度や冷却ファンの状態などです。
これらをモニターするツールを導入、設定します。
IPMIというのを試してみたかったのですが、ハードウェアが対応していないようです。で、sensorsを使います。
必要なパッケージはlm-sensorsですが、すでにインストールされています。

さっそくsensorsを設定します。端末を開き、
# sensors-detect
....
We can start with probing for (PCI) I2C or SMBus adapters.
Do you want to probe now? (YES/no):(ここで[Enter])
Probing for PCI bus adapters...
Use driver  i2c-i801' for device 0000:00:1f.3: Intel 82801G ICH7
....
いくつか質問されますが、ざっと内容を見てディフォルトの返事(大方大文字でYESとなっている)でいいようです。そのまま[Enter]を押します。

最後に
Do you want to overwrite /etc/sysconfig/lm_sensors? (YES/no):(ここで[Enter])
lm_sensors を起動中:                                       [ OK ]
となります。
さっそく試してみます。
# sensors
dme1737-i2c-0-2e
Adapter: SMBus I801 adapter at 0400
V5stby:    +1.78 V (min = +0.00 V, max = +6.64 V)
Vccp:      +1.23 V (min = +0.00 V, max = +2.99 V) …CPUコア電圧
V3.3:      +3.28 V (min = +0.00 V, max = +4.38 V) …3.3V電源ライン電圧
V5:        +5.01 V (min = +0.00 V, max = +6.64 V) …5V電源ライン電圧
V12:      +11.86 V (min = +0.00 V, max = +15.94 V) …12V電源ライン電圧
V3.3stby:  +3.26 V (min = +0.00 V, max = +4.38 V)
Vbat:      +3.14 V (min = +0.00 V, max = +4.38 V) …バッテリー電圧
RD1 Temp:   +50°C (low = -127°C, high = +127°C) …CPU内部温度(Remote Diode温度)
Int Temp:   +50°C (low = -127°C, high = +127°C) …PC内部温度?
CPU Temp:   +47°C (low = -127°C, high = +127°C) …CPU温度
CPU_Fan:  1752 RPM (min = 0 RPM) …たぶんCPUファンNo.1回転数
Fan2:     1995 RPM (min = 0 RPM) …たぶんシステム(ケース)ファン回転数
Fan3:     1668 RPM (min = 0 RPM) …たぶんPSU(PowerSupplyUnit)ファン回転数
Fan4:     1682 RPM (min = 0 RPM) …たぶんCPUファンNo.2回転数(2個ついてる)
CPU_PWM:   122 (enable = 2, freq = 25000 Hz)
Fan2_PWM:  103 (enable = 2, freq = 25000 Hz)
Fan3_PWM:   70 (enable = 2, freq = 25000 Hz)
cpu0_vid: +1.088 V (VRM Version 10.0)
詳しい意味がわからない数値がいろいろありますが、概ねこんな数字ということで。ハードウェアに不調があったとき比較してみることで原因の究明に役立つかもしれません。
ちなみにこのときの室温は28℃でした。
上記はCPU速度が2.6GHzの値です。(前に2.6GHzに固定した。)
ものの試しにCPU速度を手動で最高の3.6GHzに上げ、数十秒ほどブラウザなど使って負荷をかけて測定してみます。結果は、

# sensors
dme1737-i2c-0-2e
Adapter: SMBus I801 adapter at 0400
V5stby:    +1.78 V (min = +0.00 V, max = +6.64 V)
Vccp:      +1.34 V (min = +0.00 V, max = +2.99 V)
V3.3:      +3.27 V (min = +0.00 V, max = +4.38 V)
V5:        +5.04 V (min = +0.00 V, max = +6.64 V)
V12:      +11.75 V (min = +0.00 V, max = +15.94 V)
V3.3stby:  +3.25 V (min = +0.00 V, max = +4.38 V)
Vbat:      +3.14 V (min = +0.00 V, max = +4.38 V)
RD1 Temp:   +62°C (low = -127°C, high = +127°C)
Int Temp:   +50°C (low = -127°C, high = +127°C)
CPU Temp:   +53°C (low = -127°C, high = +127°C)
CPU_Fan:  3470 RPM (min = 0 RPM)
Fan2:     4228 RPM (min = 0 RPM)
Fan3:     2830 RPM (min = 0 RPM)
Fan4:     3354 RPM (min = 0 RPM)
CPU_PWM:   205 (enable = 2, freq = 25000 Hz)
Fan2_PWM:  198 (enable = 2, freq = 25000 Hz)
Fan3_PWM:  186 (enable = 2, freq = 25000 Hz)
cpu0_vid: +1.088 V (VRM Version 10.0)

わー、1分もしないうちにCPU内部温度が12℃も上がってファンの回転数が倍くらいになってる。
CPU2.8GHzで同じように負荷をかけて計ってみます。

# sensors
dme1737-i2c-0-2e
Adapter: SMBus I801 adapter at 0400
V5stby:    +1.78 V (min = +0.00 V, max = +6.64 V)
Vccp:      +1.23 V (min = +0.00 V, max = +2.99 V)
V3.3:      +3.27 V (min = +0.00 V, max = +4.38 V)
V5:        +5.01 V (min = +0.00 V, max = +6.64 V)
V12:      +11.84 V (min = +0.00 V, max = +15.94 V)
V3.3stby:  +3.26 V (min = +0.00 V, max = +4.38 V)
Vbat:      +3.14 V (min = +0.00 V, max = +4.38 V)
RD1 Temp:   +56°C (low = -127°C, high = +127°C)
Int Temp:   +51°C (low = -127°C, high = +127°C)
CPU Temp:   +50°C (low = -127°C, high = +127°C)
CPU_Fan:  2466 RPM (min = 0 RPM)
Fan2:     3054 RPM (min = 0 RPM)
Fan3:     2206 RPM (min = 0 RPM)
Fan4:     2377 RPM (min = 0 RPM)
CPU_PWM:   155 (enable = 2, freq = 25000 Hz)
Fan2_PWM:  141 (enable = 2, freq = 25000 Hz)
Fan3_PWM:  116 (enable = 2, freq = 25000 Hz)
cpu0_vid: +1.088 V (VRM Version 10.0)

3.6GHzのときと比べてだいぶ低く抑えられています。
やっぱりCPU速度は余裕をもって2.8GHzに固定しておこう。中古だし。



(2010年6月23日 追記)
さらにこれらの値をグラフ化して常時モニターできるようにしたいと思っていました。
MRTG とか GKrellM System Monitor などのソフトを使えばグラフ表示ができるようですが、たいへんめんどそうなので躊躇していたのが実状です。

ところが、これが簡単にできるソフトがすでに標準で入っていたのです。単に私が知らなかっただけでした。

実はCPUの負荷状況やメモリ、通信の状況のモニタにKDEシステムガードというソフトを使っています。このソフトのセンサーの項目をなにげなく見ていたとき、ほとんど同じ項目があるのに気がつきました。今まで全然気がつかなかった!
そしてそれを表示させて見ると、ほしいグラフがばっちり表示されました。
KDEシステムガードによるsensorsと同様な項目の表示(右側12個のグラフ)。
左はCPU負荷、メモリー、プロセス数、通信の状況など。
左下にディスク使用状況、右下にメモリーの現在の状況など。

これでハードとサーバーの稼働状況がほぼ一目でわかるようになった。
ほとんど単に見て楽しむ自己満足の世界だ。
(クリックで拡大表示します。)

それにしてもなんで今まで気がつかなかったんだろう。不思議だなー。と思いつつ見ているうちに、センサーの名前などがsensorsのそれと同じことからふと思い当たったことがあります。

ためしに
# service lm_sensors stop
でsensorsの動作を止めてみると、案の定グラフの各センサーの値が表示されません。
KDEシステムガードはsensorsを見ていたのでした。