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?

Réponses:


6

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


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

# jmap -heap <JAVA_PID>

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

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.


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


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.