java.lang.OutOfMemoryError: Java heap space bereitstellen .Krieg auf Tomcat 7
Immer folgende Fehlermeldung beim ausführen der war-Datei in tomcat7 (Ubuntu):
Exception in thread "http-bio-8080-AsyncTimeout" java.lang.OutOfMemoryError: Java heap space
at java.util.concurrent.ConcurrentLinkedQueue.iterator(ConcurrentLinkedQueue.java:667)
at org.apache.tomcat.util.net.JIoEndpoint$AsyncTimeout.run(JIoEndpoint.java:156)
at java.lang.Thread.run(Thread.java:745)
Bin ich immer oben-Ausnahme, wenn ich mein app.war-Datei in den webapps-Pfad.
- Was ist die Größe des Krieges-Datei?
- Oder vielmehr, was ist die Größe des heap? Es scheint, dass Sie haben zugeordnet zu wenig Speicher der jvm..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erhöhung der heap-Größe ist ein muss. Könnten Sie erstellen oder Bearbeiten Sie die $CATALINA_HOME/bin/setenv.sh fügen Sie die Zeile:
Dann starten Sie tomcat neu. Ich denke, es ist besser das entpacken der war-Datei und kopieren Sie Sie in $CATALINA_HOME/webapps, und darüber hinaus mit hot-deploy in der Produktion ist nicht eine gute Idee.
In meinem Fall passiert es, wenn ich der Nutzung meiner Anwendung ohne Neustart von tomcat. Ich denke, dass die GC (garbage-collector) hat einige Probleme, um die Freigabe des allokierten Speichers.
Mein workaround ist:
dies ist üblich in der Java-Welt und eigentlich noch beeinflussen könnte, JRuby ... obwohl hot-setzt sind viel glatter in diesen Tagen, wenn Sie an die Letzte >= 1.7.15 und mit jruby-openssl >= 0.9.5. aber es gibt immer noch die gems/Bibliotheken, verhängen, Probleme nachladen und somit wird eine Speicherleck (eine solche Bibliothek ist
require 'timeout'
), so müssen Sie überprüfen Sie die heap-dump-Leck-Kandidaten. auch Tomcat in der Regel Abzüge nützliche Tipps rund um die "mögliche" Leck Kandidaten bei der un/re-implementiert.nun, es gibt Dinge, die machen Sie sicher. wenn Sie Java 6 verwenden müssen Sie die (concurrent-mark-and-sweep) GC wie andere nicht-swap-heap space und es ist nicht der Standard, auch Sie müssen also die Erhöhung der heap-Größe wenn Sie planen, hot-reload, da es braucht, um in der Lage zu halten, zweimal Ihre Anwendung (Java -) Klassen.