Профиль Приложения Tomcat С VisualVM
Я хотел бы профилировать приложение, которое работает на Tomcat с помощью инструмента VisualVM. К сожалению, когда я говорю VisualVM профилировать Tomcat, Tomcat печатает несколько сообщений, указывающих на подключение к инструменту профиля, а затем просто выходит.
Подробнее...
Я использую Windows XP, Tomcat 6, VisualVM 1.2.1 и JDK 1.6.0_11.
- в Visual VM я нажимаю Правой Кнопкой Мыши на приложение Tomcat и выбираю "профиль"
- в Вкладка профилировщик, я нажимаю кнопку памяти (или кнопку процессора).
- Tomcat выходит
обратите внимание, что если я щелкните правой кнопкой мыши на приложении Tomcat и выберите "дамп кучи", который, кажется, работает нормально.
4 ответа:
Я
VisualVM
профилирование работа с myTomcat
приложение. Мне нужно было добавить следующие параметры для запуска tomcat:-Dcom.sun.management.jmxremote.port=8086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
вот хорошая статья мониторинг
Tomcat
СVisualVM
.
Да мы профилируем приложения Tomcat.
на
catalina.bat
илиcatalina.sh
и это в вашJAVA_OPTS
(я использую Tomcat 6.0.16):-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
код
JAVA_OPTS
должен выглядеть какset JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties" -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
Обновлено после комментария Райана, что лучше использовать
setenv.sh
. Это мойsetenv.sh
для JDK 8. Отсутствует несколько других настроек, но хорошо для начала.SUN_JVM_OPTS=" -server \ -XX:MaxMetaspaceSize=3G \ -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled \ -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 \ -XX:+ScavengeBeforeFullGC -XX:+CMSScavengeBeforeRemark \ -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=3 -XX:GCLogFileSize=2M \ -XX:+HeapDumpOnOutOfMemoryError \ -Dsun.net.inetaddr.ttl=60 \ -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=8480 \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false" # Set custom application options here APPLICATION_OPTS="-Dlog4j.configurationFile=patht-to-log/log4j2.xml -Dlog4j.debug=true " JVM_OPTS="$GENERAL_JVM_OPTS $SUN_JVM_OPTS" CATALINA_OPTS="$JVM_OPTS $APPLICATION_OPTS" echo "Tomcat started with settings "$CATALINA_OPTS
как только вы уроните
setenv.sh
в папку bin, вы можете увидеть изменения в консоли запуск.вот еще один пошаговый учебник для профилирования приложений Tomcat с помощью Visual VM: производительность приложения для устранения неполадок с помощью Visual VM
Я использую Tomcat 7 и полная конфигурация требует больше параметров для работы.
-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9090 # port to connect JMX -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=50.112.22.47" # IP of the server running tomcat (it is necessary)
источник: http://blog.markshead.com/1129/connecting-visual-vm-to-tomcat-7/