Comment faire pour obtenir et analyser Java Discussion dumps - Sigmainfy - Apprendre, partager et Inspire

Ce message explique comment obtenir Java thread dump kill et jstack et comment analyser le fichier de vidage, un exemple d'analyse de verrouillage mort est donné trop.

Pourquoi nous voulons un Java fil Dump

Comment obtenir un Java fil Dump

Il y a deux façons d'obtenir la décharge de fil Java.

exécuter la commande « kill -3 pid », on peut utiliser « ps -ef

grep java » pour trouver le processus Java pid « tuer -3 pid » il suffit d'envoyer une demande à cette machine virtuelle Java, et par défaut, JVM sortie le résultat sauvegarde dans la sortie standard (même destination System.out.print).

  • utiliser jstack, simple commande run « jstack pid », il y a quelques options disponibles pour jstack, comme des forces -f la machine virtuelle Java pour effectuer un vidage de thread Java.
  • Notez les différences entre les deux ci-dessus moyens, tuer -3 il suffit d'envoyer une demande, mais jstack devra recevoir le résultat et la sortie à la sortie standard. C'est, tuer -3 simplement envoyer la demande, et il est resposible pas pour afficher le vidage Java, après JVM obtenir le requst de tuer -3, la machine virtuelle Java prendra la resposiblity à la sortie de la décharge, de sorte que si vous avez un Eclipse application de test, et dans votre terminal, vous envoyez kill -3 à ce processus java, dans le panneau de sortie d'éclipse, vous verrez les résultats. D'autre part, jstack gère directement les résultats et la sortie à la borne directement, afin que nous puissions rediriger les sorties, faire quelque chose comme « jstack pid> threads.dump ».

    jstack est la voie préférable.

    Exemple de DeadLock Java Discussion Dump

    Nous pouvons exécuter le code de test ci-dessus, et nous pourrions voir le blocage de l'application, et la sortie standard sera coincé à un moment donné de temps (moins de 200 lignes), quelque chose comme ce qui suit:

    Articles Liés