Java मेमोरी सेटिंग में बदलाव करना

ट्रैफ़िक और प्रोसेसिंग की ज़रूरतों के आधार पर, आपको अपने उन नोड के लिए हीप मेमोरी का साइज़ या क्लास मेटाडेटा का साइज़ बदलना पड़ सकता है जिनमें Java-based Private Cloud कॉम्पोनेंट चल रहे हैं.

इस सेक्शन में, Java ढेर की मेमोरी के डिफ़ॉल्ट और सुझाए गए साइज़ के साथ-साथ, डिफ़ॉल्ट साइज़ बदलने की प्रोसेस के बारे में बताया गया है. आखिर में, इस सेक्शन में प्रॉपर्टी फ़ाइलों का इस्तेमाल करके, JVM की अन्य सेटिंग बदलने का तरीका बताया गया है.

डिफ़ॉल्ट और सुझाए गए हीप मेमोरी साइज़

यहां दी गई टेबल में, Java पर आधारित निजी क्लाउड कॉम्पोनेंट के लिए, Java हीप मेमोरी के डिफ़ॉल्ट और सुझाए गए साइज़ की जानकारी दी गई है:

कॉम्पोनेंट प्रॉपर्टी फ़ाइल का नाम डिफ़ॉल्ट
हैप साइज़
सुझाया गया
हैप साइज़
रनटाइम
कास्सांद्रा लागू नहीं अपने-आप कॉन्फ़िगर होने की सुविधा1 अपने-आप कॉन्फ़िगर होने की सुविधा1
मैसेज प्रोसेसर message-processor.properties 512 एमबी 3 जीबी - 6 जीबी2
राऊटर router.properties 512 एमबी 512 एमबी
Analytics
Postgres सर्वर postgres-server.properties 512 एमबी 512 एमबी
Qpid सर्वर qpid-server.properties 512 एमबी 2 जीबी - 4 जीबी
मैनेजमेंट
मैनेजमेंट सर्वर management-server.properties 512 एमबी 512 एमबी
यूज़र इंटरफ़ेस (यूआई) ui.properties 512 एमबी 512 एमबी
OpenLDAP लागू नहीं नेटिव ऐप्लिकेशन3 नेटिव ऐप्लिकेशन3
चिड़ियाघर का रखरखाव करने वाला व्यक्ति zookeeper.properties 2048 एमबी 2048 एमबी
नोट

1 Cassandra, शुरू होने पर डाइनैमिक तरीके से हेप के ज़्यादा से ज़्यादा साइज़ का हिसाब लगाता है. फ़िलहाल, यह कुल सिस्टम मेमोरी का आधा हिस्सा है. इसमें ज़्यादा से ज़्यादा 8192 एमबी तक का डेटा सेव किया जा सकता है. हीप का साइज़ सेट करने के बारे में जानकारी के लिए, हीप मेमोरी का साइज़ बदलना देखें.

2 Apigee का सुझाव है कि मैसेज प्रोसेसर के लिए, हेप साइज़ को 3 जीबी से 6 जीबी के बीच सेट करें. परफ़ॉर्मेंस की जांच करने के बाद ही, हीप का साइज़ छह जीबी से ज़्यादा बढ़ाएं.

अगर परफ़ॉर्मेंस की जांच के दौरान, हेप का इस्तेमाल तय सीमा के करीब पहुंच जाता है, तो तय सीमा को बढ़ाएं. ढेर का साइज़ सेट करने के बारे में जानने के लिए, ढेर की मेमोरी का साइज़ बदलना लेख पढ़ें.

3 Private Cloud के सभी कॉम्पोनेंट, Java में लागू नहीं किए गए हैं. होस्ट प्लैटफ़ॉर्म पर नेटिव तौर पर काम करने वाले ऐप्लिकेशन, जावा पर आधारित नहीं होते. इसलिए, इनमें जावा हेप का साइज़ कॉन्फ़िगर नहीं किया जा सकता. इसके बजाय, ये ऐप्लिकेशन, मेमोरी मैनेजमेंट के लिए होस्ट सिस्टम पर निर्भर होते हैं.

यह तय करने के लिए कि Apigee आपके लिए किसी नोड पर, Java-based कॉम्पोनेंट के लिए कितनी कुल मेमोरी को ऐलोकेट करने का सुझाव देता है, उस नोड पर हर कॉम्पोनेंट के लिए ऊपर दी गई वैल्यू जोड़ें. उदाहरण के लिए, अगर आपके नोड में Postgres और Qpid, दोनों सर्वर होस्ट किए जाते हैं, तो Apigee का सुझाव है कि आपके नोड के लिए कुल मेमोरी का ऐलोकेशन 2.5 जीबी से 4.5 जीबी के बीच होना चाहिए.

ज़रूरी हार्डवेयर (जैसे, रैम) की सूची देखने के लिए, इंस्टॉल करने से जुड़ी ज़रूरी शर्तें देखें.

हीप मेमोरी का साइज़ बदलना

हीप मेमोरी की सेटिंग बदलने के लिए, कॉम्पोनेंट की प्रॉपर्टी फ़ाइल में बदलाव करें. उदाहरण के लिए, मैसेज प्रोसेसर के लिए, /opt/apigee/customer/application/message-processor.properties फ़ाइल में बदलाव करें.

अगर message-processor.properties फ़ाइल मौजूद नहीं है या किसी Edge कॉम्पोनेंट के लिए उससे जुड़ी .properties फ़ाइल मौजूद नहीं है, तो उसे बनाएं. इसके बाद, फ़ाइल का मालिकाना हक "apigee" उपयोगकर्ता पर ट्रांसफ़र करें, जैसा कि यहां दिए गए उदाहरण में दिखाया गया है:

chown apigee:apigee /opt/apigee/customer/application/message-processor.properties

अगर कॉम्पोनेंट को मैसेज प्रोसेसर जैसी कई मशीनों पर इंस्टॉल किया गया है, तो आपको कॉम्पोनेंट को होस्ट करने वाली सभी मशीनों पर प्रॉपर्टी फ़ाइल में बदलाव करना होगा.

इस टेबल में उन प्रॉपर्टी की सूची दी गई है जिनमें हेप साइज़ बदलने के लिए बदलाव किया जाता है:

प्रॉपर्टी ब्यौरा
bin_setenv_min_mem

ढेर का कम से कम साइज़. डिफ़ॉल्ट वैल्यू, डिफ़ॉल्ट और सुझाए गए हेप मेमोरी साइज़ में दी गई वैल्यू के आधार पर तय होती है.

यह सेटिंग, Java -Xms विकल्प से जुड़ी होती है.

bin_setenv_max_mem

ज़्यादा से ज़्यादा हेप साइज़. डिफ़ॉल्ट वैल्यू, हीप मेमोरी के डिफ़ॉल्ट और सुझाए गए साइज़ में दी गई वैल्यू पर आधारित होती है.

यह सेटिंग, Java -Xmx विकल्प से जुड़ी होती है.

bin_setenv_meta_space_size

क्लास के मेटाडेटा का डिफ़ॉल्ट साइज़. डिफ़ॉल्ट तौर पर, यह वैल्यू bin_setenv_max_permsize पर सेट होती है. यह डिफ़ॉल्ट तौर पर 128 एमबी की होती है. मैसेज प्रोसेसर पर, Apigee का सुझाव है कि आप अपनी साइट के ट्रैफ़िक के हिसाब से, इस वैल्यू को 256 एमबी या 512 एमबी पर सेट करें.

यह सेटिंग, Java -XX:MetaspaceSize विकल्प से जुड़ी होती है.

किसी नोड पर हेप साइज़ प्रॉपर्टी सेट करते समय, मेगाबाइट दिखाने के लिए "m" सफ़िक्स का इस्तेमाल करें, जैसा कि यहां दिए गए उदाहरण में दिखाया गया है:

bin_setenv_min_mem=4500m
bin_setenv_max_mem=4500m
bin_setenv_meta_space_size=1024m

प्रॉपर्टी फ़ाइल में वैल्यू सेट करने के बाद, कॉम्पोनेंट को रीस्टार्ट करें:

/opt/apigee/apigee-service/bin/apigee-service component restart

उदाहरण के लिए:

/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

JVM की अन्य प्रॉपर्टी बदलना

ऊपर दी गई प्रॉपर्टी से कंट्रोल नहीं की जाने वाली Java सेटिंग के लिए, किसी भी Edge कॉम्पोनेंट के लिए अतिरिक्त JVM फ़्लैग या वैल्यू भी पास की जा सकती हैं. *.properties फ़ाइलों को Bash में पढ़ा जाएगा. लिटरल वर्ण को बनाए रखने के लिए, उन्हें '(सिंगल कोट) में रखा जाना चाहिए. अगर आपको शेल एक्सपैंशन की ज़रूरत है, तो उन्हें "(डबल कोट) में रखें.

  • bin_setenv_ext_jvm_opts: ऐसी कोई भी Java प्रॉपर्टी सेट करें जिसे दूसरी प्रॉपर्टी ने तय न किया हो. उदाहरण के लिए:
    bin_setenv_ext_jvm_opts='-XX:MaxGCPauseMillis=500'

    हालांकि, -Xms, -Xmx या -XX:MetaspaceSize को सेट करने के लिए, bin_setenv_ext_jvm_opts का इस्तेमाल न करें. ऐसा इसलिए, क्योंकि इन वैल्यू को ऊपर दी गई प्रॉपर्टी से कंट्रोल किया जाता है.

निजी क्लाउड कॉम्पोनेंट के लिए मेमोरी कॉन्फ़िगर करने के बारे में ज़्यादा सलाह पाने के लिए, Edge फ़ोरम पर यह लेख पढ़ें.