Назад | Перейти на главную страницу

Java, VisualVM: правильная настройка VisualVM для веб-приложений на основе Java8

У меня есть веб-приложение на основе 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