【R】Shiny Server構築にあたってVirtualBoxとDockerでオーバーヘッドの比較
目的
現在は古いPCにUbuntu 18.04 DesktopとR 4.0.3をインストールしてShiny-Serverを動かしていますが、来年で10年経過するPCのためバックアップ運用の体制を整えたいと思っています。その際、実機にOSインストールから環境構築は時間がかかるため、仮想環境かコンテナで復旧を楽にしたいと考えました。
ただ、以前Windows10 + VirtualBoxでShiny-Serverを動かしていた時は非常に動作が遅かったので、仮想化は難しいと考え、オーバーヘッドが少ないと言われているDockerならどうか?と言うことで予備実験をしました。
条件・方法
- ハードウェア:CHUWI CoreBox
CPU:Core i5-8259U 4コア8スレッド(Passmark Average:8133, Single Thread Rating:2246)
メモリ:16GB - ベンチマークプログラム:R-benchmark-25.R
- システム条件
1.Windows11(RGUI)
2.Windows11 + VirtualBox(Ubuntu 20.04 Server)
3.Windows11 + WSL2 & Docker Desktop(Ubuntu 20.04) - R Version
1.R 4.1.3(Windows11) or R 3.6.3(Ubuntu 20.04)
2.Microsoft R Open(MRO) 4.0.2
以前の比較からハードウェア・システムとも条件が変わっています。とりあえずR-benchmarkの実行時間だけさっくり比較なので、Rのバージョンもこだわらずaptでインストールしました。
方法は、RコンソールからR-benchmark-25.Rの実行時間(Total time for all 15 tests)を比較します。
ついでに、以前Windows10のMROではプロセス数が増えると実行時間が極端に延長したので、改めて検証します。
環境構築
結果
VirtualBoxとDockerの比較
条件 | システム | R version | 実行時間 |
---|---|---|---|
1-1 | Windows11 | R 4.1.3 | 40.93 |
1-2 | Windows11 | MRO 4.0.2 | 4.30 |
2-1 | Win11 + VirtualBox | R 3.6.3 | 40.05 |
2-2 | Win11 + VirtualBox | MRO 4.0.2 | 7.82 |
3-1 | Win11 + Docker | R 3.6.3 | 37.00 |
3-2 | Win11 + Docker | MRO 4.0.2 | 4.15 |
プロセス数増加の影響
条件 | システム ・ R version | Proc1 | Proc2 | Proc4 | Proc6 |
---|---|---|---|---|---|
1-2 | Windows11 ・ MRO 4.0.2 | 4.30 | 5.14 | 10.18 | 29.49 |
VirtualBoxを使っても、Windows11と変わらない速度で実行できています。MRO 4.0.2は若干遅くなっていますが、以前の検討のような極端な速度の低下はありません。
また、プロセス数の増加に関しても実行速度の低下はありません。
結論
VirtualBoxでもほとんど速度低下が無かったので、わざわざDockerを使わなくてもいいかと考えています。
Dockerは環境構築が大変だったのとまだ理解が足りないため、VirtualBoxでUbuntu Serverの方が運用の手間はかからないと思っています。
WSL2導入後にVirtualBoxを使うには機能の無効化が必要です
また、Windows環境で同時プロセス数を増やすとMROの実行時間が長くなった理由は、やはりOSの問題だろうと考えています。とは言え、そこまで速度が必要なアプリ(業務)では無いため、安定性重視で通常のRを使うことは変更なしにします。
残る疑問点
VirtualBoxでも速度低下が無かった事
考えられる要因
1.PCの性能向上(CPUの世代?)
2.Windows(10 → 11)、VirtualBox(6.1.xx → 6.1.14)の最適化
3.ゲストOSの変更(Ubuntu 18.04 Desktop → Ubuntu 20.04 Server)
すぐに確認できそうなのは3.ゲストOSの変更です。Shiny-ServerインストールにはGUIで使うライブラリも必要だった(と思う)ため、ゲストOSについては今後確認して追記します。
追記
ゲストOSをUbuntu 20.04 Desktopに変更しても実行時間は41.80と変わらなかったため、ゲストOSは関係ないようです。
ディスカッション
コメント一覧
まだ、コメントがありません