Wir haben eine Wildfly-Instanz mit einer einfachen Java-Rest-Anwendung auf einem 36-Core-Server ausgeführt. Die Anwendung hat keine Standardjobs, die im Hintergrund ausgeführt werden, sie antwortet einfach auf Benutzeranforderungen (< 500 pro Tag).Analysieren Sie den Remote-Debugging-Stack einer Java-Anwendung auf Wildfly
Unser Administrator bemerkte heute Nacht ein seltsames Verhalten. Die Wildfly-Instanz nutzte anscheinend die volle Kapazität des Servers seit 2:00 Uhr morgens. Zu dieser Zeit konnte kein Benutzer die Anwendung benutzt haben. Es sind keine Protokolldateien zwischen der letzten Benutzeraktion am Vorabend und der ersten Benutzeraktion heute Morgen verfügbar.
Ich habe den Remote-Debugger in Eclipse gestartet und würde gerne verstehen, was alle von Wildfly gestarteten Threads tatsächlich tun?
- 68 Einträge. Wozu dienen diese Threads? Können sie die Performance/Kapazitätsabdeckung beeinflusst haben? Kann ich die Anzahl dieser Threads beschränken? Sollte ich es machen?
Deamon Thread [weld-worker-xx](Running)
25 Einträge.Thread[default task-x](Running)
8 Einträge. Dies sind wahrscheinlich die eigentlichen Benutzeraufgaben?Thread[XNIO-1 I/O-x](Running)
2 Einträge. Eingabe/Ausgabe in die Datenbank? Oder irgendeine Datei, wie e.q.Daemon Thread [Transaction Reaper](Running)
Deamon Thread [Transaction Reaper Worker 0](Running)
Thread [Periodic Recovery](Running)
- Viele
<not responding>
. Was bedeutet das eigentlich? Die Threads laufen, aber ich darf nicht reinschauen?
Dies ist eine ziemlich breite Frage, aber ich vermute, dass Ihre Probleme mit den Threads sind, die nicht reagieren. Ich könnte mir vorstellen, dass sie die sind, die sich drehen und die CPU essen. – Kayaman
Sie könnten auch 'kill -3 ausgeben lassen, damit Wildfly einen Thread-Dump nach stdout druckt (der in eine Datei umgeleitet werden sollte). Speichern Sie den Speicherauszug für eine spätere Analyse. –
Kayaman
Hallo Kayaman, danke für den Hinweis. Die '' Threads verschwanden nach einem Neustart und die Performance wurde einigermaßen besser. Wir werden versuchen, beim nächsten Auftreten des Problems einen Thread-Dump zu drucken. Ich bin immer noch an Erläuterungen zu allen anderen Thread-Stack-Einträgen interessiert, nur um zu verstehen, was normalerweise passiert. Also wäre jede Erklärung großartig! –