2017-01-12 5 views
1

私は、jslを使用してWindowsサービスとして実行しているJavaプロセスを持っています。 何らかの理由により、メモリ不足エラーが発生しました。 プロセスがまだ実行中で、サービスを停止する前にOOMがなぜ発生したのかを分析する方法があるのでしょうか?OOMエラーが発生したJavaプロセスを監視できますか?

ありがとうございます。 Guy

答えて

1

残念ながら、OOMEが発生した瞬間にJVM内の状態を元に戻すことはできません。 jmapを使用して解析用のヒープダンプを取ることができます。それは、メモリの大部分を取っていることをあなたに良い考えを与えるはずです

または、+XX:+HeapDumpOnOutOfMemoryErrorパラメータでプロセスを実行することをお勧めします。これにより、アプリケーションがOOMエラーを検出したときに自動ヒープダンプがトリガーされます。私のopnionでは、すべてのJavaアプリケーションをこのオプションで起動する必要があります。それ以外の場合は、OOMエラーを調査することは不可能であり、アプリケーションにオーバーヘッドを追加することはありません(OOMエラーがない限り)。

関連する問題