Java, VisualVM: VisualVM richtig für Java8-basierte Webanwendungen einrichten

Java, VisualVM: VisualVM richtig für Java8-basierte Webanwendungen einrichten

Ich habe eine Java-basierte Webanwendung, die ich auf einem unserer Server bereitgestellt habe. Manchmal stürzt die JVM aufgrund eines Speicherfehlers ab. Die Anwendung ist ziemlich schwer, da sie Cometd (Push-Mechanismus) stark verwendet und einige Spalten verschlüsselt sind. Aus diesem Grund habe ich beschlossen, die Anwendung zu überwachen, aber aus irgendeinem Grund zeigt VisualVM keine Sampling- und CPU-Auslastung an. Es heißt, dass die JVM nicht unterstützt wird.

Das zweite Problem, das ich habe, ist, dass die Aktualisierungszeit von VisualVM zu langsam ist. Ich möchte die Intervalle, in denen es überwacht, verkürzen, aber auch diese Option finde ich nicht.

Ich verwende Debian Wheezy, 64 Bit und Java8-64bit. Der Anwendungscontainer ist Apache Tomcat und die Datenbank ist Postgres. Jstatd ist bereits gestartet. Ich bin neu im Bereich Profiling und Monitoring, jede Hilfe ist willkommen.

Hier sind die Screenshots. Schauen Sie sie sich gerne an.

Danke schön.

Aktualisieren

Hier ist der aktualisierte Screenshot, wie es ohne die unten erwähnte Konfiguration aussieht:

Bildschirmfoto

Und meine catalina.sh hat eine Serverkonfiguration wie:

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"

Hier ist die obige Konfiguration mit dem neuen GC:

Screenshot nach neuem GC aktualisiert

Antwort1

Das Hinzufügen zur Ziel-JVM-Anwendung funktioniert bei mir:

-Djava.rmi.server.hostname=localhost

verwandte Informationen