NETWORK ENGINEER BLOG

Tips and Reviews for Engineers

メモリのバルニーングについて

バルーンニングの概要

仮想マシンで、アイドル状態のメモリ量が多いサーバから、メモリを解放して、別の仮想マシンに割り当てる機能です。具体的には、VMware Tools をインストールした際、仮想マシンに実装されるバルーンドライバが、以下のような処理順序で機能します。

  1. ホストのメモリに余裕がある場合、VMkernel は、バルーンを発動させません。
  2. ホストのメモリに余裕がなくなってくると、VMkernel はバルーンを発動させ、未使用乃至、アイドル状態の仮想マシンメモリを優先的に選択し、メモリを負荷を発生させます。発生させた負荷分は、ホストに返却され、ホストは別の仮想マシンにこのメモリを割り当てます。
  3. バルーンが発動した仮想マシンは、最適なページをスワップアウトし、メモリの負荷に対応します。
  4. メモリの負荷が解消されると、バルーンニングは無効となり、ページをメモリにスワップインします。
resxtop を使用した状態監視

resxtop を使用して、メモリの統計上を確認する事が可能です。
resxtop を実行後、「m」を入力します。仮想マシンのみ表示するには、「V」と入力します。

10:35:05am up 1 day  9:04, 417 worlds, 1 VMs, 1 vCPUs; MEM overcommit avg: 0.00, 0.00, 0.00
PMEM  /MB:  4095   total:  1068     vmk,   732 other,   2294 free
VMKMEM/MB:  4077 managed:   244 minfree,  2794 rsvd,   1282 ursvd,  high state
PSHARE/MB:    52  shared,    43  common:     9 saving
SWAP  /MB:     0    curr,     0 rclmtgt:                 0.00 r/s,   0.00 w/s
ZIP   /MB:     0  zipped,     0   saved
MEMCTL/MB:     0    curr,     0  target,   374 max

     GID NAME               MEMSZ    GRANT    SZTGT     TCHD   TCHD_W MCTL?   MCTLSZ  MCTLTGT  MCTLMAX    SWCUR    SWTGT   SWR/s   SWW/s  LLSWR/s  LLSWW/s
  522350 vMA               600.00   586.10   610.10   186.00    78.00     Y     0.00     0.00   374.01     0.00     0.00    0.00    0.00     0.00     0.00

主なメトリックの概要は、以下のとおりです。

  • 「PMEM」:ホストの物理メモリの総容量(MB)
  • 「VMKMEM」: VMkernel の管理対象メモリ(MB)
  • 「state」: high、soft、hard、low のいずれかになります。*1
  • 「MEMCTL/MB(curr)」:バルーンにより、再利用されている物理メモリの総容量(MB)
  • 「MEMCTL/MB(target)」:バルーンドライバを使用して、再利用しようとしている物理メモリの総容量(MB)
  • 「MEMCTL/MB(max)」:バルーンドライバを使用して、再利用可能な物理メモリの最大総容量(MB)
  • 「MCTL?」:バルーンドライバが仮想マシンにインストールされているかどうか。
  • 「MCTLSZ」:バルーンドライバにより、他の仮想マシン用に保持されている物理メモリの容量(MB)
パフォーマンスモニタを使用した状態監視

チャートオプションのカウンタの選択から、「バルーン」を選択します。
f:id:FriendsNow:20141221231104p:plain

バルーンの状況をグラフで確認できます。
f:id:FriendsNow:20141221231158p:plain

*1:high 以外は、十分な未使用メモリを維持できていない状態です。