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

ट्रैफ़िक और प्रोसेसिंग से जुड़ी ज़रूरी शर्तों के आधार पर, आपको 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 जब ऐप शुरू होता है, तो कैसंड्रा ने डाइनैमिक तौर पर, ज़्यादा से ज़्यादा हीप साइज़ का हिसाब लगाया. फ़िलहाल, यह सिस्टम मेमोरी की कुल मेमोरी का आधा हिस्सा है. साथ ही, यह ज़्यादा से ज़्यादा 8192 एमबी है. हीप साइज़ सेट करने के बारे में जानकारी पाने के लिए, हीप मेमोरी का साइज़ बदलना देखें.

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

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

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

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

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

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

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

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

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

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

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

प्रॉपर्टी ब्यौरा
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 सेटिंग के लिए, अतिरिक्त JVM फ़्लैग या किसी भी Edge कॉम्पोनेंट की वैल्यू पास की जा सकती है. *.properties फ़ाइलों को बैश में पढ़ा जाएगा और उन्हें '(सिंगल कोट) में रखा जाना चाहिए, ताकि लिटरल वर्णों को सुरक्षित रखा जा सके. अगर आपको शेल बढ़ाने की ज़रूरत है, तो "(डबल कोट) भी रखी जानी चाहिए.

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

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

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