Ubuntuはメモリリークを検出します


2

実行してwatch freeから、2秒ごとに約100ずつ増加する連続メモリを観察します。どのプロセスが使用済みメモリの増加に寄与しているかを知るにはどうすればよいですか?

topとpmapは役に立ちません。

ところで、私が実行した後echo 1 > /proc/sys/VM/drop_caches、使用されたメモリは劇的に減少しました。しかし、それでも同じ割合で増え続けています。


「2秒ごとに100」...何が100ですか?
アキラ

@akira:freeはデフォルトでkbytesを報告するため、おそらく「100のkbytes」です。
デビッドアンダーソン

1
キャッシュ/バッファではなく、実際のリークであることを確認するには:「echo 1> / proc / sys / VM / drop_caches」の後、毎回ほぼ同じ低い値になりますか、それとも毎回高い値になりますか?「free」からの出力では、「+/- buffers / cache」の値は常に増加していますか、それとも「Mem」の値のみですか?
デビッドアンダーソン

回答:


0

topを使用し、shift-mを押してメモリをソートします。アプリがメモリをリークしている場合は、%MEMが増加し、RES列の下の数値が上がるはずです。

プロセスのリストの上で、空き容量が減っていて、バッファキャッシュが増えていて、リスト内のアプリがほぼ同じであれば、問題ありません。これは、Linuxがハードディスクのヒットを回避するために空きRAMを使用しているなどの理由で、高速に実行できることを意味します。それでも心配な場合は、たくさんのアプリケーションを開いてください。Linuxがキャッシュバッファーに使用している空き容量が少なくなり、空き容量が0に近くなります。

drop_cachesに指示すると、Linuxはおそらくキャッシュされていないハードディスクの同じ領域を再度読み取り、再キャッシュする必要があります。キャッシュサイズを制限する方法は、本当に必要な場合に解決できるかもしれませんが、Linuxは未使用のRAMを使用して高速化を図っています。これがラップトップであり、電力を節約しようとしている場合を除き、RAMを使用して高速で実行する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.