131 votes

tuer -3 pour obtenir un vidage de fil java

Bonjour, j'utilise la commande kill -3 pour voir le dump de threads de la JVM sous Unix. Mais où puis-je trouver le résultat de cette commande kill? Je suis perdu!!

217voto

Joshua McKinnon Points 12379

Vous pouvez également utiliser jstack (inclus avec JDK) pour effectuer un vidage de thread et écrire le résultat où vous le souhaitez. Est-ce que ce n'est pas disponible dans un environnement unix?

 jstack PID > outfile
 

48voto

Kris Babic Points 4114

Le vidage de thread est écrit sur le système à partir de la machine virtuelle sur laquelle vous avez exécuté kill -3. Si vous redirigez la sortie de la console de la machine virtuelle vers un fichier, le vidage de thread sera dans ce fichier. Si la machine virtuelle Java est en cours d'exécution dans une console ouverte, le vidage de thread sera affiché dans sa console.

34voto

Vadzim Points 4460

Il existe un moyen de rediriger la sortie du vidage du thread JVM sur le signal de rupture en fichier séparé avec l'option de diagnostic LogVMOutput :

 -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=jvm.log
 

13voto

Daniel Points 13823

Au même endroit que la sortie standard de la JVM. Si vous avez un serveur Tomcat, ce sera le fichier catalina_(date).out .

9voto

Apoorve Points 60

Lors de l'utilisation de tuer -3 on devrait voir le thread dump dans la sortie standard. La plupart des serveurs d'application écrire la sortie standard dans un fichier séparé. Vous devriez le trouver là-bas lors de l'utilisation de tuer -3. Il y a de multiples façons de s'fil des dumps:

  • Tuer -3 : Donne la sortie standard.
  • Si l'on a accès à la fenêtre de la console où le serveur est en cours d'exécution, on peut utiliser Ctrl+Pause combinaison de touches pour générer la trace de la pile sur les mst sortie.
  • Pour hotspot VM, on peut également utiliser jstack commande pour générer thread dump. C'est une partie du JDK. La syntaxe est comme suit: Utilisation: jstack [-l] (connecter à l'exécution du processus) jstack -F [-m] [-l] (pour se connecter à un processus bloqué)
  • Pour JRockit JVM, nous pouvons utiliser JRCMD de commande qui est livré avec le JDK Syntaxe: jrcmd [ []] [-l] [-f fichier] [-p] -h]

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