Ich betreiben meinen app auf Produktion env (RHEL 5.2 x64, Orakel jre 1.7_05, tomcat 7.0.28) mit JVM-Argumenten:Java OutOfMemory Ausnahme: mmap Fehler beim Laden Zip-Datei
-Xms8192m -Xmx8192m -XX:MaxPermSize=1024m
-Doracle.net.tns_admin=/var/ora_net -XX:ReservedCodeCacheSize=512m -XX:+AggressiveOpts -XX:+UseFastAccessorMethods
-XX:+UseStringCache -XX:+OptimizeStringConcat -XX:+UseCompressedOops -XX:+UseG1GC -Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9026 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
Nach mehrere Zeit i habe bekam Stack-Trace wie folgt aus:
Java HotSpot(TM) 64-Bit Server VM warning: Attempt to deallocate stack guard pages failed.
Java HotSpot(TM) 64-Bit Server VM warning: Attempt to allocate stack guard pages failed.
mmap failed for CEN and END part of zip file
[...]
Caused by: java.lang.OutOfMemoryError: null
at java.util.zip.ZipFile.$$YJP$$open(Native Method) ~[na:1.7.0_05]
at java.util.zip.ZipFile.open(Unknown Source) ~[na:1.7.0_05]
at java.util.zip.ZipFile.<init>(Unknown Source) ~[na:1.7.0_05]
at java.util.zip.ZipFile.<init>(Unknown Source) ~[na:1.7.0_05]
at java.util.jar.JarFile.<init>(Unknown Source) ~[na:1.7.0_05]
at java.util.jar.JarFile.<init>(Unknown Source) ~[na:1.7.0_05]
at sun.net.www.protocol.jar.URLJarFile.<init>(Unknown Source) ~[na:1.7.0_05]
at sun.net.www.protocol.jar.URLJarFile.getJarFile(Unknown Source) ~[na:1.7.0_05]
at sun.net.www.protocol.jar.JarFileFactory.get(Unknown Source) ~[na:1.7.0_05]
at sun.net.www.protocol.jar.JarURLConnection.connect(Unknown Source) ~[na:1.7.0_05]
at sun.net.www.protocol.jar.JarURLConnection.getInputStream(Unknown Source) ~[na:1.7.0_05]
at java.net.URL.openStream(Unknown Source) ~[na:1.7.0_05]
at org.apache.catalina.loader.WebappClassLoader.findLoadedResource(WebappClassLoader.java:3279) ~[na:na]
at org.apache.catalina.loader.WebappClassLoader.getResourceAsStream(WebappClassLoader.java:1478) ~[na:na]
at org.apache.http.util.VersionInfo.loadVersionInfo(VersionInfo.java:242) ~[httpcore-4.2.jar:4.2]
at org.apache.http.impl.client.DefaultHttpClient.setDefaultHttpParams(DefaultHttpClient.java:180) ~[httpclient-4.2.jar:4.2]
at org.apache.http.impl.client.DefaultHttpClient.createHttpParams(DefaultHttpClient.java:158) ~[httpclient-4.2.jar:4.2]
at org.apache.http.impl.client.AbstractHttpClient.getParams(AbstractHttpClient.java:448) ~[httpclient-4.2.jar:4.2]
meinem Profiler - Everthing ok ist (Heap und Speicher nicht-Heap für 10% verwendet wird), und ich habe keine Ahnung, wo das Problem ist. jeden Tag zur gleichen Zeit, und es ist verbunden Dieses Problem ist nicht passiert zu Anwendungsverfügbarkeit
. Was ist das Problem?
Edited:
Neue Ausgabe in Protokolldatei:
Java HotSpot(TM) 64-Bit Server VM warning: CodeCache is full. Compiler has been disabled.
Java HotSpot(TM) 64-Bit Server VM warning: Try increasing the code cache size using -XX:ReservedCodeCacheSize=
Code Cache [0x00002aaaab790000, 0x00002aaaad240000, 0x00002aaacb790000)
total_blobs=4223 nmethods=3457 adapters=707 free_code_cache=497085Kb largest_free_block=508887936
Aber ich habe genug Speicher: http://i.stack.imgur.com/K8VMx.jpg
Antwort: Problem in Java-Version. Es descripted hier: https://forums.oracle.com/forums/thread.jspa?messageID=10369413
Aus Neugier, wie finden Sie den Teil Yourkit? – Erik
Ja, ich benutze 'yjp-11.0.8', aber das Problem passiert, bevor ich es installiert habe. Ich werde versuchen, 'G1' Sammler zu fallen, aber ich denke, dass es mein Problem nicht löst, weil ich mit' G1' für die lange Zeit arbeite. Außerdem habe ich gerade ein Problem: [yjp_out] (http://my.jetscreenshot.com/demo/20121010-pnud-83kb). –
Ich habe diesen Fehler schon einmal gesehen, als mir die Ressourcen ausgingen, wie z. B. dass der Swap-Space aufgebraucht ist oder die zulässige Speicherzuordnung nicht mehr ausreicht. Sieh dir 'sudo cat/proc/$ PID/maps | an wc -l 'im Vergleich zu' cat/proc/sys/vm/max_map_count' –