Jeder von Euch kennt sicherlich die Situation, dass Java Anwendungsserver sehr viel Speicher benötigen und dort im schlechtesten Fall sogar OutOfMemory-Exceptions auftreten können. Die Ursachen für die hohen Speicheranforderungen können dabei sehr vielfältig sein: sie reichen von konstant wachsenden Systemen über speicherhungrige Anwendungen, die große Mengen an Daten zwischenspeichern, bis zu Fehlerverhalten der Anwendungsserver.
Oftmals wird bei Speicherproblemen leider oft noch der „einfachste“ Weg gewählt, indem dem Anwendungsserver mehr Speicher zugeteilt und nicht weiter nach den eigentlichen Ursachen des hohen Speicherverbrauchs geforscht wird. Dabei ist bei diesem Vorgehen in der Regel unklar, ob damit das ursächliche Problem behoben oder das erneute Auftreten des Problems einfach nur zeitlich herausgezögert wird.
Ein probates Mittel, solche Speicherprobleme zu analysieren und zu beheben, sind dabei Heap-Dumps. Bei einem Heap-Dump handelt es sich dabei um ein zu einem definierten Zeitpunkt erstelltes Speicherabbild der JVM eines Java Programms. Seit der Java-Version 1.6 existiert im JDK ein kleines Tool, das die Erstellung von Heap-Dumps zur Laufzeit des Anwendungsservers ermöglicht.
weiterlesen