この記事は 鈴鹿高専 Advent Calendar 2019 にも登録しました。
なんで仮想マシン比べっこをしようと思ったのか
ベンチ結果だけ見たい方は本題まで飛ばしてください。
2019年度から私が在学する高専の実験室PCが Windows + Scientific Linux のデュアルブートから Windows in VirtualBox の仮想マシン運用に変更になりました。(SLはサポート終了のためUbuntu Desktop)
授業や実験で使用するためWindowsとUnixの両環境が必要です。
技術職員の方に直接聞いたわけではないですが、VirtualBoxの選定理由としては
- 無料
- 学生個人のPC上にも環境を作成できる
- 学生が間違えて環境を破壊しても学生自身で簡単に復元できる
- メンテナンスが容易
こんな感じかなと思います。
実際使ってみたところ、動作もスムーズで何の問題もありません。
ただ、VirtualBoxはほかの仮想マシンに比べて遅いというのもよく聞きます。機械学習とかで顕著に差が出るかもしれません。
そこで今回はUnixBenchでどれだけ遅いのか確認してみます。
対象仮想化環境
ここからが本題
以下6つの環境を比べっこしました。
- VirtualBox 6.0
- VMware Player 15.5.1
- WSL
- Docker for Windows 2.1.0.4
- Hyper-V
- 実機(参考)
きりがなくなるので環境ごとのチューニングは行っていません。デフォルトのままベンチマークをとります。
ベンチマーク条件
マシンはや条件は以下の通り
ホストOS | Windows10 Pro ver.1909 64bit |
---|---|
ゲストOS | Ubuntu 18.04.3 Desktop版 |
CPU | Intel Core i5-4300U |
RAM | 8GB (Dual Channel) |
ディスク | mSATA SSD |
ただしWSLに関してはMicrosoftStoreのイメージ、Dockerはdocker pull ubuntu:18.04 で降ってきたイメージを使用しました。(当然Desktop版ではないです) |
ベンチマークソフトはUnixBench 5.1を使いました。
時間短縮のために以下のベンチを1Coreで3回平均を計測しました。
- Dhrystone(CPU性能依存)
- Pipe Throughput(OS,CPU性能依存)
- System Call Overhead(OS,CPU性能依存)
- File Copy 256 bufsize(OS,ディスク性能依存)
- File Copy 4096 bufsize(OS,ディスク性能依存)
各ベンチの詳細は『UnixBenchでベンチマーク (IDCFテックブログ) 』がわかりやすいです。
ベンチマーク結果
演算速度と読み書き速度で分けます
演算速度
1秒間に何回処理できたか [ Instructions Per Second ]
Dhrystone | Pipe | Overhead | |
---|---|---|---|
Virtualbox | 4184191.2 | 472103.4 | 590836.4 |
Vmware | 33836598.5 | 1034379.2 | 763780.3 |
WSL | 34550185.7 | 266246.9 | 285900.8 |
Docker | 29144076.9 | 909239.1 | 589965.1 |
Hyper-v | 34252477.3 | 1019804.3 | 774552.3 |
実機(参考) | 34644970.6 | 1088138.4 | 796282.7 |
読み書き速度
単位はMbps
||File Copy 256|File Copy 4096|
|:--|--:|--:|--:|
|Virtualbox|71750|970279|
|Vmware|193158|1782309|
|WSL|27106|331243|
|Docker|150723|1553828|
|Hyper-v|191226|1897577|
|実機(参考)|195891|2039428|
考察&結論
VirtualBoxは遅いけど手軽。Dhrystonegaが極端に低いのはチューニングすれば改善するらしい
Vmwareは速い。さすが仮想化市場トップランナー
WSLはI/Oが残念。WSL2に期待
Docker for Windows は普通。不具合が多い気がする
Hyper-Vも速い。さすがハイパーバイザー型
結論としては、学校のVirtualBox導入は正解だと思います。技術職員の方々、いつもありがとうございます。