概要
サーバーの消費電力と処理能力を計測した。対象としたのは,約7年前の旧型サーバーと,省電力をうたう新型サーバー。サーバー単体の消費電力は新型が旧型より大きいが,それ以上に処理能力が向上している。新型サーバーにリプレースした場合のコストを試算したところ,約1年でコスト・メリットが得られることが分かった。検証を担当したライブドアの伊勢さんに報告してもらう。

 この1~2年で省電力をうたうサーバー機の選択肢が増えてきた。2005年ごろから,米Advanced Micro Devicesや米IntelなどのCPUベンダーが消費電力当たりの処理能力を重視したマルチコアCPUを相次いで出荷。これに応じてサーバー・ベンダーも,メモリーやディスクなどを含むサーバー機全体で,これまで以上に省電力を意識するようになってきた。

 そこで今回は,2000年に出荷された旧型サーバーと,2007年に出荷された省電力をうたう新型サーバーとで,「処理能力」と「消費電力」を計測。旧型サーバーを継続利用する場合と,新型サーバーにリプレースする場合とでランニング・コスト(電力費用の累計)を試算し採算分岐点を求めた。

 計測の結果,新型サーバーは旧型サーバーに比べて約2倍の消費電力で,約15.2倍の処理能力を発揮した。処理能力を同等にしてデータセンター(1A当たり3000円とする)で運用することを想定すると,12カ月以上で新型サーバーが得になると分かった(図1)。新型サーバーのコストには,サーバー機の購入費が含まれている。多数の旧型サーバーを運用し続けるならば,少ない台数の新型サーバーにリプレースした方がコスト・メリットがある。

図1●多数の旧型サーバーを集約して1台の新型サーバーに移行すると12カ月でコスト・メリットが生じる
図1●多数の旧型サーバーを集約して1台の新型サーバーに移行すると12カ月でコスト・メリットが生じる
検証に基づく試算から,データセンターで運用している15.2台の旧型サーバーは,同等性能の新型サーバー1台に移行することで総消費電力が削減され,12カ月を経過すれば新型サーバーのランニング・コストが旧型サーバーのそれを下回ると分かった。実際には,移行費用や集約に伴う性能上のオーバーヘッドを考慮しなければならないが,サーバー数の削減に伴うラック数や運用管理の手間の削減などで十分に相殺できる可能性が高く,ここでは考慮から省いた
[画像のクリックで拡大表示]

電流監視サービスで消費電流計測

図2●検証の環境と内容
図2●検証の環境と内容
2000年5月に出荷された旧型サーバー「DL360」(初代)と,2007年1月に出荷された新型サーバー「DL360G5」を用いて,消費電力と処理能力を計測した。その計測結果に基づき,旧型サーバーを集約して新型サーバーへとリプレースした場合の採算分岐点を試算した
[画像のクリックで拡大表示]

 検証用のサーバー機には,日本ヒューレット・パッカード(日本HP)が販売する1Uサイズの普及モデル「ProLiant DL360」シリーズを用いた(図2上)。旧型サーバーとして2000年5月に出荷したPentium III 800MHz搭載の「DL360(初代)」を,新型サーバーには2007年1月に出荷したXeon E5320(4コア) 1.86GHz搭載の「DL360 G5」を選定。それぞれ日本HPからお借りした。OSは両方とも,Red Hat Enterprise Linux 4をベースとする「CentOS4.4」である。

 検証実験は,グローバルアクセスが運営するデータセンターで実施した。消費電流の計測や記録は,データセンターでオプション提供されている電流監視サービス「Net-moni」を使った。2台のサーバー機にそれぞれ異なる100VAC 20A電源サーキットから電力供給し,電源サーキットごとの消費電流を計測した(図2中央)。今回は,消費電流を1分周期で計測する設定とし,その平均消費電流に100VACを乗じて消費電力を算出する。

 検証実験は3種類実施した。検証1では,CPU使用率が0%となるアイドル状態で新旧サーバーの消費電力を計測。検証2と検証3では,新旧サーバー上でデータベース管理システム「MySQL」を動作させ,CPUを使用した状態で処理能力と消費電力計測した。

 検証2と検証3は,想定するアプリケーションが異なる。検証2ではバッチ処理を念頭に,シングルユーザー/シングルスレッドで動作するベンチマーク・プログラム「sql-bench」を使用した。一方の検証3では,トランザクション処理を念頭に,マルチユーザー/マルチスレッドで動作するベンチマーク・プログラム「mysqlbench」を用いた。

 処理能力算出のために必要なCPU使用率は,Linuxのvmstatコマンドで断続的に計測した。vmstatはステータス情報を取得するコマンドで,CPU時間をどの処理に割り当てたかの明細を表示する。今回の検証実験ではアイドル時間割合(id)を除いた値を「CPU使用率」としている。

 具体的には,ユーザー・アプリケーションの使用時間割合(us)+システム・コールの使用時間割合(sy)+I/O待機時間割合(wa)になる。CPUの処理能力を計測するだけならば「us+sy」をCPU使用率とすべきだが,今回はメモリーやディスクを含むサーバー機全体の処理能力を計測したいので,waを加味した方が精度が上がると判断した。