[#FreeNAS][#FreeBSD] FreeNAS 9.2.1.7のPowerdが効いていない?

AIX、UNIX、LinuxSSD、HDD、Storage

つい最近、自宅のストレージ環境をNAS4FreeからFreeNASに変更しました。
使い始めて気がついたのですが、以下のところにあるPowedの設定項目があるのですがちょっと動作できになることがありました。

設定>高度な設定>Enable powerd (Power Saving Daemon):
FreeBSDには全く詳しくないのですが、とりあえずUbuntuなどでいうCPUfreqというものと同じようなものだと思っております。

FreeBSD の省電力の設定(powerd を使う) - むらさきのくも
powerd とは、CPU がアイドル状態の時に、CPU の動作クロックを下げることで、PC の消費電力を抑えてくれる、エコなデーモンです(^^)。 ちなみに、powerd はデーモンですが、サーバでもクライアントでもありません…(^^;;...

確認環境

今回使用している筐体は、

CPU: Intel(R) Xeon(R) CPU L5520 @ 2.27GHz (2266.80-MHz K8-class CPU) Origin = "GenuineIntel" Id = 0x106a5 Family = 0x6 Model = 0x1a Stepping = 5

実際の現象

のものなのですが、動作クロックを調べてみると以下のように上限で高止まりしていました。

[root@freenas] ~# sysctl dev.cpu.0.freq
dev.cpu.0.freq: 2267
[root@freenas] ~# sysctl dev.cpu.0.freq
dev.cpu.0.freq: 2267
[root@freenas] ~# sysctl dev.cpu.0.freq
dev.cpu.0.freq: 2267
[root@freenas] ~# sysctl dev.cpu.0.freq
dev.cpu.0.freq: 2267
[root@freenas] ~# sysctl dev.cpu.0.freq
dev.cpu.0.freq: 2267
[root@freenas] ~# sysctl dev.cpu.0.freq
dev.cpu.0.freq: 2267

ちなみにPowerdはFreeNAS上から有効にし、実際にプロセスが起動していることも確認済みです。

[root@freenas] ~# ps auxww | grep powerd
root          4054    0.0  0.0  12036   1684 ??  Ss   Fri12AM     4:18.20 /usr/sbin/powerd
root          1373    0.0  0.0  16268   1956  0  S+    4:55AM     0:00.00 grep powerd

手動で確認

これはオカシイと思い、幾つかのWebサイトを確認したところ、以下のオプションを与えることでPowerdを制御できることが分かったので、明示的に与えて実行するようにしてみました。

/usr/sbin/powerd -a adp -n adp

モードとして設定できるパラメータはいくつかあるようです。

The powerd utility monitors the system state and sets various power control options accord- ingly. It offers three modes (maximum, minimum, and adaptive) that can be individually selected while on AC power or batteries. The modes maximum, minimum, adaptive and hiadap- tive may be abbreviated max, min, adp, hadp.

http://www.unix.com/man-page/FreeBSD/8/POWERD/
powerd
TuningPowerConsumption - FreeBSD Wiki

設定を試してみた

今回はバランス重視とされるadaptiveを設定することにしました。

で、その結果は以下のとおりです。

[root@freenas] ~# sysctl dev.cpu.0.freq
dev.cpu.0.freq: 800
[root@freenas] ~# sysctl dev.cpu.0.freq
dev.cpu.0.freq: 400
[root@freenas] ~# sysctl dev.cpu.0.freq
dev.cpu.0.freq: 400
[root@freenas] ~# sysctl dev.cpu.0.freq
dev.cpu.0.freq: 400
[root@freenas] ~# sysctl dev.cpu.0.freq
dev.cpu.0.freq: 800
[root@freenas] ~# sysctl dev.cpu.0.freq
dev.cpu.0.freq: 2000
[root@freenas] ~# sysctl dev.cpu.0.freq
dev.cpu.0.freq: 1600
[root@freenas] ~# sysctl dev.cpu.0.freq
dev.cpu.0.freq: 1200
[root@freenas] ~# sysctl dev.cpu.0.freq
dev.cpu.0.freq: 600
[root@freenas] ~# sysctl dev.cpu.0.freq
dev.cpu.0.freq: 400

動的にCPUクロックが制御されていることが分かります。

Powerdにパラメータを渡すことで正常に動作していることは確認できたので、今回の問題がFreeNASの設定の問題なのか、将又組み合わせの問題なのか、気になるところです。

まぁとりあえずPowerdが正常に動作することが分かって良かったです。

POINT

今はワークアラウンドとして、Post initに「/usr/sbin/powerd -a adp -n adp」を書くことで、起動時からPowerdを有効にするようにしました。

余談

とりあえずFreeNASのフォーラムに報告するか検討中です。

参考情報

powerd - FreeBSD入門
powerdによる省電力設定 | FreeBSD覚え書き
powerd を使って省電力設定を行う。 powerd はデフォルトで組み込まれている。 rc.conf に以下の行を追加する。 pow...
【FreeBSD】負荷に応じてCPUのクロックを変動させる(powerd)
この記事を書いた人

kometchtech

うつ病を患いながら、IT業界の末席にいるおっさんエンジニア。科学計算をしたことがないのに、HPC分野にお邪魔している。興味のある分野で学習したことをblogにまとめつつ、うつ病の経過症状のメモも置いておく日々。じつはRouterboard User Group JPの中の人でもある。 Amazon欲しいものリスト / Arm板を恵んでくれる人募集中

kometchtechをフォローする
タイトルとURLをコピーしました