Automatische Java Deadlock Erkennung mit AppDynamics
31.8.2011 | 1 Minuten Lesezeit
Deadlocks sind üble Fehler für Programmierer. Sie treten niemals in der Entwicklungsumgebung auf, sondern nur in Produktion. Und weil sie die Produktion beeinträchtigen, werden sie von den Betriebsteams schnell durch Neustarts beseitigt. Leider gehen dabei auch wertvolle Hinweise auf die Ursache verloren.
Als Entwickler hat man so fast nie die Gelegenheit ein Deadlock in Aktion zu sehen.
Wäre es nicht toll diese Informationen zur Analyse zu haben? Etwas das so aussieht:
Gute Nachrichten! Ich habe mir dieses Bild nicht ausgedacht, sondern aus AppDynamics entnommen. AppDynamics erkennt Deadlocks in Produktionsumgebungen automatisch und bietet so alle Informationen zur Beseitigung der Problemursache.
Für den folgenden kurzen Screencast habe ich das „Dining Philosophers“ Problem genutzt, welches in einer abgewandelten Variante von Dr. Heinz Kabutz in seinem letzten Newsletter behandelt wurde. Heinz war kürzlich mit seinem Java Specialists Master Course bei codecentric in Düsseldorf und hat mir davon erzählt. Ich hatte schon länger vor das Feature zu demonstrieren, nur nie Zeit ein Deadlock zu programmieren. Danke Heinz 🙂
Sobald der AppDynamics Agent in einer JVM läuft, beobachtet er die Thead Aktivität und diagnostiziert Deadlocks völlig automatisch. Es ist keinerlei Konfiguration notwendig, und verursacht keinen nennenswerten Overhead, weshalb es sich insbesondere für Produktionsysteme eignet.
Da die Informationen für die Entwickler von AppDynamics gesichert werden, kann der Server problemlos neu gestartet werden. Die notwendigen Diagnoseinformationen stehen weiterhin zur Verfügung. Diese nützliche Funktion hat uns schon in einigen Java Performance Troubleshooting Einsätzen geholfen.
Für mich ist diese Deadlockerkennung ein Geheimtipp in AppDynamics. Das Feature ist leider nicht sofort zu erkennen, da es keinerlei Konfiguration bedarf und nur im Fehlerfall in Erscheinung trifft. Aber eigentlich ist es ja auch nicht schlecht, dass man solche Dinge nicht einstellen muss.
Weitere Beiträge
von Fabian Lange
Dein Job bei codecentric?
Jobs
Agile Developer und Consultant (w/d/m)
Alle Standorte
Gemeinsam bessere Projekte umsetzen.
Wir helfen deinem Unternehmen.
Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.
Hilf uns, noch besser zu werden.
Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.
Blog-Autor*in
Fabian Lange
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.