web-dev-qa-db-ja.com

VMwareのメモリ使用量はLinuxとは異なります

VMwareで新しいシステムを実行していますが、メモリの使用量を理解しようとしています。

VSphereクライアントでは、335,544KBを使用してアクティブであることが示されます。

enter image description here

ただし、Linuxでは3,146,148KBを使用していることが示されています。

root@PFDEV-SVN:~# free -k
             total       used       free     shared    buffers     cached
Mem:       4118636    3146148     972488          0     477216    1268364
-/+ buffers/cache:    1400568    2718068
Swap:      6040400          0    6040400

なぜこれがそんなに違うのですか?私はこれを間違って読んでいますか?

これはUbuntu9.10であり、vmwareツールがインストールされておらず、ESXiサーバーで実行されています。

4
gregmac

メモリ管理とアクティブメモリワーキングセットサイズの計算のトピックに関する 詳細なホワイトペーパー があります。

基本的には、ゲストが常に割り当てられているすべてのメモリを使用しているわけではないという事実に要約されます。代わりに、特定の範囲のメモリのみが特定の期間に「アクティブ」と見なされ、物理メモリをオーバーコミットした場合、「非アクティブ」メモリがスワッピングの候補になります。ホスト内のメモリ使用量と大まかに一致させたい場合は、「消費された」メモリを確認する必要があります(複数のVM間で共有されるメモリページによる偏差が発生する可能性があります)。

7
the-wabbit

それらが一致しないことを望むでしょう。仮想化の目的の1つは、多くのOSを1つの物理システムに常駐させることです。ハイパーバイザー(ESXやhyper-vなど)を構築するときに注意することの1つは、オペレーティングシステムが実際に割り当てられたRAMのすべてを使用するわけではないことです。ハイパーバイザーはそれに応じて他のOSで物理RAMを利用できるようにし、利用可能なRAMの量を「オーバーコミット」できるようにします。オーバーコミットの欠点は、各OSが実際に割り当てられたRAMの量を使用する状況に遭遇した場合、パフォーマンスが低下することです。

1
Jim B