VMware仮想化プラットフォームのメモリ管理

仮想化プラットフォームの3つのメモリモード

  • ホスト物理メモリ
    主机物理内存是ESXi在一个物理主机上检测到的内存值,该值是主机实际物理安装的内存值。例如,一台X86服务器配置16根32GB内存,则该主机的物理内存为512GB
  • 仮想マシンの物理メモリ(ゲスト物理メモリ)
    登录虚拟机操作系统可以看到分配给虚拟机的内存,例如创建虚拟机的时候分配4GB内存,则操作系统能识别到4GB内存,这就是虚拟机物理内存
  • 仮想マシン仮想メモリ(ゲスト仮想メモリ)
    虚拟机操作系统分配给应用程序的可用内存,这是虚拟机操作系统映射到虚拟机物理内存的虚拟内存地址空间,是虚拟机操作系统提供给他的应用程序使用的内存地址空间,在非虚拟化环境中也是如此

メモリの3つのモードのしくみ

次の図は、3層のメモリが互いにマッピングされる方法を示しています。仮想マシンの仮想メモリは仮想マシンの物理メモリにマッピングされ、仮想マシンの物理メモリはハイパーバイザーによってESXiホストの物理メモリにマッピングされます。

例:仮想マシンがある場合、仮想マシンでWeChatアプリケーションを起動します。WeChatを実行する場合は、仮想マシンにメモリを要求します。仮想マシンは、WeChatアプリケーションにメモリを提供します。このときのメモリのフローはゲスト仮想ですメモリは、メモリのゲスト物理メモリに適用されます。このとき、仮想マシンマネージャーはゲストの物理メモリを受け取り、ホストの物理メモリからメモリを申請しますアプリケーションが完了すると、WeChatアプリケーションは正常に実行できます。まとめると、ESXiホストは、ホスト上で実行されている各仮想マシンの仮想メモリアドレススペースを作成します。これらの仮想メモリアドレススペースは、ホストメモリアドレスにマッピングされ、仮想マシンの物理メモリとして仮想マシンにマッピングされます。WeChatが使い果たされると、仮想マシンはメモリのこの部分を「空き」としてマークします。現時点では、他のアプリケーションがメモリのこの部分を使用できますが、仮想マシンマネージャは「空き」としてマークされたメモリを気にしません。仮想マシンにメモリが割り当てられました。つまり、ハイパーバイザーが仮想マシンにメモリを割り当てると、仮想マシンに割り当てられたメモリが仮想マシンのオペレーティングシステムによってアプリケーションに割り当てられたのか、解放されたのかを知る方法がありません。したがって、仮想マシンのオペレーティングシステムが仮想マシンの物理メモリを解放すると、ハイパーバイザーは仮想マシンからホストの物理メモリを取り戻すことができません。次の図は、このプロパティを示しています。

これが当てはまる場合、仮想マシンは常にメモリを要求するわけではないが、常にそれを解放するわけではないため、物理メモリがいっぱいになると尋ねる人もいます。仮想マシンによって割り当てられた仮想マシンの物理メモリが完全に占有されている場合、メモリ制限が無制限に設定されていても、ハイパーバイザーは仮想マシンにそれ以上の物理ホストメモリを割り当てません。

仮想マシンのメモリ再利用

メモリ割り当ては簡単にリサイクルできます。メモリがリサイクルされると、ハイパーバイザーは仮想マシンの物理メモリ割り当てと仮想マシン操作のメモリオーバーヘッドをサポートするのに十分な物理ホストメモリを予約する必要があるためです。ただし、日常の作業では、ESXiホストで過度のメモリ割り当てが発生することがよくあります。ESXiでは、透過的なページ共有(透過的なページ共有)、メモリバルーニング(バルーニング)、ハイパーバイザースワッピング、メモリ圧縮(メモリ圧縮)が使用されます)そして、メモリが過剰に割り当てられることを保証する他のメカニズム。

透過的なページ共有

ESXiホストが複数の仮想マシンを実行している場合、これらの仮想マシンは同じアプリケーションまたはコンポーネントをロードしているか、共通のデータを含んでいる可能性があります。透過的なページ共有技術を使用すると、メモリページの冗長なコピーを削除して、コピーを1つだけ残し、残りのメモリを他の仮想マシンに再割り当てできます。

記憶のうねり

上記のように、仮想マシンのゲストオペレーティングシステムがメモリを解放すると、ESXiはホストの物理メモリページを再利用できず、仮想マシンのオペレーティングシステムはESXiホストメモリの実際の使用率を認識しません。ESXiホストのメモリが不足している場合、ホストはメモリ拡張メカニズムを介して仮想マシンの物理メモリページを再利用できます。メモリ拡張をトリガーするドライバは、VMwareツールのインストール時にオペレーティングシステムにすでにインストールされています。ドライバの名前はvmmemctlです。

仮想マシンのオペレーティングシステムのメモリ拡張

ホストの物理メモリが圧迫されており、ホストが仮想マシンから物理メモリを再利用する必要がある場合、ハイパーバイザーはvmmemctlに到達するターゲット値を設定します。ターゲット値を受け取った後、vmmemctlはまず「空き」とマークされますメモリは「バルーンで満たされています」。「空き」とマークされたメモリを満たせない場合、メモリスワップがトリガーされ、リサイクルが必要なターゲット値に達する可能性があります。理想的な状態は、メモリをスワップせずにターゲット値を満たし、仮想マシンのパフォーマンスに影響を与えないことです。メモリスワップ中にスワップ可能なディスクを使用できないようにするには、仮想マシンを構成するときに十分なスワップ領域が必要です。もちろん、メモリ拡張によって回復できるメモリの量に制限を設定したり、メモリ拡張を無効にしたりすることもできますが、メモリ拡張は仮想マシンのオペレーティングシステムのパフォーマンスを保証するために行われる選択であるため、通常は無効にすることはお勧めしません。他の方法はより穏やかなので、メモリ拡張を無効にすることは推奨されません。

メモリ圧縮

メモリ圧縮とは、ディスクにスワップする必要があるメモリページがディスクスワップなしで圧縮されることを意味します。この場合、上記のメモリを拡張してメモリを回復する必要があるときに、「空き」メモリが回復の目標値を満たせない場合、仮想マシンはハイパーバイザーは、メモリをディスクにスワップする前に、圧縮が仮想マシンのパフォーマンスにほとんど影響しないか、スワップが仮想マシンのパフォーマンスにほとんど影響しないかを判断します。すべてのメモリが圧縮に適しているわけではありません。メモリページの圧縮率が50%を超える場合、ESXiホストはメモリを圧縮します。メモリページの圧縮率が50%未満の場合、メモリはハイパーバイザーを介してディスクにスワップされます。

ハイパーバイザーメモリスワップ

ESXiホストが透過的なページ共有、メモリ拡張、メモリ圧縮などのメカニズムを使用してメモリを回復できない場合、ハイパーバイザーメモリスワップが使用されます。メモリスワッピングを実行する場合、ハイパーバイザーは仮想マシンのどのメモリがスワッピングに適しているかを判断しません。つまり、仮想マシンに対するページの重要性を判断しないため、スワッピング用のメモリページがランダムに選択され、仮想マシンが発生します。予測不能な影響、ディスク監査へのメモリスワッピングも、仮想マシンのパフォーマンスに深刻な影響を与える可能性があります。SSDキャッシュスワップは、ESXi 5.5以降で設定して、パフォーマンスへの影響を減らすことができます。

リサイクルにはどのようなメカニズムが使用されていますか?

ESXiホストで使用可能なメモリの実際の量に応じて、ESXiには4つのメモリ状態(高、ソフト、ハード、低)があります。具体的なしきい値は次の表で定義されています:

esxtopコマンドを使用して、

ホストメモリが現在どの状態にあるかを確認できます。次の表に示すように、ステータスは対応するメモリメカニズムをトリガーしてメモリのリサイクルを実行します。

メモリにパフォーマンスの問題があるかどうかを確認するにはどうすればよいですか?

メモリ使用量を表示する方法はたくさんありますが、vSphere Webクライアント、VMware vRealize Operations Manager、またはesxtopコマンドを使用して表示できます。esxtopコマンドを使用して分析するための簡単な紹介を次に示します。

ESXiホストへのSSHログイン、次にesxtopコマンドを入力し、mを入力してメモリページを入力します。デフォルトは5秒に1回更新されます。sを使用して更新間隔を変更できます(sを入力すると秒単位で遅延が表示されます。必要なリフレッシュレートを入力してください。単位は秒、次にEnterを押して確認します)、fを使用して表示するフィールドを選択できます。特定の詳細なコマンドについては、公式マニュアルを参照してください。ここでは、いくつかの重要なパラメーターと判断基準のみを紹介します。

次の画像は、出力スクリーンショット

PMEM / MBです。

サーバーコンピュータのメモリ統計を表示する

VMKMEM / MB

ESXi VMkernelの計算メモリ統計を表示します。ここで、ホストのメモリ状態に注意を払う必要があります。ステータスがソフトの場合は、メモリに注意を払うことを意味し、ホストにメモリプレッシャーがあることを示します。

PSHARE / MB

ESXiページ共有情報を表示する

SWAP / MB

ESXiスワップ使用統計を表示する

r / s ESXiシステムがディスクからメモリをスワップインする速度。この値が0より大きい場合、ホストの物理メモリが多すぎます。ホストはメモリを再利用しようとしますが、このメカニズムはメモリ拡張だけでは満たすことができません。

w / s ESXiシステムがメモリをディスクにスワップする速度値が0より大きい場合、ホストの物理メモリが著しく不足している可能性があります

ZIP / MB

ESXiメモリ圧縮統計を表示する

MEMCTL / MB

curr、vmmemctlモジュールを使用して回復された物理メモリの合計

ターゲット、ESXiホストがvmmemctlモジュールを使用して再利用しようとする物理メモリの総量

max、ESXiホストがvmmemctlモジュールを使用して再利用できる物理メモリの最大量

値が0より大きい場合、またはホストメモリが過剰である場合、または仮想マシンが現在設定されているメモリよりも小さいメモリ制限を設定している場合、ホストは仮想マシンからメモリを再生し始めます。

SWCURリソースまたは仮想マシンによって現在使用されているスワップの量

予想されるリソースプールまたは仮想マシンのスワップ使用量のSWTGT ESXiホストのターゲット

SWR / sはSWAP / MBのr / sと同じです

SWW / sはSWAP / MBのw / sと同じです

SWCUR

メモリスワッピングを使用して現在ディスクにスワップされているメモリの量を表します。値が0より大きい場合、ホストの物理メモリが不足しています。ホストはメモリを再利用しようとしますが、メモリ拡張だけではメモリを満たせません。

キャッシュ米ドル

現在のメモリ圧縮で使用されている圧縮キャッシュの量。0より大きい値は、ホストがメモリ圧縮を実行していて、ホストに十分なメモリがないことを示します

ZIP / s

ホストメモリの圧縮率。値が0より大きい場合、ホストはメモリを圧縮しています。

UNZIP /秒

値が0より大きい場合、圧縮メモリはホストまたは仮想マシンによってアクセスされており、仮想マシンのパフォーマンスが影響を受けます。

おすすめ

転載: www.cnblogs.com/daniellcn/p/12699066.html