VisualVMツールを使用して、Tomcatで実行されるアプリケーションのプロファイルを作成します。残念ながら、VisualVMにTomcatのプロファイルを作成するように指示すると、Tomcatはプロファイルツールに接続していることを示すいくつかのメッセージを出力し、単純に終了します。
詳細…
Windows XP、Tomcat 6、VisualVM 1.2.1、およびJDK 1.6.0_11を使用しています。
Tomcatアプリケーションを右クリックして「ヒープダンプ」を選択すると、正常に動作するように見えることに注意してください。
現在、VisualVM
アプリケーションでTomcat
プロファイリングを使用しています。 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
Ryanがsetenv.sh
を使用した方が良いとコメントした後に更新されました。これは、JDK 8のsetenv.sh
です。他の設定はほとんどありませんが、開始するのに適しています。
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ディレクトリにドロップすると、起動時にコンソールで変更を確認できます。
次に、Visual VMでTomcatアプリケーションをプロファイルするためのステップバイステップチュートリアルを示します。 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/
必要なのは、これらのVMオプションを設定する:
-XX:+ UnlockCommercialFeatures -XX:+ FlightRecorder -XX:+ UnlockDiagnosticVMOptions -XX:+ DebugNonSafepoints -XX:FlightRecorderOptions = stackdepth = 512