VMWareをはじめ、仮想環境でいろんな環境を試せるようになったことはエンジニアにとって非常に大きい。今まではデュアルブートにして試したり、新しいハードウエアを購入したりといろんな面で負担が大きかったが、スナップショットを使えばいつでもある時点に戻ることができるし、環境のコピーもファイルベースになっているから開発側としても保守をする立場から見ても非常に運用が簡単である。
ただ、万能な仮想環境にみえるが、最近VMWare Server 2.0を使っていてやけに遅く感じることがある。ホストOSのCPUやメモリはほとんど使われていないのにハードディスクのアクセスがやけに多いのだ。そのせいで、ゲストOSがビジーの場合には、ホストOSもフリーズ気味になることがある。
調べてみるとゲストOSでディスクアクセスがされた場合に、ホストOSにて管理しているハードディスクのファイルに直接読み書きがされてしまうために、特に書き込み頻度が多い環境だと、断片化が発生してしまう。そのせいで、運用時間が長くなればなるほどどんどん遅くなるといった現象が発生するらしい。(自分はてっきりメモリに格納しているものだと思っていたのだが。。。)
これを改善するためには、VMXファイルに
host.TSC.noForceSync = “TRUE”
mainMem.useNamedFile = “FALSE”
MemTrimRate = “0”
を設定してあげればよいらしい。デメリットとしてはレジュームする際に時間がかなりかかるようになってしまうことだ。LinuxOSではうまく機能してくれないという情報もあり、簡単に見える仮想環境も、実はパラメータチューニングが重要なのだと改めて思い知らされた。
そのほか、ゲストOSがWindowsの場合にはハードウエアアクセラレータが無効になっているために描画が遅くなるといった問題があるので、次の手順にて設定変更することでゲストOSの応答性能が改善される。
1.画面のプロパティ – 設定タブを開き詳細設定ボタンをクリック
2.トラブルシューティングタブを開きハードウェアアクセラレータを最大にする
いずれもVMWare社の情報ではないので、実稼働している環境に試す場合には、必ずテスト環境にて動作を確認してほしい。