Überprüfen Sie die Heap-Nutzung mit Java Flight Recorder

Was ich tun wollte, war, mit jcmd die jfr-Datei auf dem Webanwendungsserver abzurufen und den Heap-Nutzungsstatus mit jmc auf meinem PC (Windows) für die Entwicklung zu überprüfen.

Grundinformation

Schlussfolgerung (wo die Lösung einige Zeit in Anspruch nahm)

Um die Nutzungsdaten von heap in der jfr-Datei aufzuzeichnen, muss das Profil geändert und als Einstellungsparameter von jcmd übergeben werden. (Ich habe lange gebraucht, um dorthin zu gelangen, wahrscheinlich weil ich nicht danach gesucht habe.)

Verfahren

1. 1. Profiländerung

Im Folgenden werden zwei Arten von Profilen gespeichert.

$ cd [JDK_PATH]/jre/lib/jfr
$ ll
-rw-r--r--1 root root 20109 6. Oktober 22:55 default.jfc
-rw-r--r--1 Wurzel Wurzel 20065 6. Oktober 22:55 profile.jfc

Kopieren Sie profile.jfc (myProfile.jfc) und aktivieren Sie den Teil des Heaps, der mit der Datenaufzeichnung in Zusammenhang zu stehen scheint. Ich bin mir nicht sicher, ob dies korrekt ist, da ich hier keine Referenz finden konnte. (Aber es funktioniert.)

<!--Von falsch nach wahr um Zeile 127-->
<flag name="heap-statistics-enabled" label="Heap Statistics">true</flag>

<!--Von falsch nach wahr um Zeile 268-->
    <event path="vm/gc/detailed/object_count">
      <setting name="enabled" control="heap-statistics-enabled">true</setting>
      <setting name="period">everyChunk</setting>
    </event>

2. Holen Sie sich jfr Datei

Ich werde die detaillierten Informationen weglassen, aber es geht darum, das zuvor mit dem Einstellungsparameter erstellte Profil anzugeben.

jcmd [PID] JFR.start name=MyJfrRec settings=myProfile maxsize=100mb dumponexit=true filename=/tmp/myJfrRec.jfr

Überprüfen Sie den Aufnahmestatus

jcmd [PID] JFR.check

Speicherauszug der aufgezeichneten Informationen

jcmd [PID] JFR.dump name=MyJfrRec filename=/tmp/mytasrec.jfr

Ende der Aufnahme

jcmd [PID] JFR.stop name=MyJfrRec

Wenn Sie danach die erfasste jfr-Datei in jmc laden, wird das Diagramm mit einem guten Gefühl ausgegeben.

[Seite, auf die ich mich bezog] http://waysaku.hatenablog.com/entry/2014/07/22/005304 https://blogs.oracle.com/poonam/clarifying-some-confusion-around-java-flight-recordings

Wir suchen Ingenieure. Ich hoffe, Sie können das auch sehen. https://www.nittsu-infosys.com/recruit/2019/index.html

Recommended Posts

Überprüfen Sie die Heap-Nutzung mit Java Flight Recorder
Fehlerbehebung mit Java Flight Recorder
Führen Sie die Analyse mit OpenJDK11 Java Flight Recorder + Google Kubernetes Engine aus
[Java 8] Doppelte Löschung (& doppelte Überprüfung) mit Stream
Ich habe Java Flight Recorder (JFR) überprüft.
[Java] Elementexistenzprüfung mit Stream
Java-Versionsprüfung
OpenJDK 11 Flugschreiber
Java-Überprüfungsprozess
Überprüfen Sie das Verhalten von Java Intrinsic Locks mit bpftrace
Überprüfen Sie die Abdeckung mit Codecov in der Java + Gradle + Wercker-Konfiguration
Installieren Sie Java mit Homebrew
Überprüfen Sie die Implementierung von Java toString ()
Wechseln Sie die Plätze mit Java
Installieren Sie Java mit Ansible
Bequemer Download mit JAVA
Verwendung von Java-Variablen
Schalten Sie Java mit direnv
Java-Download mit Ansible
Lass uns mit Java kratzen! !!
Erstellen Sie Java mit Wercker
Endian-Konvertierung mit JAVA
[Java] Überprüfen Sie den Unterschied zwischen orElse und orElseGet mit IntStream
[Maven] Deaktivieren Sie den .Net-basierten Assembly Analyzer mit OWASP Dependency Check [Java].