DN2800MTのCPU(N2800)はネットブック用に近いので、CPUの消費電力をきめ細かく管理できるようです。
FreeBSDでもその機能を利用できるようなので、設定してみました。
何はともあれ、BIOSで Enhanced Intel SpeedStep Technologyを Enableにしておきます。
次にカーネルですが、GENERICなら最初から
# CPU frequency control
device cpufreq
と入っているので、何も変更する必要はありません。
次に /etc/rc.conf に以下の行を追加します。 FreeBSDのインストーラーで、powerdの有効化を選択していれば、これも自動で入っているはずです。
powerd_enable="YES"
これだけです。 さっそく確認してみましょう。
www# sysctl dev.cpu | grep freq
dev.cpu.0.freq: 199
dev.cpu.0.freq_levels: 1862/2000 1629/1750 1596/1650 1396/1443 1330/1300 1163/1137 1064/950 931/831 798/600 698/525 598/450 498/375 399/300 299/225 199/150 99/75
最初の行が、その瞬間のCPUの周波数です。
周波数の変化を確認したいなら、
www# powerd -v
powerd: using APM for AC line status
load 0%, current freq 931 MHz ( 7), wanted freq 901 MHz
load 8%, current freq 931 MHz ( 7), wanted freq 872 MHz
load 0%, current freq 931 MHz ( 7), wanted freq 844 MHz
load 0%, current freq 931 MHz ( 7), wanted freq 817 MHz
load 0%, current freq 931 MHz ( 7), wanted freq 791 MHz
changing clock speed from 931 MHz to 798 MHz
load 4%, current freq 798 MHz ( 8), wanted freq 766 MHz
load 3%, current freq 798 MHz ( 8), wanted freq 742 MHz
load 0%, current freq 798 MHz ( 8), wanted freq 718 MHz
load 0%, current freq 798 MHz ( 8), wanted freq 695 MHz
・
・
・
ctrl -cでコマンドを終了させます。
昨日の段階では Enhanced SpeedStepを無効にしたままだったので、有効にしてみたらアイドル時(といってもWebサーバーですので、随時リクエストの処理はしているのですが)の消費電力が 16.0Wから 15.4Wに下がりました。
もうちょっと下がるかと思っていたのですが、CPU以外の消費電力が大きいことを実感できました。