8コアで動作するRHEL 5サーバー。負荷は常に0または1です。しかし、RAM(8GB)は常に占有されています。

8コアで動作するRHEL 5サーバー。負荷は常に0または1です。しかし、RAM(8GB)は常に占有されています。

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私の場合は、必要に応じて合計値を減算する必要があります。MemFreeMemtotal

  2051700 kB
- 1562336 kB
-   74376 kB
-------------
=  414988 kB

実際に必要なのは415MBだけです。

関連情報