198 votes

Outil de ligne de commande pour trouver la taille de pile Java et la mémoire utilisée (Linux)?

Est-il un Outil de ligne de Commande (Linux) pour vérifier la Taille de Segment de mémoire (et la Mémoire) d'une Application Java?

J'ai essayé de jmap. Mais il donne de l'info. à propos de la mémoire interne de domaines comme Eden/PermGen etc., ce qui n'est pas utile pour moi.

Je suis à la recherche de quelque chose comme:
Max de Mémoire: 1 GO
Min Mémoire: 256 MO
Un segment de Mémoire: 700 MO
Mémoire utilisée: 460 MO

C'est tout. Je sais que je peux le voir dans JConsole, etc., mais j'ai besoin d'un outil de ligne de commande (impossible d'activer JMX etc.)

Un tel outil ou une commande?

171voto

farmer1992 Points 1767

Chaque processus Java a un pid, ce qui vous devez d'abord trouver avec l' jps commande.

Une fois que vous avez le pid, vous pouvez utiliser jstat -gc [insert-pid-here] à trouver des statistiques sur le comportement des déchets ramassés en tas. jstat -gccapacity [insert-pid-here] présenteront des informations sur la mémoire de la piscine de la génération et de l'espace des capacités.

Oracle docs:

http://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jstat.html

96voto

Atma Points 5393

java -XX: + PrintFlagsFinal -version | grep HeapSize

fonctionne amazon ami sur ec2 aussi

77voto

MRalwasser Points 4022

jvmtop est un outil de ligne de commande qui fournit une vue en direct de plusieurs métriques, notamment heap.

Exemple de sortie du mode de présentation de la machine virtuelle:

  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
 

34voto

Peter Lawrey Points 229686

Sans utiliser JMX, comme le font la plupart des outils, vous ne pouvez utiliser que

 jps -lvm
 

et en déduire que les paramètres proviendront des options de la ligne de commande.

Vous ne pouvez pas obtenir d'informations dynamiques sans JMX par défaut, mais vous pouvez écrire votre propre service pour le faire.

BTW: Je préfère utiliser VisualVM plutôt que JConsole.

5voto

xdhmoore Points 512

Eu des problèmes avec les autres réponses, mais une base

 ps -ef | grep java
 

m'a montré les arguments de vm, qui dans mon cas incluaient la valeur -Xmx, ce qui était tout ce dont j'avais besoin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X