Welcher Thread setzt meinen Server unter Last?

25.04.2015 -

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.

 

Back to overview

Write a comment

Your e-mail address will not be published. Required fields are marked with *

*Mandatory fields

*