Hyper-V はサーバ OS(Windows Server 2008 とか 2003 とか)を仮想化するのに主眼が置かれていて、クライアント OS(Vista とか XP とか)は置き去りにされている感じが否めませんが、「それにしてもこれはパフォーマンス悪すぎだろう!!」と思うことがたまにあります。
そんな時は以下の 5 つの点をチェックしてみてはいかがでしょうか。
1. なんといっても Integration Components をインストール
つい忘れがちですね。特に、新しい仮想マシンを作って OS をインストールした直後など。
インストールするには、仮想マシンに Connect して、Virtual Machine Connection ウインドウの Action メニューから Insert Integration Services Setup Disk を選択します。ゲスト OS 上で CD-ROM が認識されますので、インストールしちゃいましょう。
Integration Components をインストールしたかどうか忘れてしまって確認したい場合は、ゲスト OS 側でデバイスマネージャを開いて、[システムデバイス] の下に Virtual Machine Bus という項目があれば良いようです。
2. Hyper-V Manager を閉じる
これが意外な盲点ですが、ホスト OS 上で Hyper-V Manager を開きっぱなしにしていると、ゲスト OS のパフォーマンスがかなり悪化します。体感速度で 50% かそれ以上パフォーマンスが落ちるように感じます。
私の様なパフォーマンスモニターマニアには Hyper-V Manager の CPU Usage とお別れしないといけないのは辛いのですが、Hyper-V Manager は必要な時だけ開くようにしましょう。
Hyper-V Manager をスタートアップに登録するなんて、もってのほかですよ!!>自分
3. 一度にたくさんのゲスト OS に Connect しすぎない
これはまあなんとなく納得できますね。Connect して表示されるゲスト OS の GUI の画面は、ゲスト OS 側でCPU を使って描画しているのだそうです。
ゲスト OS の GUI を使いたいときは、リモートデスクトップを使ったほうがいくらかマシだそうです。(ホスト OS 側のグラフィックカードのサポートを受けられるので)
4. ネットワークカードの設定(TCP Offload を OFF)
これは Intel の NIC を使っている場合にしか関係しないのかもしれませんが、TCP の Offload が Enable になっているとかえって遅くなってしまうことがあるようです。
チェック方法は以下の通り:
ホスト OS 側で Network Connections(ネットワーク接続)を開き、[Microsoft Virtual Network Switch Adapter] と表示されている NIC のプロパティを開きます。Configure... を押して、Advanced タブを開き、TCP Large Send Offload (IPv4) が Enable になっていたら、Disable にしてみてください。
Windows Server 2008 を Server Core で動かしている場合(GUI がない場合)は、レジストリを書き換える必要があるそうです。
5. メモリ割り当ては足りてますか?
これも基本的な内容ですが、ゲスト OS に対するメモリの割り当てが足りてないとスワップが頻発して、パフォーマンス的には全く使い物にならなくなります。
もちろんホスト OS 側にも十分なメモリを残しておいてあげる必要があります。
タスクマネージャなどを見ながら、割り当てを決めると良いと思います。
絶対的にメモリ量が不足している場合は、あきらめてゲスト OS の数を減らすか、物理メモリの搭載量を増やしましょう。
他にも、仮想ディスクは IDE よりも SCSI にしたほうがよいとか、細かな最適化テクニックはいろいろあると思いますが、私の経験からは上記 5 点のインパクトの大きさは半端じゃないので是非チェックしてみてください。
Robert Larson Janique Carbone Windows Virtualization Team at Microsoft
Microsoft Pr
売り上げランキング: 101138
Rand Morimoto Jeff Guillet
Sams
売り上げランキング: 76940
参考にしたサイト: