前々回の記事で、Windows 版 QEMU(qemu-system-x86_64.exe)を使用して HAXM で VM を動かしてみましたが、性能差がどれくらい出るのかというのをあまり気にしたことがなかったので、確認してみました。
測定条件
ホスト
仮想マシンを動かすホストは下記となります。
- CPU:Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz
- Windows 11 21H2 Build 22000.651
- VMware 16.2.3
- VirtualBox 6.1.34
- HAXM 7.7.1
- QEMU for Windows 7.0.0
ゲスト
ハイパーバイザーは異なりますが、すべて下記の設定となります。
- Ubuntu 22.04 (Kernel 5.15.0-27)
- CPU:3Core
- メモリ:2GB
前回の記事で紹介した Autoinstall でインストールしましたので、同一の設定になっているかと思います。
測定方法
以前の記事では、Unixbench を用いていましたが、測定に時間がかかるので、今回は簡単に測定できる CPU のみに着目します。
今回は比較しませんが、ディスクやネットワークの性能測定を行う場合、IDE や e1000 NIC ではなく、準仮想化・VirtIO などを選定するなど必要になるかと思います。
CPU 性能の測定として、7-Zip を行いました。
今回はシングルスレッドの性能を比較しました。
インストール手順およびベンチマークの実行手順は下記となります。
apt install p7zip-full
7z b -mmt1
このような結果が出力され、最後の値をスコアとしています。
# 7z b -mmt1
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=C.UTF-8,Utf16=on,HugeFiles=on,64 bits,3 CPUs Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz (506E3),ASM,AES-NI)
Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz (506E3)
CPU Freq: 64000000 - - - - - - - -
RAM size: 1942 MB, # CPU hardware threads: 3
RAM usage: 435 MB, # Benchmark threads: 1
Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS
22: 3418 100 3326 3326 | 36862 100 3132 3147
23: 2913 101 2931 2968 | 36550 101 3141 3164
24: 2774 100 2973 2983 | 35904 100 3147 3152
25: 2624 100 2995 2996 | 35122 100 3127 3126
---------------------------------- | ------------------------------
Avr: 100 3056 3068 | 100 3137 3147
Tot: 100 3097 3108
測定結果
数字が多いほど処理性能が高いと言えます。
Hyper-V | ハイパーバイザー | H/s |
---|---|---|
なし | なし(Windows 版) | 5044 |
なし | VMware | 3108 |
なし | VirtualBox | 2897 |
なし | QEMU (HAXM) | 2848 |
あり | なし(Windows 版) | 4650 |
あり | Hyper-V | 3352 |
あり | VirtualBox | 3238 |
あり | QEMU (WHPX) | 3069 |
あり | VMware | 2926 |
まとめ
Hyper-V を有効化すると、VMware のパフォーマンスが低下するだけでなく、ホスト自体もハイパーバイザーの上に乗るのでパフォーマンスが低下してしまいます。
WSL2 を有効化すると性能が落ちることは注意すべきかなと思います。
その一方、QEMU を使用する際は、HAXM ではなく、Hyper-V の機能をしようした WHPX のほうが性能が高いことが分かりました。
前々回の記事 のように Chrome OS Flex を動かしたり、Android Emulator を使用する機会が多ければ、Hyper-V のほうが性能が生かせると思います。
どのようなものを動かすかにもよりますが、何かの参考になればと思います。