#java #appdynamics
#java #appdynamics
Вопрос:
Мы используем агент Appdynamics Java для мониторинга наших производственных приложений. Мы заметили медленный рост объема памяти, и приложение в конечном итоге останавливается. Мы запустили дамп заголовка на одной из JVM и получили следующие отчеты.
Подозреваемая проблема 1:
поток com.singularity.ee.agent.appagent.kernel.config.xml.a @ 0x1267…… Опросник конфигурации потока AD сохраняет размер конфигурации локальной переменной 28546,79 (15,89%) КБ
Подозреваемая проблема 2:
280561 экземпляр com.singularity.ee.agent.appagent.services.transactionmonitor.com.exitcall.p, загруженный com.singularity.ee.agent.appagent.kernel.classloader.d @ 0x6c000…. занимает 503413,3 (28,05%) КБ. Ссылки на эти экземпляры содержатся в одном экземпляре java.util.HashMap $Node[] …
Мы полагали, что эти классы были из APM Appdynamics, который подключается к запущенной JVM и отправляет отслеживаемые события на контроллер. Существует так много запутанных процессов, связанных с обращением к поставщику, поэтому мне интересно, есть ли какие-либо обходные пути для этого, например, мы включаем наши java-приложения с помощью JMX и Appd, получая события мониторинга из JMX, а не напрямую подключаясь к JVM приложений. Спасибо за ваши предложения.
Комментарии:
1. Что касается предполагаемой проблемы 2, похоже, что вызовы exitcalls не завершаются. Вы можете попробовать отключить реализацию по умолчанию и закодировать свои собственные маркеры транзакций / exitcall / etc. sdkdocs.appdynamics.com/javadocs/java-agent-api/v4.5/com /… с завершением тайм-аута
2. Публикация в виде метрик JMX может быть обходным путем. Возможно, просмотрите документацию по адресу docs.appdynamics.com/display/PRO45 /…
3. Какую версию агента Java вы используете? Что такое инструментальное приложение? Какие показатели вам действительно нужны?