【お仕事】Hyper-V等の仮想環境でゲストの動作が遅い時【仮想マシン】
個人的にHyper-VやれVirtual Boxやれハイパーバイザ使う機会があるんですが、お仕事で検証する時にもよく使います。
ただ、ホストのマシンスペックがしょぼいPCでやるときって、ゲストがどちゃくそ遅いことが良くあります。
そんな時に、どこがボトルネックになりやすいかを紹介してみます。(経験上の主観満載)
CPUとメモリ
CPUとメモリはゲストで確認します。まあ仮想マシン関係なく共通ですがね。
[タスクマネージャー] - [パフォーマンス]タブで見ましょう。
CPU、メモリが90%以上が続くようだと要対応かな?まあ必要に応じてもっと余裕が欲しければ80%以上とかで考えましょう。
CPUなら[プロセッサ]、メモリは[メモリ]を増やしましょう。
ただし増やしすぎてホストが足りなくなるということがないようにしましょう。
ディスクアクセス
仮想環境が遅いと相談を受けるとき、経験上は原因の9割が「ディスクアクセス」です。
ディスクアクセスが原因かどうかは、ホスト側で確認できます。
[タスクマネージャー] - [パフォーマンス] を開いてみましょう。
上記の例だと「ディスク 0 (C: D:)」「ディスク 1 (E:)」がありますね。
この場合、このPCではCドライブ、Dドライブが「ディスク 0」という物理的なドライブに配置され、Eドライブが「ディスク 1」に配置されていることになります。
ここでアクティブな時間が継続して「100%」に達している状態が続いていると、ディスクが処理しきれていない状態と考えられます。(本格的にみるなら別のところも見ますが今回は省略します)
最近だとディスクがSSDだったりするので構成によりけりですが、仮想マシンはディスク領域を多く使用するので、必然的にホストのディスク領域を多く確保する必要があります。よくあるのはCドライブは少ないからEドライブに全部ゲストを配置しよう~等がありますね。
このとき、複数台構成しているゲストを物理的に1つしかないディスク領域に配置してしまうと、ディスクアクセスが追い付かずに、メモリやCPUに余裕があってもゲストの動作が非常に遅くなります。
↓よくあるのはこんな状態ですね。
これを
↑のように変更することで、結果的に"物理的なディスク毎"に処理する情報量が減るので、余裕が生まれゲストの処理が速くなります。
※当然ホストのOSもあるので可能な限り、物理的に分けたほうが早くなります。上記だと大半がCドライブにホストのOSがあるので、ゲストAと物理的には同じ場所となり遅くなります。
一般的に、ディスクドライブの処理速度はSSD>HDDなので、SSD上にゲストを配置したほうが早くなる可能性はあります。
まとめ
- ディスクアクセスを確認してみる。
- ディスクアクセスが問題なさそうであればCPUやメモリを確認してみる。
ほかにもネットワークだとか様々な要因がありますが、共通した箇所として確認してみてください。
-余談-
・クラウドでサーバー立てたいけど個人や中小企業だとお金なくてできない~なんてあるある話。