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

4 Funktionen, die durch das Transform-Attribut in CSS3 implementiert werden

In CSS3 können mit der Transformationsfunktion vi...

Beheben Sie den Nginx-Fehler „504 Gateway Time-out“

Studenten, die Websites erstellen, stellen häufig...

Detaillierte Analyse der Replikation in MySQL

1.MySQL-Replikationskonzept Dies bedeutet, dass d...

mysql5.7-Remotezugriffseinstellungen

Das Einrichten des Fernzugriffs in mysql5.7 funkt...

HTML-Beispielcode zum Lesen und Anzeigen von Bildern in einem lokalen Ordner

Ein Zweck Wählen Sie auf der HTML-Seite einen lok...

MySQL 8.0.19 Win10 - Schnellinstallations-Tutorial

Dieses Tutorial enthält das Installationstutorial...

Tutorial zur Installation und Konfiguration von MySQL 5.7 unter CentOS7 (YUM)

Installationsumgebung: CentOS7 64-Bit, MySQL5.7 1...

Bringen Sie Ihnen bei, wie Sie Hive3.1.2 auf Tencent Cloud erstellen

Umgebungsvorbereitung Stellen Sie vor dem Starten...