Frage

Ich leite JBoss 5. Ich sehe, dass die Speicherbehörde im Laufe der Zeit steigt. Die Anzahl der aktiven Threads nimmt zu. Der folgende StackTrace stammt aus einem aktiven Faden, der einer von vielen Fäden ist (dies sind die Fäden, die als Zeitablauf hinzugefügt werden). Was kann ich aus der Stacktrace lernen? Wie kann ich tiefer gehen und eine klarere Sicht darauf haben, was los ist?

Name: Workmanager (2) -92 Zustand: Warten auf java.util.concurrent

Stack Trace: sun.misc.unsafe.park (native Methode) java.util.concurrent 1925) java.util.concurrent.linkedBlockingQueue.take (LinkedBlockingQueue.java:358) java.util.concurrent 907) java.lang.thread.run (thread.java:619)

Danke, Rod

War es hilfreich?

Lösung

Dieser Thread sieht so aus, als ob er auf Gettask () wartet, dh es wartet nur auf eine Arbeit.

Neue Themen werden anladern, wenn Anfragen eingehen.

Die Speicherverwendung wächst im Laufe der Zeit, bis die JVM beschließt, einen Müll zu sammeln. Wenn es weiter wächst und GC von JConsole auszuführen, ist es keinen Unterschied, dass Sie ein Speicherleck haben. Es kann schwierig sein, Lecks zu finden, aber Sie könnten verwenden MATTE zu erleichtern.

Andere Tipps

Sie werden mehr davon erfahren, indem Sie die JConsole von JDK1.6 oder JDK1.7 ausführen. Die jconsole.exe in jdk1.5 ist "Old-School".

Ich würde vorschlagen, dass Sie zunächst mit der Profilierung beginnen Jvisualvm. Sie erhalten Diagramme im Laufe der Zeit der Haufensnutzung, der Fäden, der Müllsammlung usw.

Sie können auch eine Haufen Müllkippe mitnehmen JMAP, und dann analysieren mit Jhat oder Matte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top