ゲストOSのメモリをvmwareに管理させない
VMware が頻繁にディスクアクセスして OS 全体が固まる件 :: Drk7jp
vmwareにはメモリを仮想化して、いらないメモリをディスクにおとすという機能があり、使っていないゲストOSのメモリを解放してくれる機能があります。大変便利です・・・
しかし逆に、メモリをよく使うゲストOSがいた場合、メモリの取り合いになってしまいますので、適切な物理メモリを占有した方が効率よくゲストOSが動きます。
チューニング1
CPU駆動率が高い ゲストOS >> メモリの仮想化解除
CPU駆動率が低い 滅多に使われないゲストOS >> メモリの仮想化OK
ディスクのバージョン管理機能をOFFにする。
vmwareにはゲストOSのバージョン管理機能があり、特定の時間までゲストOSを巻き戻してくれるスナップショット機能があったります。
バックアップ機能としては便利なのですが・・・当然ディスクアクセスが遅くなります。
ゴリゴリディスクを使うWebアプリなんかを、仮想化している時に、こんなことやられたら重くって仕方ありません。
チューニング2
実サービスに近い ゲストOS >> ディスクの設定をadvance>independent,percistentにして占有させる。
インストール試験で何度も巻き戻すOS >> ディスクの設定をindependentにしないで、スナップショット機能を使う
[
ディスクのライトキャッシュをOFFにする
vmwareにはディスクの仮想化機能があって、便利なのですが、アクセス速度が遅くなります。それを補完するためにvmwareのマネージャーがキャッシュをしてくれて、メモリでバッファするので・・・早くなったように見えます・・・
しかし・・・ゲストOSが1Gとか10Gとか100Gの書き込みを行うとどうなるでしょう・・・
そうなんです、大量のディスクキャッシュが発生して・・・ホストOSのCPUが輻湊します・・・その結果、全てのゲストOSが重くなり、さらなる、ディスクアクセス遅延が発生して・・・となり。過度の輻湊を引き起こします。
一般的に、ディスクアクセスへのキャッシュはホストOS ゲストOSともにカーネルが持っています。それに頼って、ディスクキャッシュのメモリ自体はカーネルのメモリに割り当ててあげた方がよっぽど高速に動きます。
チューニング3
実サービスに近い ゲストOS >> ディスクの設定をadvance>write cache OFF
ゲストOSがK単位のディスクアクセスしかしない ・・・>> 使い込んでないからチューニングはいらない
DMA転送OFF
VMwareでSolaris 8@謎の処理系 SunOS 4.1.4
ライトキャッシュをOFFにというのと同じ理由で、ディスクまわりをvmwareに管理させるのは得策ではありません。万が一ATAデバイスを設定した場合はDMAもOFFにしておきましょう。
チューニング4
ATAデバイスのDMA OFF
vmwareはチューニングすれば『できる子』になります。
サーバーを100台200台 作ったりするのは購入コストはいざしらず、管理コストが毎月かかるので、なんとか、削減したい物。その1つの手段としてvmwareは有効です。
また、何度も何度もインストールするインストールの試験の時のOSのロールバック用ツールとしても非常に優秀です。
後者の場合は、基本設定で行けるのですが、前者の場合は多少チューニングしてやらないと重いなぁという印象をもってしまいます。しかし、HDDを沢山つみ、それを直接ゲストOSに管理させ、適切な物理メモリを割り振り、基本的にはCPUの割り振りだけをvmwareにやらせるかたちにするとかなり有効なツールになります。
まぁ、楽しみましょう。