Comment analyser les informations d'un vidage de noyau Java? [fermé]


Si un processus se bloque et laisse un vidage de mémoire ou si j'en crée un avec gcore alors comment puis-je l'analyser?

, je voudrais être en mesure d'utiliser jmap, jstack, jstat etc et aussi pour voir les valeurs de toutes les variables.

De cette façon, je peux trouver les raisons d'une JVM plantée ou gelée.

Author: ks1322, 2009-06-04

10 answers

Ok si vous avez créé le vidage de mémoire avec gcore ou gdb, vous devrez le convertir en quelque chose appelé un fichier HPROF. Ceux-ci peuvent être utilisés par VisualVM, Netbeans ou l'outil Memory Analyzer d'Eclipse (anciennement SAP Memory Analyzer). Je recommanderais Eclipse MAT.

Pour convertir le fichier, utilisez l'outil de ligne de commande les.

# jmap -dump:format=b,file=dump.hprof /usr/bin/java core.1234

Où:

dump.hprof est le nom du fichier hprof que vous souhaitez créer

/ usr / bin / java est le chemin vers le version du binaire java qui a généré le vidage de mémoire

Noyau.1234 est votre fichier de base.

 39
Author: chillitom, 2009-07-28 08:38:02

Si vous utilisez une JVM IBM , téléchargez leAnalyseur de vidage de threads et de moniteurs IBM . C'est un excellent outil. Il fournit des détails sur les threads et peut signaler les blocages, etc. L'article de blog suivant fournit un bon aperçu de la façon de l'utiliser.

 8
Author: cmd, 2014-03-11 01:04:59

Peut-être que VisualVM peut aider (je n'ai pas encore eu la chance de l'essayer moi-même). Lien:

Http://java.sun.com/javase/6/docs/technotes/guides/visualvm/coredumps.html

 5
Author: brianmarco, 2009-06-04 15:03:21

Êtes-vous sûr qu'un vidage de mémoire est ce que vous voulez ici? Cela contiendra les tripes brutes de la JVM en cours d'exécution, plutôt que des informations de niveau java. Peut-être qu'un vidage de tas JVM est plus ce dont vous avez besoin.

 5
Author: skaffman, 2009-06-04 15:22:28

En fait, VisualVM peut traiter le vidage de mémoire d'application.

Il suffit d'appeler "File/Add VM Coredump" et ajoutera une nouvelle application dans l'explorateur d'applications. Vous pouvez ensuite effectuer un vidage de thread ou un vidage de tas de cette JVM.

 2
Author: JB-, 2009-10-22 07:03:40

Essayez l'analyseur de pile lady4j, cela pourrait vous aider:

Http://www.lady4j.com/solveStack.jsp

 1
Author: Axel, 2010-05-20 21:07:43

IBM fournit un certain nombre d'outils qui peuvent également être utilisés sur la jvm sun. Jetez un oeil à certains des projets sur alphaworks, ils fournissent un tas et des analyseurs de vidage de threads

Karl

 0
Author: Karl, 2009-06-04 15:02:24

Je vous recommande d'essayer Netbeans Profiler.Il est riche ensemble d'outils d'analyse en temps réel. Les outils d'IbM valent la peine d'être essayés pour l'analyse hors ligne

 0
Author: Santosh Gokak, 2009-06-04 15:12:09

Jhat est l'un des meilleurs que j'ai utilisé so far.To prenez un vidage de mémoire, je pense que vous feriez mieux d'utiliser jmap et jps au lieu de gcore (je ne l'ai pas utilisé).Vérifiez le lien pour voir comment utiliser jhat. http://www.lshift.net/blog/2006/03/08/java-memory-profiling-with-jmap-and-jhat

 0
Author: Emil, 2010-07-27 07:00:57

Voir http://www.oracle.com/technetwork/java/javase/tsg-vm-149989.pdf. Vous pouvez utiliser "jdb" directement sur le fichier de base.

 0
Author: Dave Pacheco, 2011-05-13 19:56:28