Erfahren Sie, wie Sie den JVM-Speicher von Tomcat über JConsoler überwachen

Erfahren Sie, wie Sie den JVM-Speicher von Tomcat über JConsoler überwachen

Überwachung des JVM-Speichers von Tomcat über JConsoler

1. So überwachen Sie Tomcat

  • Einfache Befehle
  • Fertige Skripte
  • Benutzerdefiniertes Monitoring durch Zabbix

Benutzerdefinierte Überwachung: Alles, was per Befehl abgerufen werden kann, kann überwacht werden

Überwachung von Java über JMX

  • Sonstige Überwachung

Überwachung der Hardware über IPMI

Überwachen Sie Netzwerkgeräte über SNMP, sofern diese SNMP unterstützen.

2. Javas eigene Überwachungsbefehle

  • jps exportiert Java-bezogene Prozesse
  • Format: jps -lvm
  • Parameteroptionen: -lvm am detailliertesten
[root@localhost ~]# jps -lvm
7457 org.apache.catalina.startup.Bootstrap starten -Djava.util.logging.config.file=/Anwendung/Tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -Dcatalina.base=/Anwendung/Tomcat -Dcatalina.home=/Anwendung/Tomcat -Djava.io.tmpdir=/Anwendung/Tomcat/temp
7525 org.apache.catalina.startup.Bootstrap starten -Djava.util.logging.config.file=/Anwendung/tomcat_8082/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -Dcatalina.base=/Anwendung/tomcat_8082 -Dcatalina.home=/Anwendung/tomcat_8082 -Djava.io.tmpdir=/Anwendung/tomcat_8082/temp
9144 sun.tools.jps.Jps -lvm -Denv.class.path=.:/Anwendung/jdk/lib:/Anwendung/jdk/jre/lib:/Anwendung/jdk/lib/tools.jar -Dapplication.home=/Anwendung/jdk1.8.0_60 -Xms8m
7482 org.apache.catalina.startup.Bootstrap starten -Djava.util.logging.config.file=/Anwendung/tomcat_8081/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -Dcatalina.base=/Anwendung/tomcat_8081 -Dcatalina.home=/Anwendung/tomcat_8081 -Djava.io.tmpdir=/Anwendung/tomcat_8081/temp
  • jmap exportiert JVM-Informationen, die häufig für benutzerdefiniertes Monitoring verwendet werden
  • Format: jmap pid
  • Parameter: -heap
[root@localhost ~]# jmap -heap 7457
Anhängen an Prozess-ID 7457, bitte warten …
Debugger erfolgreich angehängt.
Server-Compiler erkannt.
Die JVM-Version ist 25.60-b23

durch threadlokale Objektzuweisung.
Mark Sweep Compact GC

Heap-Konfiguration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize = 255852544 (244,0 MB)
   Neue Größe = 5570560 (5,3125 MB)
   MaxNewSize = 85262336 (81,3125 MB)
   AlteGröße = 11206656 (10,6875 MB)
   NeuesVerhältnis = 2
   Überlebensrate = 8
   MetaspaceSize = 21807104 (20,796875 MB)
   CompressedClassSpaceSize = 1073741824 (1024,0 MB)
   MaxMetaspaceSize = 17592186044415 MB
   G1HeapRegionSize = 0 (0,0 MB)

Heap-Nutzung: #Achten Sie zur Überwachung auf diese Spalte „Neue Generation (Eden + 1 Survivor Space)“:
   Kapazität = 12779520 (12,1875 MB)
   verwendet = 11689352 (11,147834777832031 MB)
   frei = 1090168 (1,0396652221679688MB)
   91,46941356169872 % genutzt
Eden Space: #Achten Sie zur Überwachung auf diese Spaltenkapazität = 11403264 (10,875 MB)
   verwendet = 11059616 (10,547271728515625 MB)
   frei = 343648 (0,327728271484375MB)
   96,98640669899426 % genutzt
Aus dem Weltraum: #Achten Sie zur Überwachung auf diese Spaltenkapazität = 1376256 (1,3125 MB)
   verwendet = 629736 (0,6005630493164062 MB)
   frei = 746520 (0,7119369506835938MB)
   45,75718470982143% genutzt
Zum Speicherplatz: #Achten Sie zur Überwachung auf diese Spaltenkapazität = 1376256 (1,3125 MB)
   verwendet = 0 (0,0 MB)
   frei = 1376256 (1,3125 MB)
   0,0 % genutzt
Dauergeneration: #Achten Sie bei der Überwachung bitte auf diese Spalte: Kapazität = 28164096 (26,859375 MB)
   verwendet = 18313224 (17,46485137939453 MB)
   frei = 9850872 (9,394523620605469MB)
   65,02329774760035 % genutzt

21146 internierte Zeichenfolgen belegen 1882520 Bytes.
  • jstatck exportiert Java-Prozessinformationen, die häufig für Java-Programmfehler verwendet werden. Für die Recherche mit Entwicklern ist es erforderlich, Thread-Informationen zu exportieren.
  • Format: jstack -l pid

[root@localhost ~]# jstack -l 7457

3. Tomcat-Fehlerbehebungsfall

Die Systemlast ist hoch und Tomcat beansprucht einen hohen CPU-

  • 1. jps/top/htop bestimmen genau, welcher Java-Prozess verursacht wurde
  • 2.jstack exportiert Java-Threads
  • 3.catalina.out-Protokollanalyse
  • 4.jmap exportiert JVM-Informationen, die mit dem Mat-Tool analysiert werden können

4. Konfigurieren Sie die Tomcat JMX-Überwachung

  • Benutzerdefiniertes Monitoring: Schreiben Sie das Skript direkt auf den Tomcat-Server und in die Zabbix-Konfigurationsdatei
  • Zuerst müssen Sie zabbix-java-gateway auf dem Zabiix-Server installieren und dann die Überwachungsfunktion auf dem Tomcat-Server aktivieren.
  • Tomcat aktiviert die JMX-Überwachungsfunktion
#bin/catalina.sh ändern
[root@localhost tomcat]# vim bin/catalina.sh
#Beachten Sie, dass Sie es nicht in separaten Zeilen schreiben können, da Sie sonst eine Fehlermeldung erhalten, dass der Befehl nicht gefunden werden kann. Schreiben Sie es in eine Zeile CATALINA_OPTS="$CATALINA_OPTS"
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jxmremote.ssl=false
-Djava.rmi.server.hostname="192.168.81.210"
#Richtige Schreibweise von CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jxmremote.ssl=false -Djava.rmi.server.hostname=192.168.81.210"


#BeschreibungCATALINA_OPTS="$CATALINA_OPTS" #Tomcat-Startparameter ändern -Dcom.sun.management.jmxremote #Tomcat-Remoteverwaltungsfunktion aktivieren -Dcom.sun.management.jmxremote.port=12345 #Zusätzlich zu Port 12345 generiert die Remoteverwaltungsfunktion auch 2 zufällige Ports. Wir können alle Ports öffnen Dcom.sun.management.jmxremote.authenticat=false #Ist während der Überwachung eine Authentifizierung erforderlich? -Dcom.sun.management.jmxremote.ssl=false #Ist die SSL-Verbindung aktiviert? -Djava.rmi.server.hostname="192.168.81.210" #IP des Servers festlegen, auf dem sich Tomcat befindet

Nachdem die Konfiguration abgeschlossen ist, starten Sie Tomcat neu. Mit dem Befehl ps können Sie sehen, dass die Ausgabeinformationen einige weitere Zeilen enthalten, die wir geschrieben haben [root@localhost tomcat]# ps aux | grep java
root 17786 5.7 10.6 2306592 105860 Punkte/1 Sl 15:52 0:08 /Anwendung/jdk/bin/java
-Djava.util.logging.config.file=/Anwendung/Tomcat/conf/logging.properties 
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
-Djdk.tls.ephemeralDHKeySize=2048 
-Djava.protocol.handler.pkgs=org.apache.catalina.webresources
-Dorg.apache.catalina.security.SecurityListener.UMASK=0027
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jxmremote.ssl=false 
-Djava.rmi.server.hostname=192.168.81.210 
-Dignore.endorsed.dirs= 
-classpath /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar 
-Dcatalina.base=/Anwendung/Tomcat 
-Dcatalina.home=/Anwendung/Tomcat 
-Djava.io.tmpdir=/Anwendung/Tomcat/temp org.apache.catalina.startup.Bootstrap start

Verwenden Sie den Befehl ss/netstat, um die drei zusätzlichen Ports anzuzeigen [root@localhost tomcat]# ss -lnptu | grep java
tcp LISTEN 0 100 :::8080 :::* Benutzer:(("java",pid=17786,fd=56))
#Unser Set TCP LISTEN 0 50 :::12345 :::* Benutzer:(("java",pid=17786,fd=22))
#Zufällig 1
tcp LISTEN 0 50 :::46272 :::* Benutzer:(("java",pid=17786,fd=21))
# Zufällig 2
tcp LISTEN 0 50 :::46081 :::* Benutzer:(("java",pid=17786,fd=24))
tcp LISTEN 0 1 ::ffff:127.0.0.1:8005 :::* Benutzer:(("java",pid=17786,fd=65))

5. Verwenden Sie Jsconsole, um eine Verbindung zu JMX herzustellen und Überwachungsdaten anzuzeigen

Bildbeschreibung hier einfügen

Dies ist das Ende dieses Artikels zur Überwachung des JVM-Speichers von Tomcat über JConsoler. Weitere Informationen zur Überwachung des JVM-Speichers von Tomcat durch JConsoler finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • JVM-Einführung: Speicherstruktur (Heap, Methodenbereich)
  • Eine kurze Diskussion über die Verwendung von JFR zur Behebung von Speicherlecks in JVMs
  • Technische Experten von Huawei erläutern das JVM-Speichermodell (Sammlung)
  • Docker View JVM-Speichernutzung

<<:  Konvertieren Sie ausgeschnittene PSD-Bilder in das Div+CSS-Format

>>:  Wie wird eine SQL-Anweisung in MySQL ausgeführt?

Artikel empfehlen

Vor- und Nachteile gängiger MySQL-Speicher-Engines

Inhaltsverzeichnis Alle Speicher-Engines anzeigen...

JavaScript implementiert das Topfschlagen-Spiel von Gray Wolf

1. Projektdokumente 2. Verwenden Sie HTML und CSS...

Detailliertes Tutorial zur Installation von ElasticSearch 6.x im Docker

Ziehen Sie zuerst das Image (oder erstellen Sie e...

So führen Sie PostgreSQL mit Docker aus

1. Installieren Sie Docker. Referenz-URL: Docker-...

Verwenden Sie vue2+elementui für Hover-Prompts

Die Hover-Prompts von Vue2+elementui sind in exte...

Detaillierte Erklärung der Funktion und Verwendung der KeepAlive-Komponente in Vue

Vorwort Während des Vorstellungsgesprächs erwähne...

Tutorial zur Installation von MySQL8 auf Centos7

Neue Funktionen in MySQL 8: Meine persönliche Mei...

So erstellen Sie Ihre erste React-Seite

Inhaltsverzeichnis Was ist Rract? Hintergrund Rea...

30 kostenlose hochwertige englische Ribbon-Schriftarten

30 kostenlose englische Ribbon-Schriftarten in hoh...