SERVER:~ # free -h
total used free shared buffers cached
Mem: 31G 26G 4.5G 98M 0B 1.0G
-/+ buffers/cache: 25G 5.4G
Swap: 4.0G 68M 3.9G
SERVER:~ #
SERVER:~ # uptime
07:59am up 45 days 23:03, 1 user, load average: 0.00, 0.01, 0.05
SERVER:~ #
したがって、実際にメモリを消費する追加のプロセスは実行されません。
すでに「echo 3> / proc / sys / vm / drop_caches」を実行していますが、3G-> 1GキャッシュRAMにすぎませんでした。
メモリ使用量に問題があるとゆっくり考えています。
サーバーを再起動すれば大丈夫ですが、数十日経過するとまたメモリが使い果たされ、さらにスワップ空間の使用量も増え始めます。
プロセスを停止する前に、プロセスが高いメモリを使用していることを示す「ps」コマンドには何も表示されません(カスタムソフトウェアの場合)。何もありません。
質問:何がメモリを使い果たしているのか、どのように検出しますか?メモリリークですか?
答え1
これを実行して、free -g
「使用されている」メモリのうち実際に「キャッシュされた」メモリの量を確認します。必要に応じてキャッシュメモリが解放されます。