Kommandozeilen-Tool zur Überwachung von Java Heap

14

Gibt es ein Befehlszeilentool zum Überwachen der Verwendung der Heap-Größe von Java in CentOS?

Mughil
quelle

Antworten:

6

Verwenden Sie jpsund jstack, um mehr über Java-Prozesse zu erfahren. jstatkann auch für die Überwachung von Java-Statistiken nützlich sein.

Nikhil Mulley
quelle
6
cd /opt/www/java/jdk/bin/

# jmap -heap <JAVA_PID>
Anurag Sharma
quelle
Bei der Verwendung ist ein Fehler aufgetreten: "Es kann keine Verbindung zum Core-Dump- oder Remote-Debug-Server hergestellt werden. Verwenden Sie stattdessen jhsdb jmap." jhsdb jmap --heap --pid xxxxhat den Trick gemacht
Tom
4

jvmtop ist ein Befehlszeilentool, das eine Live-Ansicht für verschiedene Metriken, einschließlich Heap, bietet.

Beispielausgabe des VM-Übersichtsmodus:

 JvmTop 0.3 alpha (expect bugs)  amd64  8 cpus, Linux 2.6.32-27, load avg 0.12
 http://code.google.com/p/jvmtop

  PID MAIN-CLASS      HPCUR HPMAX NHCUR NHMAX    CPU     GC    VM USERNAME   #T DL
 3370 rapperSimpleApp  165m  455m  109m  176m  0.12%  0.00% S6U37 web        21
11272 ver.resin.Resin [ERROR: Could not attach to VM]
27338 WatchdogManager   11m   28m   23m  130m  0.00%  0.00% S6U37 web        31
19187 m.jvmtop.JvmTop   20m 3544m   13m  130m  0.93%  0.47% S6U37 web        20
16733 artup.Bootstrap  159m  455m  166m  304m  0.12%  0.00% S6U37 web        46
MRalwasser
quelle
Warum gibt es einen Fehler für Prozess 11272?
Akirekadu
@akirekadu Es gibt viele Gründe. Die häufigsten sind inkompatible JDKs zwischen jvmtop und dem Ziel-JVM oder unzureichende / verweigerte Berechtigungen. Siehe FAQ für Details.
MRalwasser
1

Sie möchten wahrscheinlich die Speichernutzung analysieren.

Mit GCView können Sie möglicherweise visualisieren, was im GC-Protokoll angezeigt wird.

Wenn Sie das gc-Protokoll bereits aktiviert haben, können Sie es nur tail -ffür dieses Protokoll verwenden.

Nils
quelle
1

Versuchen Sie dies, es funktionierte in Ubuntu und RedHat:

java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'

Für Windows:

java -XX:+PrintFlagsFinal -version | findstr /i "HeapSize PermSize ThreadStackSize"

Für Mac

java -XX:+PrintFlagsFinal -version | grep -iE 'heapsize|permsize|threadstacksize'

Die Ausgabe all dieser Befehle ähnelt der folgenden Ausgabe:

uintx InitialHeapSize                          := 20655360        {product}
uintx MaxHeapSize                              := 331350016       {product}
uintx PermSize                                  = 21757952        {pd product}
uintx MaxPermSize                               = 85983232        {pd product}
 intx ThreadStackSize                           = 1024            {pd product}

Java-Version "1.7.0_05" Java (TM) SE-Laufzeitumgebung (Build 1.7.0_05-b05) Java HotSpot (TM) 64-Bit-Server-VM (Build 23.1-b03, gemischter Modus)

Um die Größe in MB zu ermitteln, teilen Sie den Wert durch (1024 * 1024).

Verwenden Sie zur Überwachung der Verwendung des Live-Heap-Speichers jconsole.

Jconsole Screenshot

Padippist
quelle
0

Sie können dieses Tool auch unter https://github.com/TeoGia/jotun überprüfen

Es ist ein Wrapper von jstat und gibt die Heap- und RAM-Nutzung im json-Format aus

sailorPeg
quelle