
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:
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:
Antwort1
Das Hinzufügen zur Ziel-JVM-Anwendung funktioniert bei mir:
-Djava.rmi.server.hostname=localhost