java.lang.OutOfMemoryError: GC overhead limit exceeded
Java November 14th, 2008Speicher ist immer zu knapp – das ist nichts neues. Aus Zeiten als 64MB noch recht viel waren, stammt der Default Wert für eine Java VM: 64MB für den Heap, da muss die Applikation reinpassen.
Normalerweise stellt man (mittels -Xmx) eine entsprechend größere Heap Größe für die Java VM ein, insbesondere für Applikationsserver. Einen Sonderfall des „out of memory error“ ist der „GC overhead limit exceeded“ Fehler. Dieser wird dann erzeugt, wenn der Garbage Collector zu viel Zeit damit zu bringt, Speicherplatz frei zu räumen, und die Applikation nicht mehr dazu kommt, zu arbeiten. (GC Dokumentation)
Abhilfe schafft hier ebenfalls ein größerer Heap Space für die JVM, bzgl. ein Profiling der Applikation, um Speicherlecks zu finden. (Wird eine Applikation per Maven-jetty-Plugin testweise gestartet, wird hier übrigens keine separate JVM gestartet, sondern die von Maven weiter verwendet. Damit hilft hier MAVEN_OPTS entsprechend zu konfigurieren.)
Neue Kommentare