JAMON Утечка памяти

Я использую JAMON для анализа приложений.

Мой администратор websphere сообщил об утечке памяти в приложении. И, к моему удивлению, большая часть утечек памяти сообщается в JAMON API.

Сценарий таков: использование нашей производственной памяти со временем увеличивается. Через месяц он достиг 80%. И не уменьшается со временем. Я использую анализатор кучи Alphawork для анализа дампа кучи.

Как я могу быть уверен, что утечка памяти на самом деле является утечкой памяти.

1 ответ

JAMon поддерживается Java-картой, поэтому все, что приводит к неограниченному количеству или размеру его ключей, может вызвать проблемы с памятью. Итак, вот несколько вещей, на которые стоит посмотреть.

  • Сколько у вас мониторов? Использование ключей, которые содержат постоянно меняющуюся информацию, такую ​​как метка времени или аргументы функции, увеличит количество мониторов хамона. (MonitorFactory.getNumRows())
  • Насколько велики ваши ключи (т.е. метки, которые вы отслеживаете)? Однажды я увидел несколько очень больших строк, используемых в качестве ключей (операторы select с большим предложением "in", которые занимали много памяти.

Если вышеупомянутые проблемы, вот некоторые методы, которые могут вам помочь.

  • Ограничить количество мониторов с помощью - MonitorFactory.setMaxNumMonitors(int)
  • Ограничить размер самого большого оператора SQL - MonitorFactory.setMaxSqlSize(int)
  • Отслеживать общий размер ключа в jamon - MonitorFactory.enableTotalKeySizeTracking()
  • Получить полный размер ключа в jamon (обратите внимание, что это также будет видно в веб-приложении jamon) - MonitorFactory.getTotalKeySize()
  • В веб-приложении jamon вы можете выбрать "Сброс" статистики jamon из jamonadmins.jsp, чтобы стереть данные jamon и освободить всю память в качестве быстрого решения. Вы также можете сделать это программно, вызвав MonitorFactory.reset()
Другие вопросы по тегам