TCO削減を目的にサーバの集約が声高に叫ばれているIT業界ですが、部署やグループ単位で導入するサーバの必要性はまだまだ高いものがあります。そうしたサーバはオフィス空間に設置されるのが一般的ですが、オフィス空間はサーバルームに比べて室温が高く、温度も大きく変動します。さらに、人の出入りが多く埃が立ちやすいので、サーバの稼働環境として適しているとは言えません。しかも、大きな騒音を発するサーバはオフィスの労働環境を著しく損ないます。
z01_110Ge-S.jpg 図1:Express5800/110Ge-S
そこでこうした問題に対処すべく、NECが投入したのが水冷スリムサーバ「Express5800/110Ge-S(水冷)」です※。本稿では、この110Ge-Sの構成と特徴を解説したのち、CPU温度の計測と消費電力の測定を行います。
NECがオフィス向けに水冷サーバを製品化したのは、2004年10月発表の「Express5800/110Ca」が最初になります。それまで水冷方式と言えばハイエンドサーバか自作PCマニアのものでしたが、110CaはPCサーバに水冷方式を導入することで図書館などの静かな空間にも騒音を気にせず設置できる高い静音性を実現しました。この110Caはミドルタワーケースのサーバでしたが、水冷による高い静音性をコンパクトなスリムタワーサーバに持ち込んだのが、今回取り上げる110Ge-Sとなります。次項からはこの110Ge-Sの構成と特徴について見ていきます。
コスト意識が高くなっている現在では、社員向けに導入するPCとして、コンパクトなスリムタワー型を選ぶ企業が多くなっており、中にはデスクワーク中心の社員にもノートPCを与えているところが少なくありません。
そのような状況ですから、必然的にオフィスのサーバにもコンパクトさが求められるケースが増えてきています。ところが、サーバを小型化すると筐体内の密度が上がるため、熱がこもりやすくなり、冷却性能的には不利になります。そこで空冷ファンで強制的に排熱することになりますが、コンパクトなケースでは大型のファンは利用できません。その結果、小口径のファンを高速で回転させることになり、静音性は低下してしまいます※。
このように設置性と静音性は基本的に背反する要件なのですが、110Ge-SではCPUの冷却に水冷方式を取り入れることで、この2つの要件を両立させています。ただし、設置性を損なわずにコンパクトな筐体に水冷システムを組み込むのは容易ではありません。なぜなら、水冷システムは水冷ヘッドとラジエータユニット、およびそれらを連結する冷却水循環パイプで構成されますが、CPUクーラーの代わりとなる水冷ヘッドはよいとして、ラジエータユニットという追加のパーツを狭い筐体内に収める必要があるからです※。
図2:110Ge-Sの内部 z02_inside110Ge-S.jpg
図3:冷却ユニット z03_liquidcooler.jpg
110Ge-Sでは、ラジエータユニットを本体下部に設置し、ラジエータの熱を2個の空冷ファンで本体底面から排出する構成になっています。前面および背面のケースファンは1つもなく、本体前面のスリットから自然吸入された空気は、メモリスロットやチップセットのヒートシンクを通過して、このラジエータユニットのファンに導かれます。この空気の流れを乱さないようにするため、電源ユニットのファンは本体上面に設置されており、ここから吸い込まれた空気は電源ユニット内を通過して、そのまま背面の排気口から排出されます。このように、筐体内の冷却と電源ユニットの冷却を分離することで、安定した冷却性能を発揮するようにデザインされているわけです。
図4:フロントパネルを外した状態(右側が吸気口) z04_110Ge-S_wo_FrontPanel.jpg
さて、110Ge-Sの静音性能ですが、スペック上では本体から50cm離れた位置での計測で約32dBとなっており、「人の“ささやき声”並み」と表現されています。ただし、騒音の計測方法は厳密な標準化がされておらず、メーカーごとに計測方法が異なるので※、異なるメーカーのサーバをdB値だけで比較しても無意味です。本当はショールームなどで実際に動いているサーバの音を聞いてみるのが一番ですが、筆者が110Ge-Sに触れてみたところ、エアコンの稼働している室内では本体前面の30cmくらいまで耳を近づけないとファンの稼働音は聞こえませんでした。もちろん、ディスクアクセスがあるとHDDのシーク音がするので無音というわけではありませんが、一般的なデスクトップPCよりも静かなので、図書館や病院に設置しても騒音が問題になることはまずないでしょう。
このほかの110Ge-Sの大きな特徴としては、オプションのRAIDカードを追加することで、RAID 5によるデータ保護が利用可能になることが挙げられます。3台以上のHDDを必要とするRAID 5への対応は、HDD格納スペースが限られる小型サーバでは難しい条件ですが、110Ge-Sでは2.5インチのSASハードディスクを利用することで、この条件をクリアしています。
図5:ホットスワップ対応の2.5インチディスクベイ z05_hddbay.jpg
しかもこのRAIDカードはHDDのホットスワップにも対応していますので、HDDの障害発生時にもシステムを止めることなくディスク交換が行えます。ディスクの交換がしやすいように、フロントベゼルを開くとHDDにアクセスできるようになっています(ベゼルには鍵がかけられます)。なお、本体下部の空きスペースは3.5インチベイとなっており、SATA HDDやバックアップ用のテープドライブを格納することが可能です。
従来の部署/グループ向けの小型サーバにはコンパクトさと引き替えに、データ保護機能や可用性に制限があるものがほとんどでしたが、110Ge-Sではこうした部分にも十分な配慮がされています。
すでに述べたように110Ge-Sではラジエータユニットの排熱を本体底面から行いますが、そのためには本体と接地面の間に排気を逃がすための隙間が必要になります。そこで、110Ge-Sにはこの隙間を確保するための金属製の足が付属しています。この足は転倒防止を兼ねているのですが、本体を横置きに設置した場合、足を90°回転させて邪魔にならないように本体に付けておくことができます。
図6:縦置き用 z06_stand1.jpg
図7:横置き用 z07_stand2.jpg
付属品を無くしてしまわないための工夫ですが、横置きに設置した際にこうして足を付けておけば、本体の横ぴったりに物を置いてしまい排気口をふさいでしまうといったことを防げます。
同様に縦置き配置の際に、本体の上に物を置かれると電源ユニットの吸気口がふさがれて、電源が過熱するおそれがあります。そこで、110Ge-Sには電源の吸気口をガードするためのパーツも付属しています。
図8:電源吸気口カバー z08_cover.jpg
2ページ目
次にCPU温度を計測することにします。
今回計測した110Ge-Sの構成は以下のとおりです。
比較対象がないと110Ge-Sの冷却性能について判断できないので、今回はミドルタワー型の空冷サーバ「Express5800/110Ge」でもテストを実行してみました。テストに用いた110Geの構成は以下のとおりです。
もともと筐体容積の小さい110Ge-Sのほうが冷却性能的には不利なのですが、今回はそれに加えて110Ge-SのほうがCPUのグレードが高く、RAIDカードも搭載しているので110Ge-Sにはかなり不利な状況です。そもそもCPU自体が異なるため、CPU温度を直接比較しても意味がありません。そこでここでは、このような不利な状況を水冷システムがどれくらいカバーできるのか、水冷と空冷で温度の変動の仕方に違いがあるかどうかという点に注目することにします。
今回の計測では、Finnixというシステム管理者向けのLinuxディストリビューションを利用しました。このFinnixはライブCD型のディストリビューションで、システム管理用ツールやシステムテストツールなどが豊富に収録されています。ライブCDなので、HDDにインストールせずにCDからマシンを起動するだけで利用できます。Finnixのより詳しい情報については、こちらの記事をご覧ください。
今回は、このFinnixに含まれるlmsensorsとstressを用い、stressでシステムに負荷を掛けながら、lmsensorsのsensorsコマンドでCPUのコア温度を計測しました。なお、実際の計測に当たっては以下のような2つのスクリプト(log.shとstress.sh)を作成して実行しました。
log.sh
stress.sh
- #!/bin/bash
- echo "start test" >> /tmp/coretemp.log
- sleep 300
- echo "start cpu test" >> /tmp/coretemp.log
- stress --cpu 2 -t 600
- echo "stop cpu test" >> /tmp/coretemp.log
- sleep 30
- echo "start cpu/vm/io test" >> /tmp/coretemp.log
- stress --cpu 1 --vm 1 --io 1 -t 600
- echo "stop cpu/vm/io test" >> /tmp/coretemp.log
- sleep 300
- echo "stop test" >> /tmp/coretemp.log
log.shはsensorsコマンドで採取したコア温度を記録するスクリプトで、stress.shはstressコマンドをパラメータを変えながら自動実行するスクリプトです。sensorsコマンドはコア温度以外の情報も大量に出力するので、grepコマンドでコア温度の部分のみを抽出しています。また、stress.shでは以下のようにシステムへの負荷を変化させています(stressコマンドのオプションについては次ページを参照してください)。
なお、sensorsコマンドを利用する際は、事前にsensors-detectコマンドを実行してlmsensorsの設定を済ませておく必要があります。また、stress.shはテスト終了時に自動的に終了しますが、log.shは終了しないので手動で(Ctrl-Cを押して)停止させます。
計測結果のグラフを以下に示します。なお、計測した室内の気温は25℃でした。
z09_graph_110Ge-S.png
図9:110Ge-SのCPUコア温度
110Ge-Sでは、アイドル時および高負荷時のコア温度はそれぞれ以下のようになりました。
コア | アイドル時 | 高負荷時 | 変動幅 |
Core 0 | 39℃ | 56℃ | 17℃ |
Core 1 | 40℃ | 57℃ | 17℃ |
Core 1のほうがCore 0よりも1℃ほど高くなっていますが、テストを通じたコア温度の変動幅はどちらも17℃となっています。
次に110Geの計測結果です。
z10_graph_110Ge.png 図10:110GeのCPUコア温度
アイドル時および高負荷時のコア温度はそれぞれ以下のようになりました。
コア | アイドル時 | 高負荷時 | 変動幅 |
Core 0 | 38℃ | 52℃ | 14℃ |
Core 1 | 43℃ | 57℃ | 14℃ |
こちらではCore 1のほうがCore 0よりも5℃も高くなっています。マルチコアプロセッサでコア間に温度差が生じるのはよく見られる現象であり、複数のCPUダイを1つにパッケージングしたマルチダイのプロセッサ(Core 2 QuadやクアッドコアXeonなど)なら5℃くらいの温度差はそれほど珍しくありません。しかし、シングルダイのデュアルコアプロセッサでコア温度が5℃も異なる個体はかなり珍しいと言えるでしょう。ただし、変動幅はどちらのコアも14℃と同じになっています。
110Geに搭載されていたPentium Dual-Coreでコア間に5℃も温度差があったことから推測できるように、CPUの温度は同じ製品でも個体によって大きく異なることがあります。そのため、評価機と同じ構成の110Ge-Sで同じテストを行った場合でも、今回とは異なる結果が出る可能性があります。以下ではこの実験結果に考察を加えますが、この点には十分留意してください。
まず言えることは、水冷だからといって110Ge-Sのコア温度が極端に低いということはありませんでした。むしろ、温度の変動幅を見ると110Ge-Sの17℃に対し110Geは14℃ですので、110Geのほうがよい結果と言えます。しかし、110Ge-SのXeon 3065はクロック周波数2.33GHz、2次キャッシュ容量4MBですが、110GeのPentium Dual-Core E2160はクロック周波数1.80GHz、2次キャッシュ容量1MBとスペックが大きく異なりますので、このスペックの差を考慮すると変動幅に見られる3℃の違いは十分納得できる範囲です。むしろ、コンパクトな筐体に高性能なCPUを積んだ110Ge-Sが、水冷システムの採用により、ミドルタワー型サーバと同等の冷却性能を実現していると見るべきでしょう。
次に、温度の値ではなくグラフの形に注目してみます。CPUへの負荷テスト開始(テスト開始300秒後)からコア温度が平衡状態になるまでの時間を見ると、110Ge-SではCore 0が約8分間、Core 1が約6分間かけてなだらかに温度が上昇しています。一方、110Geでは平衡状態になるまでの時間がCore 0で約1分間半、Core 1で約2分間しかかかっていません。たとえば、CPU使用率100%の状態が5分間継続したとします。このとき、110Ge-Sは最高温度まで上昇せずに高負荷状態を乗り切れますが、110Geは最高温度に達してしまいます。この110Ge-Sの温度が上昇しにくいという性質は、熱移送能力の高い水冷システムならではの特徴と言えるでしょう。長時間のコンパイル作業を行う開発サーバなどならともかく、一般的なオフィスサーバでCPU使用率100%の状態が長時間続くことはあまり考えられませんが、水冷の110Ge-SならCPU温度により余裕のある状態で運用することができると思われます。
3ページ目
次に消費電力の計測です。ここでも計測にはライブCD LinuxのFinnixを利用しました。
DCM400AD.png
マシンへの負荷をstressコマンドで変化させながら、電流値を計測しました。stressのオプションについては次項を参照してください。
状態(stressのオプション) | 電流(A) |
アイドル(OS起動状態) | 0.64 |
--cpu 1 | 0.82~0.83 |
--cpu 2 | 0.93 |
--cpu 3 | 0.93~0.94 |
--cpu 4 | 0.93 |
--vm 1 | 0.90~0.91 |
--vm 2 --vm-bytes 128MB | 1.04~1.05 |
--vm 3 --vm-bytes 128MB | 1.05 |
--io 1 | 0.88 |
--io 2 | 0.94~0.95 |
--io 3 | 0.89~0.94 |
--cpu 1 --vm 1 | 0.97~0.98 |
--cpu 1 --io 1 | 0.94~0.95 |
--cpu 1 --vm 1 --io 1 | 0.96~0.97 |
--cpu 2 --vm 1 | 0.96~0.98 |
--cpu 2 --vm 2 --vm-bytes 128MB | 0.98~0.99 |
--cpu 1 --vm 2 --vm-bytes 128MB | 0.99~1.02 |
--cpu 2 --io 2 | 0.94~0.95 |
--vm 1 --io 1 | 0.97~0.98 |
--vm 2 --vm-bytes 128MB --io 1 | 1.00~1.02 |
--vm 1 --io 2 | 0.95~0.96 |
※室温25℃で計測
--ioと--hddはどちらもディスクに負荷をかけるオプションですが、負荷のかけ方が異なります。--hddはファイルの生成と削除(write()/unlink())を繰り返し実行することでディスクに重点的に負荷をかけます。一方、--ioはメモリとディスクの同期(sync())を繰り返し実行するため、ディスクとメモリの両方に負荷がかかります。
ライブCD型のLinuxディストリビューションでは、起動時に作成されるRAMディスクがローカルディスクとして利用されます。そのため、--hddオプションによるテストを実行しても、実際にはHDDには負荷がかかりません。そこで今回は--hddオプションを使ったテストを省略しています。もっとも、HDDへのアクセスがなくてもRAIDカードやHDDには給電されていますので、これらのパーツのアイドル時の消費電力は上記の結果に含まれています。
また、--vmオプションでは、デフォルトではテストプロセス1つにつき256MBのメモリが消費されます。しかし、今回の評価機には512MBしかメモリが搭載されていないため、そのままでは2つ以上のテストプロセスを生成することができません。そのため、ここでは--vm-bytesオプションを追加指定してテストプロセス1つ当たりのメモリ割り当てを128MBにしました。なお、メモリの割り当てを変更しても、消費電力の差はほとんど生じません。
さて結果を見てみると、今回の構成における最大消費電力(消費電流)は1.05A(100W強)になりました。メモリやHDDがフル搭載された状態ではないのでその分を割り引いて考える必要がありますが、スペックシートに記載されている最大構成時の消費電力「196VA/194W」(約2A)はかなり余裕のある値と考えられます。また、Xeon 3065はCPUの省電力機能のEIST(Enhanced Intel SpeedStep Technology)に対応していますが、今回利用したFinnixはEISTに対応していないので、EIST無効の状態での計測となっています。そのため、EISTを有効にできるOSであれば、消費電力が若干下がる可能性があります。いずれにせよ、高負荷時に100W強という値は110Ge-Sの優れた省電力性能を示すものと言えるでしょう。