Tomcat stürzt mit der Fehlermeldung java.lang.OutOfMemoryError: GC overhead limit exceeded
Nachdem der tomcat lief mehrere Monate, ich habe unexpectetly die folgenden Fehler.
Wir Neustart des tomcat und die Fehler erscheinen nicht jetzt, aber vielleicht kommen in der Zukunft wieder.
Ich sah, dass ein anderer Benutzer hatte anderes Ausnahmen, die im Zusammenhang mit der garbage collection, aber nicht genau mit den NIO-connector.
Nicht hat jemand eine Idee, warum dies passiert und was sollte der richtige fix, es zu vermeiden.
Jan 15, 2016 7:46:47 AM org.apache.tomcat.util.net.NioEndpoint$SocketProcessor run
SEVERE:
java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.Collections.synchronizedSet(Collections.java:1691)
at org.atmosphere.cpr.AtmosphereRequest$Builder.<init>(AtmosphereRequest.java:1146)
at org.atmosphere.cpr.AtmosphereRequest.wrap(AtmosphereRequest.java:1891)
at org.atmosphere.cpr.AtmosphereServlet.event(AtmosphereServlet.java:295)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilterEvent(ApplicationFilterChain.java:484)
at org.apache.catalina.core.ApplicationFilterChain.doFilterEvent(ApplicationFilterChain.java:377)
at org.apache.catalina.core.StandardWrapperValve.event(StandardWrapperValve.java:411)
at org.apache.catalina.core.StandardContextValve.event(StandardContextValve.java:146)
at org.apache.catalina.valves.ValveBase.event(ValveBase.java:224)
at org.apache.catalina.core.StandardHostValve.event(StandardHostValve.java:256)
at org.apache.catalina.valves.ValveBase.event(ValveBase.java:224)
at org.apache.catalina.valves.ValveBase.event(ValveBase.java:224)
at org.apache.catalina.core.StandardEngineValve.event(StandardEngineValve.java:138)
at org.apache.catalina.connector.CoyoteAdapter.event(CoyoteAdapter.java:210)
at org.apache.coyote.http11.Http11NioProcessor.event(Http11NioProcessor.java:124)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1690)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
InformationsquelleAutor Vesselin | 2016-01-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
OPTION 1 CATALINA.BAT
Wenn Sie Tomcat aus den folgenden (Windows):
Dann sollten Sie erstellen Sie eine Datei setenv.bat, und fügen Sie die folgende Zeile:
OPTION 2 CATALINA.SH
Wenn Sie Tomcat aus den folgenden (Linux):
Dann haben Sie etwas ähnliches tun und schaffen setenv.sh hinzufügen etwas wie die folgenden:
Siehe auch Erhöhen Tomcat memory-Einstellungen
OPTION 3 TOMCAT-DIENST
Wenn Sie Tomcat aus einem Windows-Dienst installiert wurde, dass die Tomcat-installer, gehen Sie auf die Windows-Eingabeaufforderung, und führen Sie so etwas wie dieses (dieser ist für Tomcat 8 und können gefunden werden in so etwas wie "C:\Program Files\Apache Software Foundation\Tomcat 8.0\bin"):
Unter dem Register "Java", Sie werden sehen, Initial memory pool-und Maximum-Speicher-pool. Geben Sie diese in beide Felder
Klicken Sie auf Übernehmen und OK.
Aus der Task-Manager, Registerkarte "Dienste" Dienste, Wählen Sie Apache Tomcat und drücken Sie start
Siehe auch Konfigurieren von Tomcat als Dienst (kein catalina.bat) und https://plavc.wordpress.com/2012/02/08/tomcat-service-on-windows/
InformationsquelleAutor Scott Izu
Entweder dein server hat nicht genug Speicher für die Verwaltung einige besonders Speicher-raubende Aufgabe, oder haben Sie einen Speicherverlust.
-Xmx
und-Xms
VM-Argumente finden Sie unter Java-VM-Optionen .Diesem Thema sehen Sie ein vollständiges Beispiel für Tomcat : Erhöhen Tomcat memory-Einstellungen
heap dump
mit jmap zum Beispiel.Einen heap-dump-Datei zeigt den aktuellen heap-Zuweisung eines java-Prozess.
Hier
<file-name>
ist die Datei, die Sie erstellen möchten, und<process-id>
ist die id des Tomcat Prozess.Einige tools wie Eclipse MAT , öffnen und analysieren heap-dump-Datei, die Ihnen sagen, die Anzahl der Objekte, die durch die Klasse, belegten Speicher Objekt-Typen, Speicher-Leck-verdächtigen, und so weiter...
InformationsquelleAutor Arnaud