1

およびでJavaアプリケーションを実行しているサーバーを取得しました。OpenJDKCentOS

ただし、アプリケーションにメモリリークがあり、数週間ごとにクラッシュするようです。問題は、HeapDumpOnOutOfMemoryError指定されていてもヒープダンプが生成されないことです。アプリケーションをすぐにクラッシュさせる人為的なメモリリークを作成すると、適切なヒープダンプが生成されます。

今、私はこの問題の完全な解決策を求めているのではなく、良い戦略を求めています。

たとえば、アプリケーションの実行中にオンデマンドでヒープダンプをプルする方法はありますか?何がうまくいかないのかを理解する方法はありOpenJDKますか?これにアプローチする方法について、別の提案はありますか?

4

1 に答える 1

1

OpenJDKにはjmap、プロセスIDを指定してヒープダ​​ンプを作成できるというツールが含まれている必要があります。正確な構文については、jmapのmanページを参照する必要があります。メモリリークがある場合は、アプリがクラッシュする前でも、ヒープダンプに表示されるはずです。また、 Eclipseメモリアナライザーを使用して、ヒープダンプを参照し、リークの疑いのあるリストを取得することをお勧めします。

于 2011-08-18T22:32:55.647 に答える