web-dev-qa-db-ja.com

VisualVMを使用したTomcatアプリケーションのプロファイル

VisualVMツールを使用して、Tomcatで実行されるアプリケーションのプロファイルを作成します。残念ながら、VisualVMにTomcatのプロファイルを作成するように指示すると、Tomcatはプロファイルツールに接続していることを示すいくつかのメッセージを出力し、単純に終了します。

詳細…

Windows XP、Tomcat 6、VisualVM 1.2.1、およびJDK 1.6.0_11を使用しています。

  1. Visual VMで、Tomcatアプリケーションを右クリックし、「プロファイル」を選択します
  2. [プロファイラー]タブで、[メモリ]ボタン(または[CPU]ボタン)を押します。
  3. Tomcatが終了します

Tomcatアプリケーションを右クリックして「ヒープダンプ」を選択すると、正常に動作するように見えることに注意してください。

61
rwsimmo

現在、VisualVMアプリケーションでTomcatプロファイリングを使用しています。 Tomcatスタートアップに次のパラメーターを追加する必要がありました。

-Dcom.Sun.management.jmxremote.port=8086
-Dcom.Sun.management.jmxremote.ssl=false
-Dcom.Sun.management.jmxremote.authenticate=false

これは素晴らしい記事ですTomcatVisualVMを監視することについて。

86
rwsimmo

はい、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でのアプリケーションパフォーマンスのトラブルシューティング

7
vsingh

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/

1
Marco

必要なのは、これらのVMオプションを設定する:

-XX:+ UnlockCommercialFeatures -XX:+ FlightRecorder -XX:+ UnlockDiagnosticVMOptions -XX:+ DebugNonSafepoints -XX:FlightRecorderOptions = stackdepth = 512

0
Nitin Taur