このページの本文へ移動

Windows Server 2008 R2 Hyper-V2.0におけるHyper Threading性能検証

~Windows Server 2008 R2 Beta版 移行・導入・運用の豆情報~

はじめに

近年、仮想化システムの導入が増えており、仮想化に対し最適なシステムが求められています。Windowsに関しては、Windows Server 2008 R2にHyper-V2.0が標準搭載され、仮想化基盤がさらに強化されています。
富士通では、PCサーバPRIMERGYのHyper-V2.0サポート機種をタイムリーに提供するとともに、お客様にPRIMERGYとWindowsによる最適な仮想化環境を提供するための各種検証を行っています。

検証目的

PRIMERGYでは、Hyper Threading(注釈1)(以下、HT)対応CPUを搭載したモデルを再び提供し、プラットフォームにおける性能面を強化しました。
仮想化システムでは限られたリソースで高い性能を発揮することが求められるため、HTは有効な機能となり得ます。それに対しWindows仮想化では、仮想化のアーキテクチャであるHypervisorがHTを考慮した設計になっていなければ性能劣化に繋がる恐れがあると考えていました。
また、Hyper-Vが登場してから初めてのHT対応PRIMERGYとの組み合わせということもあり、HTが仮想マシン性能にどのような効果をもたらすのか確認する必要がありました。
これらを確認するため実施した、Windows Server 2008 R2 Hyper-V2.0とHTに関する検証を以下に紹介します。

注釈1)Hyper Threading:1つのプロセッサリソースを2つの論理プロセッサに見せ、プロセッサの利用効率を高めることで性能を向上させるテクノロジーです。例えば、4コアのCPUの場合、Hyper Threadingを有効にするとOSからは8つの論理プロセッサに見えます。

検証前の仮説

仮説1

HTを有効にした場合、1つのCPUコアが2つのLP(注釈2)に分かれるイメージとなる。コア数≧VP(*2)数の時、HypervisorのスケジューリングによってVPが1つのCPUコア上に偏って割り当てられた場合、1つのCPUコアの半分の性能しか出ないのではないか。

注釈2)「LP」は論理プロセッサ、「VP」は仮想マシンの仮想プロセッサの略です。以降、LP、VPで表現しています。


図1 HT有効時のHypervisorのスケジューリング仮説イメージ図

仮説2

CPUコア数を超えてVPを使用する場合、HTによってCPUリソースを有効利用できるため性能向上すると考えられるが、どの程度向上するのか。


図2 コア数<VP数時のCPU管理イメージ図

検証サーバと検証内容

今回検証で用いたPRIMERGYおよび仮想マシンの仕様は表1、2のとおりです。

表1 PRIMERGY RX300 S5の仕様
機種名 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、構成情報を格納
表2 仮想マシンの仕様
OS Windows Server 2008 R2 Enterprise
CPU 1仮想プロセッサを割り当て
Memory 1024MB
HDD 仮想IDE接続、可変VHD(仮想ハードディスク)(注釈3

注釈3)富士通ではディスクI/Oを行う際のオーバーヘッドの小さい固定VHDを推奨しています。本検証では多数の仮想マシンを作成する上でVHDコピー時間やディスク容量の削減が期待できる可変VHDで構築しています。本検証はCPU演算に関する測定であるため、可変VHDのI/Oオーバーヘッドによる影響はないと考えています。

本検証では各仮想マシンに割り当てるVPを1つとした最もシンプルなケースで行いました。また、CPU演算処理を行うテストツールを作成し、全仮想マシンに同時にテストツールを実行した環境で、全仮想マシンの1秒当たりの演算処理数を計測しました。

(参考)テストツールの動作

  1. テストツール実行の開始時間を、ホストOSから全てのゲストOSにデータ交換機能(注釈4)を利用して伝える。
  2. ゲストOS側のテストツールが、1. によって伝えられた時間を受け取り、指定時間までテストツールをスリープさせる。
  3. ホストOSから指定された時間になるとテストツールが一斉に動作し測定を開始する。

注釈4)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)のそれぞれの範囲では性能劣化の比率が変化している事を確認できました。
これは以下のような違いがあるためと考えられます。

  • (B)の範囲:利用されていないLPがあるため、全てのVPの演算処理が同時にかつ効率的に処理され、性能劣化を抑えられる。
  • (C)の範囲:全てのLPが利用されているため、VPが増えるごとにある瞬間でアイドルとなる仮想マシンが存在してしまい性能が劣化する。

まとめ

本検証は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は開発段階にあるため仕様変更の可能性があります。

PCサーバ PRIMERGYに関する資料請求・お見積もり・ご相談

Webでのお問い合わせ

入力フォーム

当社はセキュリティ保護の観点からSSL技術を使用しております。

お電話でのお問い合わせ

0120-933-200 富士通コンタクトライン(総合窓口)

受付時間 9時~17時30分
(土曜・日曜・祝日・当社指定の休業日を除く)