読者です 読者をやめる 読者になる 読者になる

VMwareを使う勘所

VMwareを使う上で、いくつかポイントがあるので今更ながら自分用のメモとしてまとめておく。

メモリ関連のチューニング

一番パフォーマンスに影響するチューニング。
仮想環境を作ったら、いの一番にこれをコピペする。

構成ファイル(vmxファイル)をテキストエディタで開いて下記を追記する。

mainMem.useNamedFile= "FALSE"
MemTrimRate = "0"
sched.mem.pshare.enable = "FALSE"
prefvmx.useRecommendedLockedMemSize = "TRUE"
MemAllowAutoScaleDown = "FALSE"

以下、主なものの説明する。

mainMem.useNamedFile= "FALSE"

標準ではゲストOSのメモリ内容をvmemファイルに出力するが、それを使用しないように設定する。

MemTrimRate = "0"

メモリ割り当てを全て実メモリに割り当てる設定。


他の設定はオマジナイとして書く。

当然のことながら、ゲストOSに割り当てたメモリを実メモリに展開できないとアウト。
ホストのメモリを潤沢にするか、ゲストOSに割り当てるメモリを緻密に計算すること。

ディスク容量関連のチューニング

仮想OSを使用していると徐々にディスクファイルが大きくなる(可変長にしている場合)。
時々最適化して圧縮すると良い。

今度はゲストOSからの操作で、コマンドプロンプトを立ち上げて、ゲストOSにインストールされているVMware Toolsの下記コマンドを実行する。

"C:\Program Files\VMware\VMware Tools\VMwareToolboxCmd.exe" disk shrink C:\

Dドライブを圧縮するなら

"C:\Program Files\VMware\VMware Tools\VMwareToolboxCmd.exe" disk shrink D:\

対象のドライブを表示したいなら

"C:\Program Files\VMware\VMware Tools\VMwareToolboxCmd.exe" disk list

実行にはかなりの時間がかかるのと、ホストOSのディスクを一時的に大量消費するので、時間とディスクにゆとりがあるときに実行する。
(ホストOSのディスク容量がなくなったから実行しようとしても、容量オーバーで実行できなかったのは自分)


ちなみにLinuxの場合は

sudo vmware-toolbox-cmd disk shrink /

ドライブの表示は

sudo vmware-toolbox-cmd disk list


Macの場合は

sudo /Library/Application\ Support/VMware\ Tools/vmware-tools-cli disk shrink /

ドライブの表示は

sudo /Library/Application\ Support/VMware\ Tools/vmware-tools-cli disk list

でも手元にLinuxMacもないから試していない。

ドラッグアンドドロップ領域の削除

ゲストOSにファイルをコピーするのに、ゲストOSにファイルをドロップしてコピーするが、それは一時的にゲストOSの下記にコピーされる。

C:\Users\%ログインユーザー%\AppData\Local\Temp\VMwareDnD

「%ログインユーザー%」はユーザーごとに読み替えること。

ゲストOSのシャットダウン等、タイミングを見て消してくれるらしいが、たまに残ったままなので気になった時に消すと良い。
前述のディスク容量関連のチューニングをする前には必ず消すこと。
ここが残ってたら圧縮の妨げになる。

ディスクを読み取り専用にする

構成ファイル(vmxファイル)をテキストエディタで開いて下記を追記する。

scsi0:0.mode = "independent-nonpersistent"

指定したディスクとパーティションを「読み取り専用」にして起動してくれる。

UUIDを常に更新する/更新しない

仮想環境には必ずUUIDが割り当てられる。
このUUIDは下記のページによると「物理コンピュータの識別子と仮想マシンの構成ファイルのパスを基に決められます」とあるので、仮想環境を別のPCに移動すると起動時に「この仮想マシンは移動またはコピーされた可能性があります。」とメッセージが表示されて移動したのかコピーしたのか問われる。
この時に「コピーした」と答えると新たなUUIDが生成され更新される(併せてMACアドレスも生成される)。
「移動した」と答えるとUUIDは更新されない。

VMware KB: 移動した仮想マシンの UUID の変更または保持

このメッセージ出力を抑制して常に「コピーした」とするか「移動した」とするかの制御が構成ファイル(vmxファイル)の「uuid.action」の値で制御出来る。

構成ファイルのパスを変更した時にUUIDを常に更新する場合は、構成ファイル(vmxファイル)をテキストエディタで開いて下記を追記する。

uuid.action = "create"

逆に構成ファイルのパスを変更してもUUIDを更新しない場合は、構成ファイル(vmxファイル)をテキストエディタで開いて下記を追記する。

uuid.action = "keep"