VM26*

VCIX取得を目指して勉強中

仮想環境でメモリが足りなくなったとき状態について自分的メモ

一台の物理サーバで複数のサーバを稼働させることができるようになった仮想マシンは、CPUやメモリなどのリソースを共有しています。
 
共有されたリソースはシェア値、予約、制限等、複数の設定で各仮想マシンに適切に割り振ることができ、その結果、メモリが十分に行き渡らない仮想マシンもでてきます。
 
そういったときは仮想マシン
「監視タブ>使用率」の「ゲストメモリ」の枠に
共有→バルーン済み→圧縮済み→スワップ済み
といった順で現れます。
 
ちなみにゲストOSのパフォーマンスへの影響としては以下です。
 
共有<バルーン済み<圧縮済み<スワップ済み
 
実際上記の数値がすべて現れる状態にしてみると(参考画像はまた用意できたときに…)、共有と圧縮については字面が覚えやすいので、本記事ではバルーン済みとスワップ済みの値について書きます。
 

f:id:udon0418:20170620233128p:image

 
先に述べた通り、スワップ済みのメモリが発生する方がバルーン済みのメモリが発生するよりもゲストOSへの影響が大きいです。
 
なぜかというと、バルーン済みメモリはゲストOSに影響がなさそうな部分のメモリを回収していくわけですが、スワップ済みメモリの方はそんなん関係なく回収していくため、今まさに使っているメモリを奪っていく可能性が高いからです。
 
そして奪われたメモリのところを使おうと思ったら仮想マシンはデータストアにあるスワップファイルを読み込むのですごく遅くなるわけです。
しかもこのスワップファイル、仮想マシンを再起動するまで解放されないという…辛い。
 
以下、わかりやすく説明してくださっているサイトです。マニュアルだとよくわからなかったので、ここで勉強しました。
 
VMwareテクニカルトレーナよりワンポイントアドバイスVMware vSphereにおけるCPU・メモリの考え方編~
 
vCenterで確認できるメモリ情報の見方について
 
vCenterで確認できるメモリ情報の見方について
 
 表記注意(vSphere 5.5の表示→vSphere6.5の表示)
  「ホストメモリ」 → 「仮想マシンのメモリ」
  「消費」→「消費された仮想マシン
  「オーバーヘッド」→「消費された仮想マシン オーバーヘッド」