質問: どのプロセスがすべての記憶を食べているかを知る方法 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バイトです。