-仮想化技術とは?-
1台の物理PC上に、複数の仮想的なPC(仮想マシン)をソフト的に構築する技術であり、サーバー等を中心に導入が進んでいます。もちろんクライアントでもVirtual PCを利用したXP Mode、Hyper-Vなど1台の物理PCで複数のOSや環境を使いたい場合に使用されています。
しかし、仮想マシンでは1台のハードウェアのリソースで複数台分の仮想マシンを制御する必要があるので、様々なオーバヘッドが生じ、結果として1台のマシンとして使うよりも動作が重くなっていました。
この仮想マシンの処理の一部をハードウェアで肩代わりするのが、「インテル・バーチャライゼーション・テクノロジー(Intel VT)」です。
-Intel VTとは?-
Intel VTはいくつかの構成要素があるが、ここでは代表的なVT-xとVT-dについて紹介します。
■VT-x
CPU x86アーキテクチャの仮想化技術です。従来、OSはデバイスドライバやメモリ管理などハードウェアに自由にアクセスするために特権命令を使用します。しかし、仮想マシンのようにOSが複数あると特権命令がいくつも発生してしまうという不都合が生じます。VMM(仮想マシン・マネージャ)ではゲストOSの特典命令を監視し、特典命令をエミュレーションしますが、VT-xではこれらの処理を特別な動作モード(VMX rootとVMX non-root)で処理することが可能となります。
さらにVT-x(Gen2)では、拡張ページ・テーブル(EPT)が用意され、ゲストOSの(メモリ等の)仮想物理アドレスを、物理マシンの物理アドレスに置き換える処理をサポートします。
■VT-d(ダイレクトI/O向け Intel VT)
I/O処理の仮想化を支援する機能であり、従来、ソフトウェアベースで行っていた、I/Oデバイスの割り当て、DMAリマッピング、割り込みのリマッピングをハードウェア的に行えるようにしたもの。この機能により、仮想マシンでのストレージやネットワークへのアクセスが高速化できると期待される。
-Intel VTを使用するには何が必要?-
Intel VTはハードウェアによる仮想化支援の為、対応しているハードウェアが必要になります。
■Intel VT対応のIntel製CPU
対応のCPUは下記のHPで確認できます。
http://ark.intel.com/Products/VirtualizationTechnology
■Intel VT対応のマザーボード及びBIOS
メーカー製PCの場合は、vProを謳っているPCを購入すれば確実ですが、自作PCだと悩むことになります。
現行のマザーボードの多くはVT-xに対応していますが、VT-dに至っては対応がまちまちのようです。マザーボードメーカーの仕様を見てもわからないことが多いのが難点です。(但し、マニュアルには載っていることが多いので、購入前にダウンロードして確認することをお勧めします。)
Intel Q77チップセット搭載マザーだとvProを謳っていますのでこれらを選ぶ方が確実だと思います。
■Intel VT対応のVMM(仮想マシン・マネージャ)
Microsoft VirtualPCやVMwareが有名でIntel VTをサポートしています。
今回、Intel VTの検証として用意されたCorei7-3770とIntel純正マザーボード「DQ77MK」の組み合わせでは「VT-x」と「VT-d」の2つのVTがサポートされており、これらを有効にしたときのパフォーマンスの違いについて検証します。
Virtual PCとVMwareの2つのVMM環境でIntel VTのパフォーマンスを検証する
Intel VTを有効にしたときのパフォーマンスの違いについて検証してみましょう。
-検証時のハードウェアとソフトウェアの構成-
■ハードウェア
【CPU】 Intel Corei7-3770 (Intel VT対応)
【メモリ】 PC10600 DDR3 12GB
【SSD】 Intel SSD320-300GB (SSDSA2CW300G3K5)
【マザーボード】 DQ77MK (Intel Q77チップセット搭載)
【グラフィック】 Intel HD Graphics4000 (CPU内蔵)
【ケース】 Maxpoint CS-1116
■ソフトウェア
Windows7+VirtualPC環境
【仮想PCマネージャ】 Microsoft VirtualPC
【物理PCのホストOS】 Windows7Ultimate (64bit)
【仮想PCのゲストOS】 Windows7Ultimate (32bit)
【仮想マシンの仕様】CPU1スレッド、メモリ3072MB、HDD領域25GB
Windows8+VMware Player環境
【仮想PCマネージャ】 VMware Player5.0
【物理PCのホストOS】 Windows8 Pro (64bit)
【仮想PCのゲストOS】 Windows7Ultimate (32bit)
【仮想マシンの仕様】CPU1スレッド、メモリ3072MB、HDD領域25GB
■Intel VTの有効/無効の切り替え方法
マザーボード「DQ77MK」の場合は、BIOS(起動時にF2キーで入る)のSecurityのタブの
・Intel Virtualization Technology
・Intel VT for Directed I/O (VT-d)
で行うことができます。(下記スクリーンショット参照)
-Windows8+VMware環境でVTの効果を検証する-
VMware PlayerでIntel VTの効果が得られるか検証しました。
VMware PlayerではGPU関係が強く、DirectX9.0cやOpenGL2.1をサポートします。この為、ゲームのようなアプリケーションでも実行できるメリットがあります。
ここでは検証項目としてCPU関係、GPU(主にゲーム)関係、SSDの速度比較、ネットワークの転送速度を比較していきたいと思います。
【共通の測定条件】
・仮想PC設定はCPU1スレッド、メモリ3072MB、ネットワークはブリッジ接続とする。
・解像度はフルスクリーンのアプリケーション以外は1920×1080(32bit色)とする。
・各VTの効果が判るように、両方OFF/VT-xのみON/VT-dのみON/両方ONで実施。
・各ベンチマークソフトは記載の無い限り、初期値とする。
・物理PCの測定はCPU8スレッド、メモリ容量12GBの為参考程度にしてください。
※各グラフは見やすくする為に物理マシンは含めていません。(表には記載)
また、最小値が0になっていないことに注意してください。
■CPU性能比較
CPUの性能比較です。CPUの仮想技術と謳っているVT-xの効果が期待されます。
・CrystalMark2004R3のCPU性能(ALU/FPU)
・午後のこ~だ(ノーマルベンチ)
・3DMark06 CPUスコア (Ver.1.2.1)
・CINEBench R11.5(CPUスコア)
【CPU性能比較まとめ】
CPU関係のベンチに関しては、どれも似たような傾向を示しています。
VT-xを有効にするとスコアが上昇します。VT-dでも上昇しますが上昇幅自体は小さくなります。
但し、VTを両方有効にした場合のみベンチの種類により、上昇したり下降したりバラバラです。この項目だけ見ると、VT-xだけONする方がベストなのかも知れません。
■GPU(主にゲーム)性能比較
GPUと言っても、VMMの仮想GPUはCPUのエミュレーションで実現されているので、実際にはCPUの性能に大きく左右されると思われます。
・3DMark06 総合スコア (Ver.1.2.1)
ちなみに、VMware環境の仮想PCのGPUは「VMware SVGA ii (1x)」と認識されます。
・MHF3(モンスターハンターフロンティアG) ベンチマーク -大討伐-
・FINAL FANTASY11 オフィシャルベンチマーク3(HIGH設定)
・きゃらコレ! ITちゃん ダンシングベンチマーク
・Key Rewrite ちはやローリングWe! (Ver1.10)
・CINEBench R11.5(OpenGL)
【GPU性能比較(主にゲーム)まとめ】
ほとんどの項目でVT-OFFのスコアが最下位であることから、VTを有効にすると性能が上がるのは一目瞭然です。
VT-xのみ有効にした場合が大きくスコアが伸び、VT-dが小さく伸びる・・・この傾向は前項のCPU関係のベンチと同じ傾向です。
■SSDの速度比較
VT-dはI/O処理の仮想化を支援するとのことでSSDの転送速度を比較しました。(CrystalDiskMark Nano Pico Editionを使用)
(単位:MB/s)
SSDのリード速度速度は、VTを有効にした場合に上がりました。
VX-x、VT-dのどちらでも上がります。
推測ですが、VMM環境ではSSDの転送にCPUを使うことと、今回のテスト環境が仮想PCにCPUを1スレッドしか割り当てていない要因が重なり、CPUの仮想化支援であるVT-xでも転送速度が上がったものだと思われます。
■ネットワークの転送速度比較
仮想PCのネットワーク速度についても比較してみました。
(PC間の通信速度の測定にはNetMiを使用)
NetMiは片方のPCをサーバーとして動作させ、もう片方のPCをクライアントとして動作させ、2点のPC間にパケットを送り、その転送速度を測定します。
【設定】
データサイズ:512バイト、UDPパケット、30秒間送信
【測定条件】
仮想PCをクライアント(送信側)、物理PCをサーバー(受信側)とする。
クライアント上で「平均送信速度」を測定。
さらに各々の条件で3回ずつ測定し、その平均値を記載しています。
(単位:Mbps)
ネットワーク転送速度に関しては、VTを有効にした方が遅くなってしまいました。ただ、後述するVirtualPC環境では飛躍的に速度が上がっている為、VMMとの相性があるのかも知れません。
-Windows7+VirtualPC環境でVTの効果を検証する-
VirtualPCでもIntel VTの効果が得られるのかを検証しました。
こちらの評価ではVT-xとVT-dは一括で変更しています。
■CPU性能比較
CPU性能と言っていますが、Virtual PCでは描画(GPU)に相当する部分もCPUで行っている為、比較対象としました。(CrystalMark2004R3を使用)
【測定条件】
解像度は物理PC、仮想PCとも1024×768 32bitカラー
VirtualPC環境ではD2Dの項目は測定できない(エラー)の為、除外とする。
【結果】
まず、物理PCに対し、仮想PCのスコアは大幅に劣っています。
これは、物理PCがCorei7-3770の8スレッド動作に対し、VirtualPCが1スレッドしかサポートしない為です。また、グラフィックに関しては、Virtual PC上ではS3 Virgeという大変古いグラフィックカードをCPUでエミュレーションしている為、こちらも大幅に遅くなります。
その中でVT 有効/無効を比較しますと、有効時にはCPUで約4%、HDD(SSD)で約10%、グラフィック関係においては3~5倍の性能が向上しています。確かに多くの項目でVTの効果はあることが確認できます。
■SSDの速度比較
VT-dはI/O処理の仮想化を支援するとのことなので、SSDの転送速度を比較しました。(CrystalDiskMark Nano Pico Editionを使用)
物理PC(ホストPC)
物理PCのSSDの転送速度です。今となっては型落ちのIntel SSD320(S-ATA3G)を使用しているので、スコアはそれなりです。
仮想PC VT OFF
仮想PCでVTがOFFの場合、大きくスコアを落としており、シーケンシャルアクセスでほぼ半分、その他のアクセスでは更に差が付いてしまっています。Virtual PCのオーバーヘッドはそれなりに大きいようです。
仮想PC VT ON
仮想PCでもVTをONにすると、シーケンシャルアクセスで10%以上、項目によっては2倍近く速くなっています。物理PCには遠く及びませんがストレージの性能は体感速度に直結するので効果は大きいと思います。
■ネットワークの転送速度比較
仮想PCのネットワーク速度についても比較してみました。
(PC間の通信速度の測定にはNetMiを使用)
NetMiは、片方のPCをサーバーとして動作させ、もう片方のPCをクライアントとして動作させ、2点のPC間にパケットを送り、その転送速度を測定します。
【設定】
データサイズ:512バイト、UDPパケット、30秒間送信
【測定条件】
クライアント上で「平均送信速度」を測定。
さらに各々の条件で3回ずつ測定し、その平均値を記載しています。
(実ネットワーク環境だと、色々な要因で結構バラつきますので・・・)
また、仮想PC同士の速度も比較できるように、2台の仮想PCを作成しています。
【結果】
結果は一目瞭然です。
ホスト-VPC間では、VT ONすることにより、VT OFF時のおよそ6倍もの転送速度が得られました。VPC同士間でもおよそ3倍の速度が出ています。
VT ONの場合は、ホスト-VPC間、VPC同士間のどちらでも、約93Mbpsとなりました。転送速度が速くなり、ボトルネックになる要因が変わったのだと思われます。サーバーで仮想化する場合は非常に有用だと思います。
-結論-
上記の検証により、Windows7+VirtualPC環境、及びWindows8+WMware環境のどちらでもIntel VTによる性能向上が確認できました。
VirtualPC環境では、Hyper-V等に比べるとVMMとしてのオーバーヘッドが大きいので物理PCに比べると大幅に遅くなる傾向があります。VTを有効にすることでオーバーヘッドを大幅に低減でき、結果パフォーマンスが向上します。
WMware環境では、VirtualPCに比べると実機に対する性能低下は少ないとはいえ物理PCと比べると遅くなってしまいます。VTを有効にすることでより実機に近いパフォーマンスを発揮することができます。(また、VMwareではゲストOSを64bitOSにする場合は、Intel VT等のCPUの仮想支援機能が必須となります)
仮想マシンを使うなら、Intel VTの恩恵は大きいと言えるでしょう。
ZIGSOWにログインするとコメントやこのアイテムを持っているユーザー全員に質問できます。