VM26*

VCIX取得を目指して勉強中

意外と知られていない「スワップ済み」メモリの解放方法

スワップ済み」メモリとは何かというと、仮想環境でメモリが足りなくなってきたときに、仮想マシンのメモリをデータストアにあるswapファイルで代用する方法です。
これが起こると、仮想マシンの動作が遅くなります。
 
そして厄介なことに、この「スワップ済み」ファイルは仮想環境でメモリが足りない状況が改善されても、自動的に解放されません。
つまり、以下のような状況になります。
 
「システム遅いんだけど」→「調査します!」→「メモリが競合している模様です。今使っていない仮想マシンを落として一時対応します」→「あの、遅いままなんですが…」→「え、でもクラスタ内のメモリには十分余裕がありますよ」
 
で、なんやかんやで「仮想マシン再起動してください」みたいな話をふられて再起動してみると問題が解消しているわけです。
 
これは、仮想マシンの再起動により「スワップ済み」メモリが解放されたからです。
 
この「スワップ済み」メモリですが、厄介なことに仮想マシンを再起動しないと解放されないと言われています。
 
"Swapメモリは仮想マシンと同じデータストアに配置"する設定にしていたので、もしかしたらStorage vMotionでSwapファイルが移行する際に解放されるかなぁとも思ったんのですが、結果が以下の画像です。
 

f:id:udon0418:20170523082416p:image

(Storage vMotion前の画像は間違って消してしまった…)
 
はい。解放されませんでした。
 
実は、「バルーン済み」メモリも発生していたのですが、そちらについてはStorage vMotionで解放されました。
 
思いついたのですが、メモリ予約をMAXにしたら仮想マシンを再起動しなくても解放されるのでは…?
 
ちょっとまた時間あるときに競合を起こして確認したいと思います。