Linuxのメモリ状況について。
freeコマンドの実行結果で次のように表示されて、メモリ足りないじゃん!と疑ってみた。
freeコマンドの実行結果で次のように表示されて、メモリ足りないじゃん!と疑ってみた。
total used free shared buffers cached Mem: 307200 303852 3348 0 2264 193092 -/+ buffers/cache: 108496 198704 Swap: 557048 29144 527904
1単位は1kのはずなので今の状況では 3Mほどの空きしかないってこと?
メモリ増やさないとまずいのか?と
どうやらそういうことではないらしい。
各プロセスにメモリを割り当てた後、残っている部分をバッファとキャッシュに利用して
ディスクIOを減らす、ということをOSがやっているようだ。
よって、この場合空きメモリとしてカウントできるのは、
free + buffers + cached の合計値、となる。
でもSwap領域を使っているように見えるが・・・
さらにこのbuffers,cachedで使っている部分も使用頻度に応じてswapへ書き出されることがある。
これがswap使用の理由となっている。
swapの使用状況を見るために vmstat コマンドを利用する.
vmstat 30
として経過を眺める。si,soの項目をみてみる。
- siの項目がある程度動くのは問題なし
- soの項目が頻繁に動くのはメモリ不足の疑いあり
ということらしい。
XenServer使っていて、各仮想マシンの状況をチェックするために調べてみました。