VMWareのディスクアクセスをチューニングする

参考: drk7.jp - VMware が頻繁にディスクアクセスして OS 全体が固まる件

VMWare 6以降、仮想マシンのメモリ割り当てを、固定ではなく空き物理メモリをホストに返すようになっており、このとき仮想マシンスワップが発生し(仮想マシン上のOSでスワップが発生するという意味ではない)てパフォーマンスを落とすようです。

この機能をDisableにもでき、ホストのメモリが十分な場合パフォーマンス改善が期待できるのですが、私の環境の場合ちょっと微妙だったので今回は保留します。ただし、有用な情報だったので転載させて頂きました。

85 :Be名無しさん :2006/09/07(木) 11:56:11
GSXServerからVirtualServerにバージョンアップしたらやたらと遅くなって
しまったんですが、何か原因わかる方いらっしゃいますでしょうか。

バージョン : VMWareServer 1.0.1
ハードウェア : Opteron Dualcore × 2
OS : WindowsServer2003 Enterprise Edition
メモリ : 16GB
ゲストOS : 8台(WindowsXP4台、Windows2003Server4台)

ゲストOSを起動しVMWareConsoleから確認すると各ゲストOSが起動後も頻繁に
HDDへアクセスしているようで、これが原因かと思います。
全ゲストOSが何らかの動作でHDDへアクセスしていますがメモリは1GB〜2GB
を割り当てているためゲストOS内のメモリ不足ではないようです。

ホストOSのタスクマネージャでメモリの使用量をモニタしていると以下の
ような動作をしていました。
1.ホストOSが起動(ゲストはまだ起動していない状態) > 500MB程度

2.全ゲストOSが起動 > 14GBほどに増える
 ちなみにGSXServerの時は物理メモリ内におさまっていたのメモリは
足りていると思います。
 この状態ではまだHDDへのアクセスは頻繁ではないです。

3.ゲストOSが起動して数分立つとHDDへのアクセスが始まる。
 4つ5つ目のゲストが起動した辺りでやたらHDDへのアクセスが増えます。
 ゲストOS内のタスクマネージャを見ると負荷がほとんどないのでホスト
OSからのアクセスのようです。

4.ホストOSのタスクマネージャを再度確認するとメモリの使用量が徐々
に減少していき、最終的に3.5GBほどになる。
 このことからゲストOSで使用していない余分なメモリを開放している
のではないかと推測しています。


86 :85:2006/09/07(木) 11:58:18
続き・・・
・ホストのメモリ割り当て Home>ConfigureHost>Memory内で
 「Reserved Memory」>「14745MB」
 「How should the system allocate memory for virtual machine.」
 >「Fit virtual machine memory into reserved host RAM」変更後再起動も行いました。

・起動アカウント Virtual Machine Setting > Startup/Shutdown
 This User > Administrator/PW

・その他 Virtual Machine Setting > Advanced >Settings
 ここはすべてチェックをはずしています。

別の人に聞いてみたところホストのメモリが足りない際にゲストOSの空き
メモリを使うということを聞きました。
なので「Reserved Memory」の容量を若干減らしてホストOSで使えるメモリ
を増やしてみたのですがこちらも変化がありません。

起動後、HDDのアクセスが始まるとホストOSのメモリ使用量(PF容量)が徐々に
少なくなっていきHDDへのアクセスが止まるとメモリの使用量に大きな変化が
なくなります。この状態なるとやっと実用に耐える速度で動き始めます。
こうなるまで起動してから約3時間。
GSXServerのころはホストOSのメモリ内にゲストOSに割り当てたメモリが常駐していました。
(タスクマネージャのグラフを見ると目盛りの使用量が10数GBで横ばいになっている状態)

しかし現在はゲストOSに割り当てたメモリが何故か解放され、その結果HDDからの読み
こみが増えて動作が遅くなっているという状態だと思われます。
(タスクマネージャのグラフを見ると目盛りの使用量が10数GB→3GB強へ下降する形)
より多くのゲストをというのならこちらの方がいいんでしょうが、メインメモリ内
を専有させてパフォーマンス優先で使いたいのですが・・・
長くてすいまっしぇん。


88 :85:2006/09/08(金) 05:41:27
自己レスです。
C:\Documents and Settings\All Users\Application Data\VMware\VMware Server\config.ini
内に
mainMem.useNamedFile = "FALSE"
としてVMEMを使わないようにしたら直りました。
VerUp前のGSXの時のconfig.iniも取ってあるんですが、確認したら mainMem.useNamedFile
の記述がありません。ということは
GSXServer・・・・デフォルトでVMEM使わない
VMWareServer ・・デフォルトでVMEM使う
という設定なのかな?

140 :Be名無しさん :2006/10/18(水) 20:59:42
>>88
Vmware Server 1.01 を使っています。
クリーンインスコした2003 R2 64bit版に入れました。
やはり、ゲストが使用するvmware-vmxプロセスのメモリ消費量が
徐々に減っていき、ホストのHDDが、ホスト、ゲストともに
アクセスがないときでもやたらカリカリいうので気にかかっていた
のですが、デフォルトではvmemを使うっぽいです。
Workstation 4.5 でテストしている環境ではゲストはメモリを
開放せず、320MBのRAMならホスト上で10%増しぐらいの350MB程度の
メモリを消費しつづけます。
Serverではこれが徐々に減っていきます。
十分なメモリがある環境ではこれがかえってうざいのです。
設定ファイルを直接書き換えなくても、GUI上から設定できる
オプションならわかりやすかったのですが、これにしばらく悩まされ
ました。


144 :Be名無しさん :2006/10/19(木) 12:36:52
140です
mainMem.useNamedFile = "FALSE" だけでは仮想マシンが物理メモリを開放
してしまうようで、仮想マシンのAdvancedオプションで
disable memory page timing にチェックをいれるとよいみたいです。
このオプションが無効だと、
vmemを使わい場合でも、ホスト側のpagefile.sys にスワップしてしまうの
でしょうか? タスクマネージャでみると
コミットチャージの合計量は多いのに、メモリ使用量はすくなかったりします。