KUSONEKOの見る世界

自宅サーバをスリープさせて節電する

現在東京電力管内は、電力需給逼迫の状態です。

私も何か節電に協力できないかと考えていました。

以前の記事で書いている通り、今の自宅サーバはシャットダウンができず、自動起動させる事が出来ずにいました。

自宅サーバ省電力化 NIC編 | KUSONEKOの見る世界

自宅サーバを省電力化するため、夜間のみインターフェース速度を自動下げてみました。

今回思いついたのは、シャットダウンではなく、スリープなら上手くいくのではないかということです。(なぜ当時気付かなかったのか…)

インターネットで調べてみると、案外簡単に出来る事がわかり、やってみたら上手く動きました。

コマンド例

以前は、/sys/class/rtc/rtc0/wakealarm に起動する時間を入れて、
shutdownするようなことをやっていましたが、rtcwakeコマンドだけで完結できます。

5時間30分後に、スリープから自動起動

# rtcwake -m mem -t `date +%s -d '5 hour 30 min'`
または
# rtcwake -m mem -s 19800

5時間30分後に、休止状態から自動起動

# rtcwake -m disk -t `date +%s -d '5 hour 30 min'`
または
# rtcwake -m disk -s 19800

5時間30分後に、シャットダウン状態から自動起動

# rtcwake -m off -t `date +%s -d '5 hour 30 min'`
または
# rtcwake -m off -s 19800

crontab

rtcwakeをcrontabに入れて実行すれば、知らず知らずのうちに節電になります。

以下の例では、夜0時30分にスリープし、朝6時に起動する例です。
なお、crontabでは、%を使う場合、『\』でエスケープが必要です。

# crontab -e
30 0 * * * /sbin/rtcwake -m mem -t `date +\%s -d '5 hour 30 min'`

最後に

東京電力管内で、常時起動が不要なサーバが全てスリープしたら、なかなかの効果があるのは無いでしょうか。

他にも省電力の方法が無いか、検討していこうと思います。

我々エンジニアの力を終結すれば、この夏は乗り切れるはず!