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

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

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

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

यहां दी गई टेबल में, Java-आधारित Private Cloud कॉम्पोनेंट के लिए, 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 एमबी
नया Edge यूज़र इंटरफ़ेस (edge-management-ui) लागू नहीं खास ऐप्लिकेशन3 नेटिव ऐप्लिकेशन3
SymasLDAP लागू नहीं खास ऐप्लिकेशन3 खास ऐप्लिकेशन3
Zookeeper zookeeper.properties 2048 एमबी 2048 एमबी
नोट

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

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

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

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

किसी नोड पर Java-आधारित कॉम्पोनेंट के लिए, Apigee का सुझाव है कि कुल कितनी मेमोरी एलोकेट की जाए, यह जानने के लिए उस नोड पर मौजूद हर कॉम्पोनेंट के लिए ऊपर दी गई वैल्यू जोड़ें. उदाहरण के लिए, अगर आपके नोड पर 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

जेवीएम की अन्य प्रॉपर्टी बदलना

ऊपर बताई गई प्रॉपर्टी से कंट्रोल न होने वाली Java सेटिंग के लिए, Edge के किसी भी कॉम्पोनेंट की उससे जुड़ी प्रॉपर्टी फ़ाइल में, ये सेटिंग भी सेट की जा सकती हैं:

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

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

Private Cloud कॉम्पोनेंट के लिए मेमोरी कॉन्फ़िगर करने के बारे में ज़्यादा सुझाव पाने के लिए, Edge फ़ोरम पर यह लेख देखें.