façons comment obtenir une décharge de tas de Tomcat 7 en cours d'exécution
J'ai essayé ce Obtenir un heapdump sur la JVM de Tomcat 6
mais il ne fonctionne pas pour moi, il y a d'autres façons d'obtenir des tas de vidage de serveur tomcat? Merci à l'avance!
source d'informationauteur emdhie
Vous devez vous connecter pour publier un commentaire.
La façon la plus simple pour obtenir des tas de vidage est d'utiliser jmap. Sur la machine avec les processus java exécuter jmap de commande. Exemple d'utilisation:
utilisation jps à savoir java Pid.
Vous pouvez également faire heap dump par jvisualvm. Vous pouvez vous connecter à la machine distante via jmx ou jstatd. Vous pouvez faire heapdump et de les stocker sur l'ordinateur distant.
Pour analyser heapdumps peut vous conseiller: MAT. Outil très puissant qui vous permettra de comprendre les problèmes rapidement. Vous pouvez trouver ici bonne inro à la MAT.
Si vous ne voulez pas vous arrêter application pendant une longue période, vous pouvez faire cliché binaire(Vous pouvez utiliser gcore ou gdb). Et vous pouvez l'utilisation de jmap pour analyser gdb dump. Plus d'informations vous pouvez lire sur le atlassian blog. Méfiez-vous des quelques questions.
Une autre façon d'ailleurs le "Vidage tas"-Bouton de jvisualvm est via JMX-interface. De cette manière, même vous permet de spécifier l'emplacement de stockage de la sauvegarde.
se connecter à tomcat, JMX-serveur à l'aide de jconsole ou jvisualvm avec JMX-plugin. Puis arrivé à
com.sun.management
->HotSpotDiagnotic
->Operations
. À côté dedumpHeap
remplir les deux paramètres. À partir d'oracle documentation (voir ici):Puis appuyez sur
dumpHeap
et de regarder la VM geler pendant un certain temps lors de l'écriture du dump.Je recommande visual VM http://visualvm.java.net/ C'est un tout en un outil qui peut se connecter à tomcat, de créer et de lire des tas de vidage, crée thread dump, cpu et de la mémoire de l'échantillonneur.
Si vous utilisez une nouvelle version de jdk 1.7, VisualVM est déjà emballé dans votre jdk dossier.