У меня есть веб-приложение на основе Java, которое я развернул на одном из наших серверов. Иногда JVM умирала из-за ошибки нехватки памяти. Приложение довольно тяжелое, поскольку в нем много используется Cometd (механизм push), а некоторые столбцы зашифрованы. Для этого я решил отслеживать приложение, но по какой-то причине VisualVM не показывает выборку и использование ЦП. В нем говорится, что JVM не поддерживается.
Вторая проблема, с которой я столкнулся, заключается в том, что время обновления VisualVM слишком медленное. Я хочу уменьшить интервалы, между которыми он отслеживает, но мне тоже не удалось найти эту опцию.
Я использую Debian Wheezy, 64-разрядную версию и Java8-64bit. Контейнер приложения - это Apache tomcat, а БД - Postgres. Jstatd уже запущен. Я новичок в профилировании и мониторинге, любая помощь будет приятной.
Вот скриншоты. Пожалуйста, посмотрите.
Спасибо.
Обновить
Вот обновленный скриншот того, как это выглядит без конфигурации, упомянутой ниже:
И у моего catalina.sh есть конфигурация сервера, например:
CATALINA_OPTS="$CATALINA_OPTS -server -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:+UseAdaptiveSizePolicy -Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=portnumer -Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.ssl=false"
Вот после вышеуказанной конфигурации с новым GC:
Добавление этого в целевое приложение JVM работает для меня:
-Djava.rmi.server.hostname=localhost