単純に言葉の意味だけを調べるのであれば実に簡単です。インターネットの検索エンジンでこの言葉を調べればすぐに解説にたどり着くことが出来ますから。
言葉の意味を端的に表しているのは「仮想マシンモニタ(VMM)による複数のオペレーティングシステム (OS) の並行動作をより効率的に行うための支援技術」という文章でしょう。これで意味は過不足なく伝わります。
仮想マシンとは、ソフトウェア上にPCのハードウェア機能をエミュレーションで作成し、ハードウェアのPCと同等の挙動を得るための仕組みです。
仮想マシン自体はかなり昔から「VMWare」や「Paralells Desktop」などがありましたが、一般的なクライアントPCのユーザーが仮想マシンを意識するようになったのはWindows7で以前のOSとの互換性問題を解決するために搭載された「XP Mode」の存在からでしょう。このXP Modeは「Windows Virtual PC」という仮想マシン(単体提供されているものは「Microsoft Virtual PC」という名称になります)と、Windows XPのOSイメージから構成されています。アプリケーションをXP Modeで登録しておくと、ユーザー側からは単にスタートメニューからアプリケーションを起動しているだけに見えるのですが、実際にはVirtual PCでWindows XPを起動し、さらに目的のアプリケーションを起動するという流れでWindows XP環境でアプリケーションを実行することが可能になっています。
話を戻して、「インテル® バーチャライゼーション・テクノロジー」の詳細について触れましょう。主な機能は下記のものとなります。
・VT-x
x86アーキテクチャのCPU仮想化機能といえます。従来のCPUではホストとなるネイティブOSと、ゲストOSとの間において特権の調整が難しかったのですが、これを動作モードの切り替え(VMX rootとVMX non-root)によりスムーズに調整することが可能となりました。速度の向上と信頼性・安定性の向上に貢献しています。
・VT-i
こちらはIA-64アーキテクチャのCPU仮想化技術です。主にItanium系のCPUにおける仮想化技術ですので、Coreシリーズのようなx86系32bitを拡張した64bitアーキテクチャ(Intel 64、以前はEM64Tと呼ばれていた)には関係しません。
・VT-d
Direct I/O向けのVT。従来の仮想マシンではソフトウェア処理によるリマッピングで対応していたDMA(Direct Memory Access)を利用する転送を、ハードウェアでリマッピングすることで、ゲストOS上からはハードウェア上で実行するOSと同等の挙動が得られ、標準的なデバイスドライバが利用できるほか、転送速度の大幅な改善が可能となります。
・VT-c
主にネットワーク接続向けのVT。TCP/IPのプロトコル処理をNIC側で実行させることでCPU負荷を軽減することや、複数のVMMからの接続を整理・調停することなどが可能です。
今回検証に利用するCore i7-3770+DQ77MKでは、このうちVT-xとVT-dがサポートされていることになります。検証はこの2つについて書きたいと思います。
VT-xとVT-dで得られるパフォーマンスを検証
今回は「インテル® バーチャライゼーション・テクノロジー」の中でもVT-xとVT-dに着目して検証を行います。
Windows Virtual PCでは3Dグラフィック系のベンチマークを動かすのは困難ですから、VT-xについてはCPUのシングルスレッド性能とメモリ帯域(+若干のディスク転送速度)で結果が変わるSuperπを、VT-dについてはCrystalDiskInfoにより同一SSDに対する速度を、それぞれ検証します。実は他にHDBENCH 3.40beta6の結果も掲載しようと思ったのですが、特に仮想環境で一部不自然な値が出るものがあり、データとしての意味がなさそうであったためカットします。
構築したのは以下の環境です。
CPU:Core i7-3770
マザーボード:DQ77MK
メモリ:16GB DDR3-1600 (4GB×4枚)
SSD:Crucial m4 256GB CT256M4SSD2
電源:Antec EARTHWATTS EA-500D
ケース:CoolerMaster製の適当なジャンク品
OSのインストールにはWindows Serverの機能であるWindows展開サービスを利用したため、光学ドライブ等は接続していません。
・VT-xの効果とは?
ここで1つ問題なのは、Windows8で採用されている仮想環境であるHyper-VはそもそもVTのサポートを必須としているため、ON/OFFによる差を確かめることは出来ないということです。Hyper-VはVTへの最適化が進んでいて、効果という意味では絶大なものがあるはずなのですが…。
そこで今回は、VTを必須条件として要求しないものの、推奨条件としているWindows7 + Virtual PCという環境も用意して、こちらでVTの有無によるパフォーマンス差を検証します。その上でWindows8 + Hyper-Vの環境についても検証することにしました。
まずはSuperπによる純粋な演算性能の比較です。
・Windows7 64bit + Virtual PC上のWindows7 32bit (VT-x、VT-d共にOFF)
Superπ(1677万桁) : 05分02秒
・Windows7 64bit + Virtual PC上のWindows7 32bit (VT-xはON、VT-dはOFF)
Superπ(1677万桁) : 04分19秒
・Windows7 64bit + Virtual PC上のWindows7 32bit (VT-x、VT-d共にON)
Superπ(1677万桁) : 04分18秒
・Windows7 64bit単体
Superπ(1677万桁) : 04分01秒
・Windows8 64bit + Hyper-V上のWindows7 32bit
Superπ(1677万桁) : 04分19秒
・Windows8 64bit単体
Superπ(1677万桁) : 04分17秒
いきなり明らかな差が付きました。全く同じ環境に対してVTのON/OFFを切り替えただけで44秒もの差が付いています。ただ、Windows7単体と比較すると結構差が付いている辺りに、Virtual PCの最適化がさほど進んでいないことが表れているともいえます。
一方、何故かWindows8単体ではWindows7よりも大きく劣る結果となっています。この現象については原因は判りませんでしたが、とりあえずは実測値をそのまま掲載します。
Hyper-V環境については、実際の操作感などはVirtual PCよりもワンランク軽快だったのですが、Superπの結果には目立った差は付いていません。ただ、ホストOSが足を引っ張った可能性もあり、ホストOSとの2秒差という部分を評価するべきなのかもしれません。
・VT-dの効果
一方、VT-dで特に向上が期待できるのは、Disk I/O性能です。そこでそれぞれの環境でシステムドライブのSSDに対してCrystalDiskMarkを実行してみました。
まずはWindows7 64bit上で実行した結果です。この値を基準にどの程度低下するかを見ることで、VMM上での性能を判断することが出来ます。
まずはVirtual PC上のWindows7 32bitで実行した値です。
シーケンシャル・ランダムを問わず大幅に落ち込んでいます。この辺りがVMMの体感速度が奮わない原因でしょう。なお、これでVT-dは有効にしています。
そこで今度はHyper-Vの方を検証してみました。VT-dはHyper-V環境でも必須条件となっていませんので、ON/OFF双方の結果を測定しています。
まずはWindows8環境での結果から。
Windows7環境とほぼ同等の結果と言って差し支えないものと思います。
まずはHyper-V上のWindows7 32bitで、VT-dをOFFにした結果です。
一見するとかなり良い値が出ているように見えるのですが、4Kランダムを中心に明らかに落ち込んでいる部分があります。実際の操作感やベンチマーク測定の実行に要した時間など、遅くなっていることがはっきりと認識出る程度でした。
こちらがVT-dを有効にした状態です。Windows8上の環境と全く同等というわけにはいかないものの、かなり肉薄する値は出ています。特に4KランダムがVT-d無効と比較すると大幅に向上していますので、体感速度の向上は明らかです。
実は他にもいくつかのベンチマークを実行してみたのですが、全ての環境で正常に動いたものがなく、結果として採用できるものがありませんでした。特にWindows8のHyper-Vの挙動は予定外でした。以前からWindows Server 2008 R2上のHyper-Vを利用していて、こちらではDirect3Dを使ったベンチマークであってもごく普通に動いていたため、Windows8上のHyper-Vで同じように試そうと思っていたのですが、同じHyper-Vという名称であっても完全に挙動は別物でした。もっとも、これはWindows側の問題であり、Intel VT自体は仮想環境のパフォーマンスアップに貢献してくれたという点に疑う余地がありません。
もう少し明らかに差の付くテストを実施できれば良かったのですが、上記CrystalDiskMarkの結果だけを見ても体感速度の違いは一見してわかるレベルではないかと思います。
ZIGSOWにログインするとコメントやこのアイテムを持っているユーザー全員に質問できます。