Welcher Thread setzt meinen Server unter Last?

kommentiert 0
gelesen 13

Hallo zusammen,

wenn eine Java-Webanwendung Probleme bereitet und die Auslastung des Servers auf 100% schnellt, ist es meist recht schwer herauszufinden, wer denn nun eigentlich der Übeltäter ist. Dabei ist eine genaue Analyse leichter als gedacht. Kurz zusammengefasst:

  1. Mithilfe von top die PID des Java-Prozesses ermitteln.
  2. In top Shift-H drücken. Dadurch werden, statt Prozessen, die einzelnen Threads angezeigt.
  3. Die ID des Java-Threads mit der hohen Auslastung heraussuchen und notieren.
  4. Einen Threaddump der Anwendung ziehen, z.B. mit jstack <PID>
  5. Die ID des Java-Threads in Hex umwandeln.
  6. Diese Hex-ID könnt ihr nun im Threaddump suchen und so ermitteln, welcher Thread der Übeltäter ist.

Eine etwas ausführlichere Anleitung findet ihr hier: http://code.nomad-labs.com/2010/11/18/identifying-which-java-thread-is-consuming-most-cpu/

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*Pflichtfelder

*