Outil de ligne de commande pour surveiller Java Heap

14

Existe-t-il un outil en ligne de commande pour surveiller l'utilisation de la taille du tas de Java dans CentOS?

Mughil
la source

Réponses:

6

Utilisez jpset jstackpour en savoir plus sur les processus Java. jstatpeut également être utile pour la surveillance des statistiques Java.

Nikhil Mulley
la source
6
cd /opt/www/java/jdk/bin/

# jmap -heap <JAVA_PID>
Anurag Sharma
la source
a rencontré une erreur lors de son utilisation: "Impossible de se connecter au vidage de mémoire ou au serveur de débogage distant. Utilisez plutôt jhsdb jmap." jhsdb jmap --heap --pid xxxxa fait l'affaire
Tom
4

jvmtop est un outil en ligne de commande qui fournit une vue en direct sur plusieurs mesures, y compris le tas.

Exemple de sortie du mode de présentation 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
MRalwasser
la source
pourquoi il y a une erreur pour le processus 11272?
akirekadu
@akirekadu Il y a plusieurs raisons. Les plus courants sont des JDK incompatibles entre jvmtop et le jvm cible ou des autorisations insuffisantes / refusées. Voir la FAQ pour plus de détails.
MRalwasser
1

Vous souhaitez probablement analyser l'utilisation de la mémoire.

GCView peut vous aider à visualiser ce que le journal GC affiche.

Si vous avez déjà activé le gc-log, vous pouvez simplement l'utiliser tail -fsur ce journal.

Nils
la source
1

Essayez cela, cela a fonctionné dans Ubuntu et Redhat:

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

Pour les fenêtres:

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

Pour Mac

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

La sortie de toutes ces commandes ressemble à la sortie ci-dessous:

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 Runtime Environment (build 1.7.0_05-b05) Java HotSpot (TM) 64-Bit Server VM (build 23.1-b03, mode mixte)

Pour trouver la taille en Mo, divisez la valeur avec (1024 * 1024)

Pour surveiller l'utilisation de la mémoire en direct, utilisez jconsole.

Capture d'écran de Jconsole

padippiste
la source
0

vous pouvez également consulter cet outil https://github.com/TeoGia/jotun

c'est un wrapper de jstat et affiche l'utilisation du tas et de la RAM au format json

sailorPeg
la source