मैं उत्पादन env पर मेरे अनुप्रयोग चलाने (RHEL 5.2 x64, ओरेकल JRE 1.7_05, बिल्ला 7.0.28) JVM तर्क के साथ:जावा OutOfMemory अपवाद: लोड हो रहा है ज़िप फ़ाइल पर mmap त्रुटि
-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
कई समय के बाद मैं 'इस तरह मिल गया स्टैक ट्रेस किया है:
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]
मेरी प्रोफाइलर लिए देख रहे हैं - प्रत्येक भाग को ठीक (ढेर और गैर ढेर स्मृति 10% के लिए प्रयोग किया जाता) है और मुझे नहीं पता कि जहां समस्या है।
यह समस्या हर दिन एक ही समय में हो रही है और यह एप्लिकेशन अपटाइम से कनेक्ट नहीं है। इसका कारण क्या है?
संपादित:
लॉग फ़ाइल में नई उत्पादन:
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
लेकिन मैं पर्याप्त स्मृति है: http://i.stack.imgur.com/K8VMx.jpg
उत्तर: जावा संस्करण में समस्या। यह यहां वर्णित है: https://forums.oracle.com/forums/thread.jspa?messageID=10369413
जिज्ञासा से, आप योरकिट भाग को कैसे समझते हैं? – Erik
हाँ, मैं 'yjp-11.0.8' का उपयोग कर रहा हूं, लेकिन इससे पहले कि मैंने इसे इंस्टॉल किया है, समस्या तब होती है। मैं 'G1' कलेक्टर को छोड़ने की कोशिश करूंगा, लेकिन मुझे लगता है कि यह मेरी समस्या का समाधान नहीं करता है क्योंकि मैं लंबे समय तक' G1' के साथ काम करता हूं। इसके अलावा मुझे अभी एक समस्या है: [yjp_out] (http://my.jetscreenshot.com/demo/20121010-pnud-83kb)। –
मैंने संसाधनों से बाहर होने से पहले इन त्रुटियों को देखा है जैसे स्वैप स्पेस से बाहर निकलना या अनुमत मेमोरी मैपिंग से बाहर चलना। 'सुडो बिल्ली/proc/$ पीआईडी / मानचित्र | पर एक नज़र डालें wc -l '' cat/proc/sys/vm/max_map_count' –