Wie man dorthin und Thread-Dumps, Jaspersoft Community-Analyse
Einführung
Ein Java-Thread-Dump ist eine Momentaufnahme, was jeder Thread in der JVM zu einem bestimmten Zeitpunkt zu tun. Jeder Thread in der JVM mit seinem Namen und ID aufgeführt ist, ist es aktuelle Zustand und der Java-Call-Stack zeigt, was überwacht sie gesperrt haben oder wartet auf. Dies ist besonders nützlich, wenn Ihre manchmal Java-Anwendung zu hängen scheint, wenn sie unter Last läuft, wie eine Analyse des Dumps wird zeigen, wo die Fäden fest sind, entweder durch Blockierung oder andere Thread-Konkurrenz.
Wie man ein Thread-Dump erhalten
Auf den meisten Unix-Varianten Kill -3
Wenn die Anwendung in einem Befehlsfenster gestartet wurde können Sie das Fenster auswählen und STRG + Breakbut die Ausgabe verwenden, wird wahrscheinlich das Fenster überfluten. Jstack ist verfügbar, wenn die Sun / Oracle JDK und openJDK verwenden. Andernfalls psexec.exe verwenden SendSignal.exe auszuführen. Auch, wenn Tomcat als Dienst gestartet wird, ist es notwendig, SendSignal zu verwenden.
Wie viele Thread-Dumps brauche ich
Oft wird ein einzelne Thread-Dump des Problem offenbaren wird, dann ist dies vor allem mit Deadlocks, wo zwei oder mehr Threads für Sperren, die von ihnen erhalten warten. Aber auch in anderen Fällen, wie Fäden aus einer Datenbank auf anderen Prozessen, wie IO warten, werden Sie nicht in der Lage sein, es mit einem einzigen Thread-Dump zu erkennen. In diesem Fall mehr Thread über die Zeit genommen Dumps den gleichen Thread zeigen wartet auf den Prozess während dieser Zeitspanne zu vervollständigen.
Manchmal ist das Problem intermitent, zu zufälligen Zeiten auftreten. Da Sie die Serie von Thread sammeln mögen Dumps, bevor das Problem oben knallt Sie einen cron-Job auf Unix-Systemen erstellen oder den Taskplaner unter Windows verwenden Sie das Skript in regelmäßigen Abständen laufen ein zweistündiges Fenster Thread-Dumps (das Skript zu erhalten jede Dump löscht älter als zwei Stunden Datei, so dass es das Dateisystem nicht auffüllt). Eine Probe Cron-Job wird mit den Skripten enthalten.
Analysieren der Thread-Dumps
Eine detaillierte Beschreibung, wie Faden-Dumps zu analysieren geht über den Rahmen dieses Artikels.
Allerdings gibt es eine Vielzahl von guten Artikeln über das Internet, die den Prozess im Detail expain. Hier sind zwei Quellen, die Ich mag: