Windows11で仮想マシン(Hyper-V, VMware)の性能評価を行います。以前より仮想マシンとしてVMware Player を使用してきましたが、Hyper-Vに移行することにしました。
1. Windows11における仮想マシン
マイクロソフト製の仮想マシンは Windows7 以前は VirtualPC という仮想マシンが提供されていましたが、Windows10からはHyper-V が標準となりました。当初は Win10 ProにのみHyper-Vが搭載され、仮想マシンとして使われていましたが、Hyper-Vの技術を使ってシステムの一部として活用するようになってきました。
1つは Linux 環境のWSL2。主に開発者向けです。WindowsにUbuntuが搭載されるなど昔だったら信じられない事態です。モバイル競争に負け共存の方針にかわった影響でしょう。
2つ目はセキュリティ。OSとは別に仮想マシンでセキュリティ関係を担うことで、ドライバーの安全性を向上させています。
いずれもHyper-Vの技術を使った実装です。前者は開発者・マニア層が使用する程度ですが、後者は Windows11 のPCを購入するとデフォルトでONになっており自然と使っています。つまりWindows11はHyper-Vが必須の状況になっているという事です。Homeエディションには汎用的な仮想マシンとしての Hyper-V は搭載されていませんが、これらの機能はHomeエディションでも使えるのがポイントです。
2. VMware Playerを取り巻く状況
2.1 Hyper-Vとの共存
Intel なら VT-x, AMDなら AMD-v という CPU の仮想マシンへの支援機能がありますが、1つのシステムでしか使用できない制約があります。Hyper-Vが有効になっている昨今のPCでは、Hyper-VにVT-xは専有されています。 以前はHyper-Vと VMware は排他的関係で共存できませんでしたが、マイクロソフトがWHP(Windows Hypervisor Platform)という仮想マシン向けのAPIを準備し VMware Player 15.5 より共存できるようになりました。
VMware は直接VT-x には触れず、WHPを通して仮想マシンを制御することになります。少なからずオーバーヘッドはあるはずです。
2.2 Intel CPUとVMware plyaer との相性
Intel の12世代CPUより、性能重視のP-Coreと効率重視のE-Core のハイブリット型へとシフトしましたが、VMWare Player との相性は最悪です。デフォルトだと E-Core しか割り当てられません。P-Coreを割り当てる方法は見つかっていますが、負荷状況に応じてP-CoreとE-Coreを割り当てる本来の使い方ができません。
Hyper-Vではこのような制約はなく、ホスト・ゲスト全体として振り分けられているようです。ハイパーバイザー方式のメリットなのでしょう。
3. ベンチマーク
という状況から久しぶりにベンチマークをとってみることにしました。
外付けHDD上に、Windows11をHyper-V, VMware player それぞれで構築し、同じバイナリ条件にしました。 ベンチマークで使用したのは以下です。ゲームはターゲットにしていないので GPU 機能は重視しません。
3.1 テスト条件
・7zip ver.23-01
・Crystal Mark 2004 R7
ホストマシンのスペック
デバイス | スペック |
---|---|
CPU | Intel Core i5 1235U ( P-Core x 2 + SMT, E-Core x 8) |
Memory | 16GB |
OS | Windows11 22H2 |
仮想マシンのスペック
デバイス | スペック |
---|---|
CPU | 4コア |
Memory | 6GB |
HDD | 外付けHDD上に確保 |
OS | Windows11 23H2 |
VMware は 3種類の設定で比較します。
名称 | 内容 |
---|---|
WHP | 標準の状態 |
VT-x E | Hyper-Vを無効化してVMware が VT-x を直接制御 |
VT-x P | 上記に加え、P-Core のみで動作するように設定します |
3.2 ベンチマーク結果
3.2.1 7zip
Native | Hyper-V | VMware VT-x P | VMware VT-x E | VMware WHP | |
---|---|---|---|---|---|
7zip圧縮 | 20,260 | 20,136 | 8,259 | 9,892 | 9,200 |
7zip展開 | 21,659 | 21,938 | 7,440 | 9,673 | 9,809 |
hyper-VはNativeと遜色ないパフォーマンスが出ています。
VMware は半分ほどしか性能が出ていません。VT-x でP-Core 指定した設定が速いと予想していたのですが一番悪い成績でした。これは環境要因があります。Core i5 1235U の P-Core は 2個しかないため、P-Core で4コア割り当てるという事は SMT を使うことになります。7zip では P-Core 1個 + SMT より、E-Core 2個の方がパフォーマンスが上ともいえます。
3.2.2 Crystal Mark
Native | Hyper-V | VMware VT-x P | VMware VT-x E | VMware WHP | |
---|---|---|---|---|---|
CPU整数 | 97929 | 94934 | 30905 | 39573 | 36809 |
CPU小数 | 45473 | 48126 | 17089 | 15853 | 13419 |
メモリ | 119653 | 134725 | 51756 | 37302 | 37192 |
HDD | 14270 | 13473 | 52762 | 47901 | 37761 |
GDI | 19734 | 28676 | 6225 | 4451 | 3861 |
DirectX2D | 4328 | 7585 | 63 | 63 | 58 |
OpenGL | 17830 | 3625 | 40051 | 39428 | 38419 |
Hyper-Vの性能の高さはここでも発揮されていて、ほぼNative と遜色ありません。OpenGLだけ極端に性能が低いのは Hyper-Vのビデオドライバの制約か !?
VMWare がここまで性能に差異が出るとは思いませんでした。7zip のところでもふれたように、物理Pコアが2個に、4コアを割り当てたのが不利に働いたのかもしれません。
3.2.3 7zip 2core
検証のため、仮想マシンを2コアにして 7zip を比較してみました。
Native | Hyper-V | VMware VT-x P | VMware VT-x E | VMware WHP | |
---|---|---|---|---|---|
7zip圧縮 | 18,432 | 16,475 | 6,443 | 5,180 | 5,033 |
7zip展開 | 14,477 | 14,079 | 4,871 | 4,822 | 5,008 |
VMware P-Core と E-Core と比べると圧縮で差異があることが分かります。VT-x EとWHP はほとんど差異がありません。 ここでもHyper-Vの圧倒的な性能は揺るぎありません。
4. 結論
・仮想マシンは Hyper-V の性能が高く、CPUやメモリアクセスはネイティブと遜色ない。グラフィックスはいまいち。
・VMWare で WHP をつかってもそれほどパフォーマンスは落ちない。
・Intel 12世代以降のハイブリットタイプのCPUはHyper-V が良い。VMWare を使うなら Ryzen の方が無難です。