~Windows Server 2008 R2 Beta版 移行・導入・運用の豆情報~
近年、仮想化システムの導入が増えており、仮想化に対し最適なシステムが求められています。Windowsに関しては、Windows Server 2008 R2にHyper-V2.0が標準搭載され、仮想化基盤がさらに強化されています。
富士通では、PCサーバPRIMERGYのHyper-V2.0サポート機種をタイムリーに提供するとともに、お客様にPRIMERGYとWindowsによる最適な仮想化環境を提供するための各種検証を行っています。
PRIMERGYでは、Hyper Threading()(以下、HT)対応CPUを搭載したモデルを再び提供し、プラットフォームにおける性能面を強化しました。
仮想化システムでは限られたリソースで高い性能を発揮することが求められるため、HTは有効な機能となり得ます。それに対しWindows仮想化では、仮想化のアーキテクチャであるHypervisorがHTを考慮した設計になっていなければ性能劣化に繋がる恐れがあると考えていました。
また、Hyper-Vが登場してから初めてのHT対応PRIMERGYとの組み合わせということもあり、HTが仮想マシン性能にどのような効果をもたらすのか確認する必要がありました。
これらを確認するため実施した、Windows Server 2008 R2 Hyper-V2.0とHTに関する検証を以下に紹介します。
()Hyper Threading:1つのプロセッサリソースを2つの論理プロセッサに見せ、プロセッサの利用効率を高めることで性能を向上させるテクノロジーです。例えば、4コアのCPUの場合、Hyper Threadingを有効にするとOSからは8つの論理プロセッサに見えます。
HTを有効にした場合、1つのCPUコアが2つのLP()に分かれるイメージとなる。コア数≧VP(*2)数の時、HypervisorのスケジューリングによってVPが1つのCPUコア上に偏って割り当てられた場合、1つのCPUコアの半分の性能しか出ないのではないか。
()「LP」は論理プロセッサ、「VP」は仮想マシンの仮想プロセッサの略です。以降、LP、VPで表現しています。
図1 HT有効時のHypervisorのスケジューリング仮説イメージ図
CPUコア数を超えてVPを使用する場合、HTによってCPUリソースを有効利用できるため性能向上すると考えられるが、どの程度向上するのか。
図2 コア数<VP数時のCPU管理イメージ図
今回検証で用いたPRIMERGYおよび仮想マシンの仕様は表1、2のとおりです。
機種名 | PRIMERGY RX300 S5 |
---|---|
OS | Windows Server 2008 R2 Enterprise |
BIOS | FUJITSU // Phoenix Technologies Ltd. 6.00 Rev. 1.09.2619 |
CPU | Intel Xeon CPU E5520 @2.27GHz 2.26GHz(4コア*2ソケット) |
Memory | 72GB |
HDD装置 | PG-HDB55C 内蔵ハードディスクユニット-450GB 3.5インチ、SAS、15,000rpm |
HDD構成 | C: 418GB ホストマシン システム領域 E: 418GB 仮想マシン VHD、構成情報を格納 |
OS | Windows Server 2008 R2 Enterprise |
---|---|
CPU | 1仮想プロセッサを割り当て |
Memory | 1024MB |
HDD | 仮想IDE接続、可変VHD(仮想ハードディスク)() |
()富士通ではディスクI/Oを行う際のオーバーヘッドの小さい固定VHDを推奨しています。本検証では多数の仮想マシンを作成する上でVHDコピー時間やディスク容量の削減が期待できる可変VHDで構築しています。本検証はCPU演算に関する測定であるため、可変VHDのI/Oオーバーヘッドによる影響はないと考えています。
本検証では各仮想マシンに割り当てるVPを1つとした最もシンプルなケースで行いました。また、CPU演算処理を行うテストツールを作成し、全仮想マシンに同時にテストツールを実行した環境で、全仮想マシンの1秒当たりの演算処理数を計測しました。
(参考)テストツールの動作
()Hyper-Vの統合サービス機能の一つで、データをホストOSからゲストOSに、ゲストOSからホストOSに伝えることが出来ます。
図3、4は、仮想マシン数を増やしていったときの、仮想マシン1台(HT on時)の処理性能に対する性能比較です。図3は整数演算処理、図4は浮動小数点演算処理の結果です。
図3 検証結果(整数演算時)
図4 検証結果(浮動小数点演算時)
検証結果から、前述した仮説に対して次のようなことが言えます。
仮説1に対して
図3、4の(A)の範囲を見ると、HT有効時もHT無効時と同等の性能であり、処理性能が劣化していないことが分かりました。1つのCPUコアで処理されることによって性能が半分になるという懸念がありましたが、HypervisorはHTを考慮し、CPUコアとVPが1:1となるようスケジューリングをしていることが分かりました。
仮説2に対して
図3、4のVP数がコア数より多い(B)、(C)の範囲を見ると、HT有効としたほうが性能向上していることが確認できました。整数演算の時は最大20%程度、浮動小数点演算の時は最大80%程度性能が向上しました。HTによる性能向上は、キャッシュ等のCPUリソースをいかに効率的に利用できるかに依存するため、2つの検証で性能向上幅が異なりますが、どちらの検証もHT有効設定が性能向上に繋がりました。
また、図3では大きな変化は見られませんでしたが、図4のHT有効時のグラフ(青線)において、(B)と(C)のそれぞれの範囲では性能劣化の比率が変化している事を確認できました。
これは以下のような違いがあるためと考えられます。
本検証はCPU演算に対する検証でしたが、コア数≧VPの時、HT有効による性能劣化がないと確認できました。また、コア数<VP数となるような多数の仮想マシンを構築する場合、HTによって性能向上することを確認できました。
HTの性能向上に対する影響度は環境によって異なりますが、Windows Server 2008 R2 Hyper-V2.0とHT対応PRIMERGYを組み合わせたWindows仮想化環境では、HT有効設定が性能向上のポイントとなることがわかりました。今回は各仮想マシンに1VPを割り当てたケースの検証の紹介をしましたが、複数VPを持つ仮想マシンでも検証を実施しHTを有効にすることで性能が向上することを確認できています。
富士通はこれからもHyper-VとPRIMERGYの検証を継続しノウハウを蓄積していきます。そして、仮想化ソリューションセンターではお客様の仮想環境の最適なサイジングを支援致します。
【ご注意】
動作確認したWindows Server 2008 R2は開発段階にあるため仕様変更の可能性があります。