2015-07-23 9 views
5

एक जावा प्रक्रिया जो मैं चल रहा हूं पहले घंटे में लगातार प्रदर्शन करता है या यह चलता है। हालांकि, प्रदर्शन तेजी से घटता है। जब रूपरेखा मैंने पाया कि metaspace कचरा संग्रहण घंटे निशान तक काफी अक्सर हुआ और उसके बाद नियंत्रण से बाहर हो:जावा 8 मेटास्पेस कचरा संग्रह

enter image description here

मैं काफी यकीन है कि मैं -XX का उपयोग कर इसे ठीक करने में सक्षम हो जाएगा हूँ: MaxMetaspaceSize विकल्प। हालांकि, मैं इस बारे में अधिक जानना चाहता हूं कि यह व्यवहार क्यों हो रहा है। मैं कल्पना नहीं कर सकता कि क्यों कचरा संग्रह एल्गोरिदम इस तरह व्यवहार करेगा। क्या किसी के पास बेहतर सुधार के बारे में कोई स्पष्टीकरण या सलाह है? धन्यवाद

+0

मुझे लगता है कि आप रनटाइम में कक्षाएं उत्पन्न करने वाले कुछ ढांचे का उपयोग करते हैं। और अंततः यह नियंत्रण से बाहर हो जाता है। समाधान आपके द्वारा उपयोग किए जाने वाले ढांचे पर निर्भर करता है। – talex

+0

धन्यवाद, और हाँ मैं हूं। यह मेरे लिए हुआ, लेकिन जिस दर पर कक्षाएं उत्पन्न होती हैं वह बदलती प्रतीत नहीं होती है। जो कुछ बदलना प्रतीत होता है वह यह है कि जीसी की आवृत्ति कम हो जाती है। – user1675642

+0

शायद यह कुछ जेवीएम हेरिस्टिक्स है। यह अधिकतम आकार जैसे बेहतर पैरामीटर खोजने का प्रयास है। यह स्ट्रोबोस्कोपिक प्रभाव की तरह दिखता है। समय के कुछ विशिष्ट पल पर मापा मेटास्पेस का आकार। जब जीसी की आवृत्ति माप की आवृत्ति के समान होती है तो कुछ अजीब प्रभाव हो सकते हैं। – talex

उत्तर

3

आप -XX:MaxMetaspaceExpansion=0 सेट करने का प्रयास कर सकते हैं। मेटास्पेस को बढ़ाने की कोशिश करने से पहले यह एक पूर्ण जीसी - गतिशील रूप से बनाए गए तरीकों/कक्षा डेटा को जारी करना चाहिए। इसके अतिरिक्त आप एक जीसी के बाद मेटास्पेस को कम करने के लिए डिफ़ॉल्ट से MaxMetaspaceFreeRatio को कम मान पर सेट करने का प्रयास कर सकते हैं।

अन्य मेटास्पेस से संबंधित विकल्पों के लिए this answer देखें।

मेटास्पेस संग्रह स्वयं कचरा कलेक्टर द्वारा अनलोड किए जाने वाले वर्गों पर निर्भर करता है। तो जीसी के आधार पर आप ट्विकिंग का उपयोग कर रहे हैं कि कचरे को पुनः प्राप्त करने के लिए जल्द ही मदद मिल सकती है।

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