Linux:どのプロセスがすべてのRAMを使用しているかを見つける?
実際に尋ねる前に、ちょうど明確にするために:はい、私はディスクキャッシュについて知っています、そして、いいえ、それは私の場合ではありません :) 申し訳ありませんが、この前置きのために :)
私はCentOS 5を使用しています。システム内のすべてのアプリケーションのスワップが激しく、システムが非常に遅くなっています。私がfree -m
をするとき、私が得たものは次のとおりです:
total used free shared buffers cached
Mem: 3952 3929 22 0 1 18
-/+ buffers/cache: 3909 42
Swap: 16383 46 16337
だから、私は実際に使用するために42 Mbしか持っていません!私が理解している限りでは、-/+ buffers/cache
は、私が理解している限りでは、私が理解している限りでは、私が理解している限りでは、私が理解している限りでは、私が理解している限りでは、私が理解している限りでは、私が理解している限りでは、私が理解している限りでは、私が理解している限りでは、私が理解している限りでは、私が理解している限りでは、私が理解している限りでは、私が理解している限りでは、私が理解している限りでは、私は理解していません。私が理解している限りでは、top
ではディスクキャッシュはカウントされないので、実際には42Mbしかないのではないか?と思って、ディスクキャッシュをオフにしてみましたが、何の効果もありませんでした。
そこで、誰が私のRAMを全部使っているのか調べようと思い、top
を使ってみました。しかし、どうやら私のRAMを使っているプロセスはないと報告しているようです。私のトップにあるプロセスはMySQLだけなのですが、0.1%のRAMと400Mbのスワップを使っています。他のサービスやアプリケーションを実行しようとしたときにも同じように表示され、すべてのプロセスがスワップを使用しています。
だから、それで - 私はかなり確信していますこれは、通常、それが削減され、他のプロセスがRAMを使用するようにしている必要がありますので、RAMを使用している人は、ディスクキャッシュではなく、スワップに行きます。