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

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

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

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

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

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

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

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

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

3 Private Cloud के सभी कॉम्पोनेंट, 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

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

ऊपर दी गई प्रॉपर्टी से कंट्रोल न की जाने वाली 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 फ़ोरम पर यह लेख पढ़ें.