Heim > Artikel > Betrieb und Instandhaltung > So verwenden Sie JVM-Überwachungs- und Analysetools in UAVStack
Als intelligenter Service-Technologie-Stack von AllInOne bietet UAVStack eine sehr umfassende Überwachungsdaten-Sampling-Funktion und unterstützt Datenüberwachung und Frühwarnung. Vor kurzem haben wir die ursprünglichen Datenerfassungs- und Anzeigefunktionen integriert, JVM-Analysefunktionen hinzugefügt und ein benutzerfreundlicheres JVM-Überwachungs- und Analysetool eingeführt.
Entwickler, die mit JDK vertraut sind, wissen, dass JDK selbst eine Reihe von JVM-Analysetools bereitstellt, darunter Jinfo, Jmap, JStack usw. Benutzer können über die Befehlszeile problemlos JVM-Speicherstapelinformationen, Speicherobjektzuordnung und grundlegende JVM-Startparameterinformationen abrufen. Diese Tools müssen jedoch in der Befehlszeilenumgebung ausgeführt werden und in der Produktionsumgebung über den Bastion-Host weitergeleitet werden.
Einige gute JVM-Analysetools in der Open-Source-Community können auch Funktionen wie das Abrufen grundlegender JVM-Informationen, das Verfolgen von Stapeln und das Abrufen von Speicherinformationen bereitstellen, erfordern jedoch auch die Unterstützung der Befehlszeilen-CLI.
Das von UAVStack eingeführte JVM-Überwachungs- und Analysetool bietet eine seitenbasierte Anzeigemethode zur grafischen Anzeige der gesammelten Überwachungsdaten. Außerdem bietet es grundlegende JVM-Parametererfassung, Speicherauszug, Thread-Analyse und Speicherzuordnungsstichprobe . und Hotspot-Methodenanalyse und andere Funktionen.
Das JVM-Überwachungs- und Analysetool basiert auf der bestehenden Architektur von UAVStack und ist in Front-End, Back-End und Middleware Enhancement Framework (MOF) unterteilt ). Darunter:
Das Frontend ist für die Anzeige von Daten und das Senden von Benutzerausführungsanweisungen an den Hintergrund verantwortlich; 🎜🎜#Der Hintergrund ist für die Erteilung von Anweisungen, die Beantwortung von Benutzeranfragen und die Verarbeitung der gesammelten Daten verantwortlich. Die Daten werden in Dateien geschrieben und dann über die von UAV bereitgestellte Dateiaggregationsfunktion hochgeladen.
Der gesamte Architekturprozess ist in der folgenden Abbildung dargestellt:
JMX bietet relevante Schnittstellen zum Abrufen grundlegender JVM-Überwachungsdaten wie Speicher-Heap-Größe, GC-Status usw., die die Grundlage für JVM-Überwachungsdaten bilden .
2.2 Middleware Enhancement Framework (MOF)
Als Grundlage für die gesamte Verknüpfung von Analysetools ist MOF von Benutzeranwendungen abhängig und bietet hauptsächlich die folgende grundlegende Unterstützung: #🎜 🎜#Java Attach API ist eine Reihe von nicht standardmäßigen APIs, die von Sun bereitgestellt werden und Benutzer mit der Ausführung von On verbinden können Führen Sie im Prozess der virtuellen Maschine Vorgänge wie das Mounten des Agenten aus.
Grundlegende Informationen umfassen die grundlegendsten und wichtigsten Informationen wie PID, Hostinformationen, Startparameter und JVM-Startzeit;
JVM-Parameter umfassen alle JVM-Startparameter, einschließlich der angegebenen Heap-Größe, Garbage Collector-Informationen usw.; Schreiben Geben Sie alle Konfigurationsinformationen in System.Properties und die Konfigurationseigenschaften von Javaagent ein.
Thread-Analyse erhält grundlegende Thread-Informationen durch Ausführen von jstack und Analysieren Sie die Ausgabeergebnisse, um Informationen wie die Anzahl der Thread-Zustände und ob es Deadlocks gibt, zu erhalten.
Die Thread-Ausführungszeit bezieht sich auf die Aktivitätszeit des Threads während des Abtastzeitraums. Die Abfrageergebnisse werden nach der gesamten Thread-Aktivitätszeit sortiert und es werden auch Informationen zum Thread-Namen und zur Thread-Ausführungszeit bereitgestellt, damit Benutzer den Ausführungsstatus der Anwendung beurteilen können.
Methoden-Hotspot-Sampling zählt die Ausführungszeit aller Methoden und stellt die Klasse bereit des Methodennamens und Methodennameninformationen. Unter anderem umfasst die Selbstausführungszeit einer Methode nicht die Ausführungszeit der Methode, die andere Methoden aufruft. Die Abfrageergebnisse werden in absteigender Reihenfolge nach der Selbstausführungszeit der Methode sortiert. Benutzer können die längeren Ausführungsmethoden innerhalb der aktuellen Anwendung anzeigen, um festzustellen, ob die Anwendung abnormal ist und optimiert werden muss.
Die Speicheranalyse basiert auf der statistischen Stichprobenanalyse von Threads und Heaps bietet hauptsächlich zwei Funktionen: Speicherzuweisung für jeden Thread und Details zur In-Heap-Zuweisung.
Thread-Speicherzuordnung liefert Informationen wie die Speicherzuteilungsgröße und den Thread-Namen jedes Threads, geordnet in absteigender Reihenfolge entsprechend der Speicherzuteilungsgröße. Benutzer können die Threads anzeigen, die derzeit viel Speicher belegen.
In-Heap-Zuweisung liefert die Anzahl der zugewiesenen Instanzen jeder Klasse in der Heap Und der belegte Heap-Speicher, absteigend nach der Größe des Heap-Speichers geordnet. Benutzer können diese Funktion als einfaches Dump- und Analysetool verwenden, um die Speicherzuordnung schnell zu analysieren und Speicherzuordnungsprobleme zu entdecken.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie JVM-Überwachungs- und Analysetools in UAVStack. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!