0

アプリケーション分析にJAMONを使用しています。

Websphere 管理者から、アプリケーションでのメモリ リークが報告されました。そして驚いたことに、ほとんどのメモリ リークは JAMON API で報告されています。

シナリオは、本番メモリの使用量が時間とともに増加し続けるというものです。1か月後、80%に達しました。そして時間の経過とともに減少しません。Alphawork ヒープ アナライザーを使用してヒープ ダンプを分析しています。

疑わしいメモリ リークが実際にメモリ リークであることをどのように確認できますか。

4

1 に答える 1

1

JAMon は Java マップに支えられているため、キーの数やサイズが際限なく大きくなると、メモリの問題が発生する可能性があります。ですから、ここに注目すべき点がいくつかあります。

  • モニターは何台ありますか?タイムスタンプや関数への引数など、絶えず変化する情報を含むキーを使用すると、jamon モニターの数が増えます。(MonitorFactory.getNumRows())
  • キーの大きさ (つまり、監視しているラベル) は? 非常に大きな文字列がキーとして使用されているのを見たことがあります (大きな 'in' 句を含む select ステートメントで、大量のメモリを消費していました。

上記が問題である場合、ここに役立ついくつかの方法があります。

  • - MonitorFactory.setMaxNumMonitors(int) でモニターの数を制限します
  • 最大の sql ステートメントのサイズを制限する - MonitorFactory.setMaxSqlSize(int)
  • jamon で鍵の合計サイズを追跡する - MonitorFactory.enableTotalKeySizeTracking()
  • jamon で合計キーサイズを取得します (jamon Web アプリケーションにも表示されることに注意してください) - MonitorFactory.getTotalKeySize()
  • jamon Web アプリケーションから、jamonadmins.jsp からの jamon 統計の「リセット」を選択して、jamon データを一掃し、すべてのメモリを解放して、迅速な修正を行うことができます。MonitorFactory.reset() を呼び出すことで、これをプログラムで行うこともできます。
于 2014-08-25T20:52:16.837 に答える