Strumento da riga di comando per il monitoraggio di Java Heap


14

Esiste uno strumento da riga di comando per monitorare l'utilizzo delle dimensioni dell'heap di Java in CentOS?

Risposte:


6

Utilizzare jpse jstackper saperne di più sui processi Java. jstatpuò anche essere utile per il monitoraggio delle statistiche Java.


6
cd /opt/www/java/jdk/bin/

# jmap -heap <JAVA_PID>

ha riscontrato un errore durante l'utilizzo: "Impossibile connettersi al dump principale o al server di debug remoto. Utilizzare invece jhsdb jmap." jhsdb jmap --heap --pid xxxxha fatto il trucco
Tom,

4

jvmtop è uno strumento da riga di comando che fornisce una vista dal vivo su diverse metriche, incluso heap.

Esempio di output della modalità panoramica VM:

 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

perché c'è un errore per il processo 11272?
Akirekadu,

@akirekadu Ci sono molte ragioni. I più comuni sono JDK incompatibili tra jvmtop e jvm di destinazione o autorizzazioni insufficienti / negate. Vedi le FAQ per i dettagli.
MRalwasser,

1

Probabilmente vuoi analizzare l'utilizzo della memoria.

GCView potrebbe aiutarti a visualizzare ciò che mostra il registro GC.

Se hai già abilitato gc-log, puoi semplicemente usarlo tail -fsu quel registro.


1

Prova questo ha funzionato in Ubuntu e Redhat:

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

Per windows:

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

Per mac

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

L'output di tutti questi comandi è simile all'output seguente:

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

versione java "1.7.0_05" Java (TM) SE Runtime Environment (build 1.7.0_05-b05) Java HotSpot (TM) VM a 64 bit Server (build 23.1-b03, modalità mista)

Per trovare la dimensione in MB dividere il valore con (1024 * 1024)

Per monitorare l'utilizzo della memoria di heap live, utilizzare jconsole.

Screenshot di Jconsole


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.