2012-01-03 10 views
6

हाल ही में हमने टॉमकैट 7.0.6 सर्वर में होस्ट किए गए हमारे उत्पादन वेबपैप की निगरानी के लिए न्यू रिलीक का उपयोग शुरू किया लेकिन हमने पाया है कि इस टोमकैट की मेमोरी पदचिह्न निरंतर बढ़ रहा है और एक सप्ताह के भीतर यह सभी सर्वर (एडब्ल्यूएस हाई-मेमोरी डबल एक्स्ट्रा बड़ा उदाहरण) स्मृति और अनुत्तरदायी बन जाते हैं, इसे वापस पाने का एकमात्र तरीका इसे पुनरारंभ करना है। हम टॉमकैट शुरू करते समय Xms & एक्सएमएक्स तर्क प्रदान करते हैं लेकिन कुछ घंटों के भीतर टॉमकैट प्रक्रिया के स्मृति उपयोग को एक्सएमएक्स मान पार करते हैं और यह तब तक बढ़ता रहता है जब तक कि सभी सर्वर मेमोरी खत्म नहीं हो जाती।नया अवशेष टोमकैट मेमोरी क्यों खा रहा है?

/usr/java/jdk1.6.0_24//bin/java 
    -Djava.util.logging.config.file=/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6/conf/logging.properties 
    -Xms8192m 
    -Xmx8192m 
    -javaagent:/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6/newrelic/newrelic.jar 
    -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
    -Duser.timezone=Asia/Calcutta 
    -Djava.endorsed.dirs=/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6/endorsed 
    -classpath /xxx/xxx/xxx/xxx/apache-tomcat-7.0.6/bin/bootstrap.jar:/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6/bin/tomcat-juli.jar 
    -Dcatalina.base=/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6 
    -Dcatalina.home=/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6 
    -Djava.io.tmpdir=/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6/temp org.apache.catalina.startup.Bootstrap start" 

आदर्श रूप में मैं इस प्रक्रिया स्मृति के 8 जीबी की तुलना में अधिक उपयोग करने के लिए नहीं उम्मीद होती है लेकिन घंटे के भीतर यह 10GB ऊपर चला जाता है और कुछ दिनों के भीतर यह 20GB ऊपर चला जाता है और इस सर्वर पर सब कुछ की वजह से ग्रस्त है: यहाँ प्रक्रिया आदेश है यह (मैं स्मृति उपयोग देखने के लिए 'शीर्ष' का उपयोग करता हूं)। यह कैसे संभव है?

+0

मैं न्यू रिलिक में जावा एजेंट पर काम कर रहा एक इंजीनियर हूं। यदि आप चाहें, तो आप [email protected] पर इस समस्या के लिए एक समर्थन टिकट खोल सकते हैं। आप जावा एजेंट का किस संस्करण का उपयोग कर रहे हैं? इसके अलावा, सिस्टम मेमोरी या ढेर मेमोरी में मेमोरी विस्फोट है? –

+0

मुझे यह समस्या भी प्रतीत होती है, इसलिए आप अकेले नहीं हैं। मैंने इस सप्ताह के अंत में न्यूरेलिक के साथ एक समर्थन अनुरोध दर्ज किया था। हमारे मामले में, टोमकैट सिर्फ आउटऑफमेमरी अपवाद के साथ मर जाता है। – JBCP

+0

मुझे भी लगता है –

उत्तर

1

मैं उपर्युक्त घटना पर कुछ और जानकारी साझा कर रहा हूं। मेमोरी रिसाव जावा ढेर में नहीं है। एप्लिकेशन कभी भी स्मृति त्रुटि से बाहर नहीं पहुंचता है (8 जीबी जावा हैप अधिकतम सीमा जो हमने सेट की है)। हालांकि वर्चुअल और निवासी स्मृति तब तक बढ़ती रहती है जब तक कि राम स्मृति से बाहर नहीं हो जाता। हमने पुष्टि की है कि यह रिसाव तब होता है जब अवशेष एजेंट का उपयोग किया जाता है। संस्करण: नया अवशेष एजेंट v2.1.2

1

परेशानी के लिए खेद है। हम (नई अवशेष) समस्या की जांच कर रहे हैं लेकिन पहला सुझाव है कि जावा एजेंट के नवीनतम 2.2.1 संस्करण को आजमाएं, जिसने हम कक्षाओं के साधनों के तरीके में काफी बदलाव किए हैं।

जब हमारे पास अधिक जानकारी है तो मैं यहां अनुवर्ती हूं।

+0

इस पर कोई अपडेट है? –

+0

हमने 2.2.1 के साथ-साथ 2.3.1 की कोशिश की है, यह अभी भी हो रहा है। – ThinkFloyd

+2

मुझे भी इस समस्या का सामना करना पड़ रहा है। और मैंने अभी 2.6 के साथ परीक्षण किया – ZacharyP

4

कोई समस्या है जो किसी भी सूर्य/ओरेकल जेवीएम को प्रभावित करती है और गैर-ढेर (मूल) स्मृति में असंबद्ध वृद्धि के रूप में प्रकट होगी। सामान्य खंड में अपनी newrelic.yml फ़ाइल में कक्षा परिवर्तन के लिए शट डाउन विलंब जोड़कर नए रिलिक जावा एजेंट संस्करण 2.16+ के लिए एक कार्यवाही है।

class_transformer: 
    shutdown_delay: 3600 
से

changelog

Oracle JVM बग दुर्लभ मामलों में कारण बनता है कि एक देशी स्मृति

रिसाव दुर्लभ मामलों में के लिए काम के आसपास, Oracle JVM देशी ओएस स्मृति रिसाव कर सकते हैं ( स्पेस ढेर नहीं) जब कक्षाओं को एजेंट द्वारा अवरुद्ध किया जाता है। यह सेटिंग को कक्षाओं के अवरोध से बंद कर देती है जो सेकंड की दी गई संख्या के बाद लोड की जाती हैं। एजेंट समय से पहले लोड की गई कक्षाओं की निगरानी करना जारी रखेगा।

संबंधित मुद्दे