「Linuxが私のメモリを食べてしまった」 Linuxにおけるフリーメモリの読み方
Linuxを走らせてこんな体験は無い? 起動してそんなにアプリケーションを走らせていないのにtopを見るとフリーメモリがいきなり減っている。システムが食ってしまったのか? でもアプリケーションを立ち上げてみると、難無く使えちゃう。
Linuxではアプリケーションが使っていないメモリをdisk cacheが使い、フリーメモリが少ないように見えてしまう。disk cacheはアプリケーションが必要とするメモリはすぐ返すので、実際にアプリケーションが使えるメモリが少い訳じゃない。つまり「使用中」(Used)の定義が紛らわしく、アプリケーションが使えるメモリを少なく表示してしまうのだ。これは初心者を混乱させることが多いので、誰かが親切に説明するページを書いてそれに独自ドメインまで与えた。名付けて: linuxatemyram.com=「Linuxが私のメモリを食べてしまった」
メモリの状態 | 実際は | Linuxによると |
アプリが使用中 | Used (使用中) | Used (使用中) |
使われているんだけど、アプリが要求できる | Free (使用可) | Used (使用中) |
何にも使われていない | Free (使用可) | Free (使用可) |
ではどうやって、本当に使えるメモリを見ればいいのか?
free -m の出力の2行目の -/+ buffers/cacheのFreeの欄を見ればいい。
元記事の"How do I see how much free ram I really have?"のリスティングを参照。