こんにちは、R&D 統括本部 プラットフォーム開発本部の吉原 哲です。
東日本で発生した未曾有の震災の影響で、多くの発電施設が影響を受けており、政府及び電力会社から節電の協力が要請されています。一日本国民として、一技術者として、できることがないか検討してみました。あわせて現在までに把握している ヤフーにおける節電に対する取り組みをまとめましたので、節電を検討する際に役立てていただければと思います。
節電方法
一般的にサーバは稼働している際に一定の電力を消費し、CPU 使用率に比例して消費電力が上昇します。またサーバは動作しているときは常に発熱してます。データセンタの空調設備ではこれを取り除くため、サーバの熱量に比例して使用電力が増加することになります。取り急ぎ調査を行ったり、Yahoo! Inc. に知恵を借りたりしてみました。これまで得られた情報を元に、節電効果が見込まれる対策方法を以下に示します。
サーバの停止
メリットしばらく利用していないサーバなどは停止します。これによりサーバがアイドルになっているときに使用している電力を削減できます。検証環境やすぐに使う予定のない開発環境などを確認して停止します。また、サーバは動いていなくても待機電力を消費しますので、可能であれば電源プラグを外すことで待機電力も削減することができます。
サーバの起動時には大きな電力を消費しますので、頻繁に ON/OFF をするようですと逆効果になってしまうので注意が必要です。
デメリット停止したサーバをまた使う必要性が出てきた場合は、すぐに使うことができません。起動する作業が必要になります。
これまでの取り組みこれまで節電対策地域にある以下のシステムで実施しています。
- 開発・検証用のディスプレイ広告システムサーバの一部
- 本番地図系バックエンドシステムの一部
- ジオシティーズのサーバの一部
- など
データセンタの移動
メリット西日本のデータセンターにシステムを移すことで、東日本のサーバを停止することが可能です。
また、Disaster Recovery (DR) 対策済みのシステムであれば、これを活用することもできます。本来は利用不能になった場合の保険ですが、現在の状況を考えれば利用する価値があります。DR を組んでいるシステムはサービスレベルが高いと思いますので、良く検討したうえで実施してください。
デメリット東日本からのアクセスに対してレイテンシが増加します。
システムに依存しますが、切り替えコストの発生と場合によっては切り替え時にダウンタイムが発生します。
ソフトウェア的なアプローチ
ソフトウェア的に節電する方法もあります。CPU 使用率に応じて CPU の電圧やクロック周波数を動的に変更することで、必要最低限の電力消費量にするものです。消費電力量は低下しますがレイテンシが増加します。
FreeBSD においては powerd の利用が一般的です。
- powerd の使い方
http://forums.freebsd.org/showthread.php?t=172 - powerd を含めた FreeBSD の省電力方法としては以下の資料が参考になりました。
http://wiki.freebsd.org/TuningPowerConsumption
なお Linux においては cpufreq の利用が一般的です。
これまでの取り組み一部のサービスで導入検討中
その他のナレッジ・アイディア
以下は一般的なナレッジと現在検討中のアイディアです。
性能対消費電力比を意識する一般的に新しい CPU 方が性能対消費電力が高いです。
具体的な方法としては新しいサーバへのリプレイスが計画されている場合は前倒す、古いサーバの除却を進める、などが考えられます。
また、ロードバランサーに新しいモデルのサーバに多くトラフィックを流すなどが考えられます。
一般的にリソースのキャッシュ率を高めることで CPU 使用率を下げることができます。
mod_gzip/mod_deflate 設定を見直すより具体的な方法として mod_gzip/mod_deflate の設定を見直すことが考えられます。これはコンテンツを圧縮して転送する Apache のモジュールで、一般的にはパフォーマンスを向上させることができます。しかし圧縮には CPU を消費しやすいので off にしてしまうという方法も考えられます。off にすると転送量が増加するので、ネットワークにかかる影響と CPU 使用率の状態をベンチマークする必要があります。
ロードバランサーと節電技術との応用ロードバランサー配下にある 25% のサーバに全てのトラフィックをあえて偏らせ、残りのサーバはアイドルにします。こうすることでアイドルサーバは先ほどの省電力技術の効果を最大限利用することができます。ロードバランサーがトラフィックの増加を検知したら、徐々にアイドルサーバにトラフィックを割り当てます。この Hot/Cold な配置はレイテンシを増加させるリスクがありますが、キャッシュ効率が向上します。
まとめ
使用電力量の測定には、ソフトウェア上で電力使用量を計測する方法がなくワットチェッカーなどで計測する必要があります。このため定量的な観測を行うのは簡単とは言えません。またサーバからの発熱を考慮するとデータセンタ全体での電力使用量にも影響します。今確実に効果があるのは、不要不急なサーバを停止することでしょう。これからもしばらく輪番停電が予定されていますので、少しでも節電に協力してこの困難を乗り切りましょう。
こちらの記事のご感想を聞かせください。
- 学びがある
- わかりやすい
- 新しい視点
ご感想ありがとうございました