0
数週間後、8コアRHEL5サーバーに負荷が発生することを確認しました1
。
しかし、RAMは常にいっぱいです。問題をデバッグしようとしています。メモリがどこに行くかをどのように診断しますか?
答え1
Linuxでは、RAMがいっぱいになるのは正常です。出力ビューcat /proc/meminfo
:
MemTotal: 2051700 kB
MemFree: 74376 kB
Buffers: 0 kB
Cached: 1562336 kB
...
例の出力からわかるように、合計2GBのRAMがありますが、74MBしか使用できません。これは正常です。ただし、次のCached
値を参照してください。公式Linuxカーネルドキュメント:
Cached: in-memory cache for files read from the disk (the pagecache). Doesn't include SwapCached
すべての最新のオペレーティングシステムはこのようにページキャッシュを処理します。アプリケーションを起動すると、コードとライブラリがRAMにロードされます。他のアプリケーションでは、RAM が必要で、使用可能な空き RAM がなくなるまで RAM に残ります。だからRAMはいつもいっぱい。
RAM使用量を知りたい場合そしてCached
私の場合は、必要に応じて合計値を減算する必要があります。MemFree
Memtotal
2051700 kB
- 1562336 kB
- 74376 kB
-------------
= 414988 kB
実際に必要なのは415MBだけです。