Lesen von Java Memory Management und GC Viewer

Dies ist ein Protokoll, als ich eine Anwendung untersuchte, die von OOM Killer aufgrund von Speichermangel in der JVM getötet wurde. Ich habe GC Viewer verwendet, um die GC-Protokolldatei auf den Übergang der Speichernutzung zu überprüfen.

Vorher habe ich auch die Gliederung der Java-Speicherverwaltung neu organisiert, also habe ich sie beschrieben.

Übersicht über die Java-Speicherverwaltung

Zum Anzeigen von GCViewer benötigen Sie einige Grundkenntnisse in der Java-Speicherverwaltung.

Dieser Artikel war sehr hilfreich. Vielen Dank. http://qiita.com/opengl-8080/items/64152ee9965441f7667b

java memory Ein sehr grobes Diagramm, das die Speicherstruktur zeigt. Es gibt zwei große Bereiche, den Heap-Bereich und den Native-Bereich. Der Heap ist ein Bereich, der von Java-Programmen verwendet wird, und im Programm erstellte Objekte werden in diesem Heap-Bereich abgelegt. Auf der anderen Seite wird der native Bereich zum Verwalten des Speichers und der Threads verwendet, die für die Ausführung der JVM erforderlich sind.

(Quelle: http://qiita.com/opengl-8080/items/64152ee9965441f7667b#java-%E3%81%AE%E3%83%A1%E3%83%A2%E3%83%AA%E7%AE% A1% E7% 90% 86)

Anhand der obigen Informationen können Sie erkennen, dass sich auf dem Haufen Jung (Neu) und Alt (Tenurd) befinden.

Der Fluss der GC scheint wie folgt zu sein.

Referenzseite

http://qiita.com/taisho6339/items/a6a7954bd473e16706bd http://blog.pepese.com/entry/20120508/1336467306 http://www.whitemark.co.jp/tec/java/javagc.html

Versuchen Sie auf dieser Grundlage, GC Viewer zu verwenden

https://github.com/chewiebug/GCViewer/wiki/Changelog Das Obige ist die URL zum Herunterladen der Anwendung.

Wie benutzt man

Öffnen Sie einfach die heruntergeladene Anwendung und ziehen Sie die GC-Protokolldatei per Drag & Drop. Es war einfach.

Aussicht

Screen Shot 2017-08-30 at 16.22.44.png

Zuerst werden viele Linien und Bereiche angezeigt, aber ich habe in den Ansichtseinstellungen nur die erforderlichen eingegrenzt. Der angezeigte Bereich und das Ziel sind wie folgt.

Aus dem Obigen kann geschlossen werden, dass OOM Killer aufgrund von Speichermangel in dem Bereich ausgeführt wurde, in dem die schwarzen Linien ganz rechts dicht sind.

Bonus

Dies ist die Ausgabe von GC Viewer nach dem Erhöhen des Speichers.

Screen Shot 2017-08-30 at 19.30.06.png

Es war stabil.

das ist alles.

Recommended Posts

Lesen von Java Memory Management und GC Viewer
Verwendung von GC Viewer
[Java] Wie man Dateien ausgibt und schreibt!
Wie man Java SE8 Gold bekommt und studiert
So greifen Sie auf Java Private-Methoden und -Felder zu
[Java] Verwendung der Kalenderklasse und der Datumsklasse
<java> Zip-Datei lesen und direkt in String konvertieren
[Java] Arten von Kommentaren und wie man sie schreibt
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
[Java] Verwendung von Map
So deinstallieren Sie Java 8 (Mac)
Java - So erstellen Sie JTable
Verwendung von Java Optional
So minimieren Sie Java-Images
Wie schreibe ich einen Java-Kommentar
Verwendung der Java-Klasse
[Java] Verwendung von removeAll ()
[Java] So zeigen Sie Wingdings an
Verwendung von Java Map
So legen Sie Java-Konstanten fest
Verwendung von Java-Variablen
[iOS] Wie man Karthago liest
So konvertieren Sie Java Base
[Java] So implementieren Sie Multithreading
So initialisieren Sie ein Java-Array
So lesen Sie Ihre eigene YAML-Datei (*****. Yml) in Java
Bedingte Java-Verzweigung: Erstellen und Studieren von switch-Anweisungen
Unterschied zwischen Java und JavaScript (wie man den Durchschnitt findet)
Was ist in "Java 8 bis Java 11" passiert und wie wird eine Umgebung erstellt?
Aufrufen und Verwenden der API in Java (Spring Boot)
Schreiben und Notizen bei der Migration von VB zu JAVA
So entwickeln und registrieren Sie eine Sota-App in Java
Unterschiede im Umgang mit Zeichenfolgen zwischen Java und Perl
Verwendung von StringBurrer und Arrays.toString.
So lernen Sie Java Silver SE 8
Verwendung von HttpClient (Get) von Java
Java # 6 studieren (Wie man Blöcke schreibt)
So erstellen Sie einen Java-Container
So zerlegen Sie eine Java-Klassendatei
Verwendung von HttpClient (Post) von Java
[Java] Verwendung der Join-Methode
Informationen zu TestSize, das von Google empfohlen wird, und zur Realisierung von TestSize durch Java und Maven
Grundlagen der Java-Entwicklung ~ Schreiben von Programmen (Variablen und Typen) ~
Wie man JAVA in 7 Tagen lernt
Aufrufen von Klassen und Methoden
[Java] Verwendung statischer Modifikatoren (Was sind statische endgültige und statische Importe)
Wie man Gleichheit und Gleichheit benutzt (wie man Gleichheit benutzt)
[Verarbeitung × Java] Verwendung von Variablen
So lesen Sie eine Datei und behandeln sie als Standardeingabe
So verbinden Sie Heroku und Sequel
So dekompilieren Sie eine Java-Klassendatei
So konvertieren Sie LocalDate und Timestamp
[JavaFX] [Java8] Verwendung von GridPane