Comment obtenir et analyser les décharges de fil, Jaspersoft communautaire
introduction
Un vidage de thread Java est un instantané ce que chaque fil dans la machine virtuelle Java est en train de faire à un moment donné dans le temps. Chaque fil dans la machine virtuelle Java est répertorié avec son nom et identifiant, son état actuel et la pile d'appel Java montrant ce moniteur, il a verrouillé ou est en attente. Ceci est particulièrement utile si votre application Java semble parfois se bloquer lors de l'exécution sous la charge, comme une analyse de la décharge montrera où les fils sont bloqués, soit par blocage ou tout autre conflit de thread.
Comment obtenir une décharge de fil
Sur la plupart des saveurs de Unix kill -3
Si l'application a été lancée à partir d'une fenêtre de commande, vous pouvez sélectionner la fenêtre et utiliser CTRL + Breakbut la sortie probable déborder la fenêtre. Jstack est disponible si vous utilisez le JDK Sun / Oracle et OpenJDK. Sinon, utilisez Psexec.exe pour exécuter SendSignal.exe. En outre, si Tomcat est démarré en tant que service, il est nécessaire d'utiliser SendSignal.
Combien de décharges fil ai-je besoin
Souvent, un seul thread dump révélera le problème, cela est particulièrement vrai avec deux ou blocages lorsque de plus de fils sont en attente de verrous obtenus par l'autre. Mais dans d'autres cas, tels que les fils d'attente sur d'autres processus, comme IO à partir d'une base de données, vous ne serez pas en mesure de détecter avec une seule décharge de fil. Dans ce cas, plusieurs décharges de fil prises au fil du temps montrera le fil en attendant la fin du processus au cours de ce laps de temps.
Parfois, la question est intermitent, se produisant à des moments aléatoires. Puisque vous voulez rassembler la série de fil des décharges avant que le problème apparaît, vous pouvez créer une tâche cron sur les systèmes Unix ou utiliser le Planificateur de tâches sur Windows pour exécuter le script à intervalles réguliers pour obtenir une fenêtre de deux heures de décharges de fil (le script supprime tout fichier de vidage plus de deux heures afin de ne pas remplir le système de fichiers). Un travail de cron échantillon est inclus dans les scripts.
L'analyse des décharges de fil
Une description détaillée de la façon d'analyser les décharges de fil est au-delà de la portée de cet article.
Cependant, il y a une foule de bons articles sur le Web qui expain le processus en détail. Voici deux sources que j'aime: