はじめに
VMware の仮想環境では、物理的なメモリが限られている場合でも、より多くの仮想マシンを動作させるための独自のテクニックがいくつかあり、その一つがメモリバルーニングです。この記事では、その概要と確認方法を紹介します。
メモリバルーニングとは
メモリバルーニングは、VMware ESXi ホストが物理メモリの不足を認識したときに発動する、メモリの再配分手段です。VMware のバルーニングは、アクティブではないメモリページを取り戻すことで、他の仮想マシンで使用可能なメモリを増やします。これは特に、ホストがオーバーコミット状態にある場合(つまり、合計仮想マシンのメモリ要求が物理メモリの合計を超えている場合)に有用です。ただし、バルーニングが頻繁に発生すると、パフォーマンスに影響を与える可能性があるため、注意が必要です。
具体的には、以下のような工程を含みます:
バルーニング:VMware Tools に組み込まれた特殊なデバイスドライバであるバルームドライバが、仮想マシンのゲスト OS 上で動作します。ホストがメモリ不足の状況に陥ったとき、このドライバはゲスト OS から「不要な」メモリを「膨らませ」(つまり、「バルーニング」)ます。
メモリ再配置:バルームドライバにより「膨らまされた」メモリは、ホストに再配置され、他の仮想マシンで使用されます。
これにより、VMware は物理的なメモリリソースが制限された状況でも、複数の仮想マシンの運用を支えることが可能となります。
メモリバルーニングの確認方法
メモリバルーニングの状況を確認するには、VMware の管理コンソールやコマンドラインを使用する方法があります。
管理コンソールを利用する場合
VMware vSphere では、メモリバルーニングを確認することが可能です。具体的な手順は以下の通りです:
vSphere Client を開き、[ホストとクラスター]をクリックします。
左側のパネルで、確認したい仮想マシンを選択します。
- [パフォーマンス]タブをクリックし、[詳細…]を選択します。
- [チャートオプション]で、[カウンタ]を[メモリ]に設定します。
- [詳細メトリクス]の下で、[バルーン]を選択します。
- [OK]をクリックすると、バルーニングの活動が表示されます。
このチャートにより、メモリバルーニングがどの程度行われているか、またその影響を確認することができます。一般的には、メモリバルーニングが頻繁に行われる場合は、ホストに対するメモリの要求が高いことを示しており、その場合は追加のメモリリソースを検討するか、メモリ使用量を最適化する必要があります。
コマンドラインを利用する場合
SSH 経由でESXi ホストに接続した後、以下のコマンドを入力します:
esxcli sched stats get -t mem | grep balloon
このコマンドは、各 VM のメモリバルーニングの状態を示す統計情報を提供します。”balloon” という語を含む行を抽出するため、grep コマンドを使用しています。
“balloon”という語が表示される各行は以下の情報を提供します:
max
:バルーニングが発生したときの最大メモリ量(MB)min
:バルーニングが発生したときの最小メモリ量(MB)count
:バルーニングが発生した回数balloon
:現在バルーニングされているメモリの量(MB)
バルーニングが頻繁に発生する場合、それはメモリが不足している可能性を示しています。その場合、より多くのメモリをホストに追加するか、または VM の数を減らすなどしてメモリの利用を最適化することを検討する必要があります。
以上