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

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

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

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

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

कॉम्पोनेंट प्रॉपर्टी फ़ाइल का नाम डिफ़ॉल्ट
हीप साइज़
सुझाया गया
हीप साइज़
रनटाइम
Cassandra लागू नहीं अपने-आप कॉन्फ़िगर होने की सुविधा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 जीबी के बीच सेट करें. परफ़ॉर्मेंस की जांच करने के बाद ही, हीप साइज़ को 6 जीबी से ज़्यादा बढ़ाएं.

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

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

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