SUSEを使用していますが、31 GBのメモリがあります。メモリ:合計31908592k、使用済み31429632k、空き478960k、バッファ12176kどのプロセスがすべてのメモリを消費しているかを確認するにはどうすればよいですか。
free
を実行していて、最初の行を見て、びっくりしているようです。それで大丈夫です;多くの人がそうします。
free
からの出力の最初の行を無視します。本当に。 Linuxは非常にディスクからのデータのキャッシュに積極的であり、「スワップアウトされた」仮想メモリページも含めてRAMであり、キャッシュされたデータはすべて「使用済み」としてカウントされます。 free
の最初の行。ただし、必要に応じてマイクロ秒(最近ではそれ以下)で再び使用できるようになります。
free
からの出力のsecond行、-/+ buffers/cache:
というラベルの付いた行を確認する必要があります。これは、バッファとキャッシュによって現在使用されているものを無視して、プログラムを実行することによって実際にどれだけのメモリが拘束されているかを示す行です。
たとえば、私のマシンは現在次のように表示されます。
total used free shared buffers cached
Mem: 3083924 2177300 906624 0 461344 837008
-/+ buffers/cache: 878948 2204976
Swap: 4000148 0 4000148
現時点では、906624バイトのRAMは完全に未使用のままですが、追加の461344バイトのバッファと837008バイトのキャッシュデータがあり、これらは多かれ少なかれ即座に利用可能になります。より重要なもの(つまり、ほぼすべてのもの)にはメモリが必要であり、実際に使用できるのは合計2204976バイトです。
top
を実行し、を押します ShiftO、その後 N、そして最後に Enter。押す Q 終了したいとき。
そして忘れないでください、 "Linuxは私のRAMを食べました!" 。
top
コマンドを使用します。実行中のすべてのプロセスのリストが、デフォルトで最もCPUを使用しているプロセスでソートされて表示されます。ヒットした場合 shiftM 代わりに、メモリ使用量でソートするように変更されます。リストの一番上にトップのメモリ違反者が表示されます。