PMPの流儀

我が家の流儀

我が家で気になったことを夫婦で取り上げていきます

MENU

Windows11 仮想マシンを比較(Hyper-V, VMWare)

Windows11で仮想マシン(Hyper-V, VMware)の性能評価を行います。以前より仮想マシンとしてVMware Player を使用してきましたが、Hyper-Vに移行することにしました。

1. Windows11における仮想マシン

マイクロソフト製の仮想マシンWindows7 以前は VirtualPC という仮想マシンが提供されていましたが、Windows10からはHyper-V が標準となりました。当初は Win10 ProにのみHyper-Vが搭載され、仮想マシンとして使われていましたが、Hyper-Vの技術を使ってシステムの一部として活用するようになってきました。

1つは Linux 環境のWSL2。主に開発者向けです。WindowsUbuntuが搭載されるなど昔だったら信じられない事態です。モバイル競争に負け共存の方針にかわった影響でしょう。

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-VVMware は排他的関係で共存できませんでしたが、マイクロソフトが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 の方が無難です。

ということから、仮想マシンの環境を Hyper-V に移行することにしました。