corro mi aplicación en la producción de env (RHEL 5.2 x64, Oracle JRE 1.7_05, Tomcat 7.0.28) con argumentos de JVM:Java OutOfMemory excepción: error en el archivo de carga mmap postal
-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
Después de varias veces i 've seguimiento de la pila ponía así:
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]
Mirando a mi perfilador - Everthing está bien (en pilas y la memoria no utilizada para el montón 10%) y no tengo ni idea de dónde está el problema.
Este problema ocurre todos los días al mismo tiempo y no está conectado al tiempo de actividad de la aplicación. ¿Cuál es su causa problema?
Editado:
Nueva salida en el archivo de registro:
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
Pero tengo suficiente memoria: http://i.stack.imgur.com/K8VMx.jpg
Respuesta: problema en la versión de Java. Se describe aquí: https://forums.oracle.com/forums/thread.jspa?messageID=10369413
Por curiosidad, ¿cómo te imaginas la parte de Yourkit? – Erik
Sí, estoy usando 'yjp-11.0.8', pero el problema ocurre antes de instalarlo. Intentaré soltar el recopilador 'G1', pero creo que no resuelve mi problema porque trabajo con' G1' durante mucho tiempo. También tengo un problema en este momento: [yjp_out] (http://my.jetscreenshot.com/demo/20121010-pnud-83kb). –
He visto estos errores antes cuando se están quedando sin recursos, como quedarse sin espacio de intercambio o quedarse sin la asignación de memoria permitida. Eche un vistazo a 'sudo cat/proc/$ PID/maps | wc -l 'comparado con' cat/proc/sys/vm/max_map_count' –