मैसेज प्रोसेसर के लिए गार्बेज कलेक्टर को कॉन्फ़िगर करना

Edge for Private Cloud 4.54.00 (जो Java 21 पर चलता है) में, मैसेज प्रोसेसर डिफ़ॉल्ट रूप से Garbage-First Garbage Collector (G1GC) का इस्तेमाल करता है. इस दस्तावेज़ में, मैसेज प्रोसेसर पर गार्बेज कलेक्शन की सेटिंग कॉन्फ़िगर करने और उसकी पुष्टि करने का तरीका बताया गया है.

मैसेज प्रोसेसर पर गार्बेज कलेक्टर को पसंद के मुताबिक बनाना

इस सेक्शन में, Edge Message Processor पर गार्बेज कलेक्शन (जीसी) की वैकल्पिक सेटिंग कॉन्फ़िगर करने का तरीका बताया गया है. मैसेज प्रोसेसर पर जीसी की प्रॉपर्टी अपडेट करके, जीसी के पैरामीटर मैनेज किए जा सकते हैं. किसी भी कॉन्फ़िगरेशन प्रॉपर्टी को अडजस्ट करने के लिए, Edge को कॉन्फ़िगर करने का तरीका लेख में बताई गई टोकन सिंटैक्स का इस्तेमाल करें.

मैसेज प्रोसेसर पर जीसी की सेटिंग में बदलाव करने के लिए, यह तरीका अपनाएं:

  1. जीसी की प्रॉपर्टी की जांच करना
  2. मैसेज प्रोसेसर पर जीसी में बदलाव करना

जीसी की प्रॉपर्टी की जांच करना

कॉन्फ़िगर की गई जीसी की प्रॉपर्टी की जांच करने का तरीका यहां बताया गया है:

  1. मैसेज प्रोसेसर की सोर्स डायरेक्ट्री में, जीसी की प्रॉपर्टी खोजें. इसके लिए, यह कमांड इस्तेमाल करें: /opt/apigee/edge-message-processor/source
    grep -riE "useG1GC|useZGC|useStringDeduplication" /opt/apigee/edge-message-processor/source
    
  2. पुष्टि करें कि इस कमांड के आउटपुट में, मैसेज प्रोसेसर के लिए जीसी की प्रॉपर्टी का कॉन्फ़िगरेशन दिख रहा है:
    /opt/apigee/edge-message-processor/source/conf/system.properties:useG1GC={T}conf_system_useG1GC{/T}
    /opt/apigee/edge-message-processor/source/conf/system.properties:useZGC={T}conf_system_useZGC{/T}
    /opt/apigee/edge-message-processor/source/conf/system.properties:useStringDeduplication={T}conf_system_useStringDeduplication{/T}

    {T}{/T} टैग के बीच की स्ट्रिंग, उस प्रॉपर्टी का नाम है जिसे मैसेज प्रोसेसर की .properties फ़ाइल में सेट किया जा सकता है.

मैसेज प्रोसेसर पर जीसी में बदलाव करना

Apigee Message Processor पर जीसी की सेटिंग में बदलाव करने का तरीका यहां बताया गया है:

  1. किसी एडिटर में, मैसेज प्रोसेसर मशीन पर मौजूद /opt/apigee/customer/application/message-processor.properties फ़ाइल खोलें. अगर यह फ़ाइल पहले से मौजूद नहीं है, तो इसे बनाएं. उदाहरण के लिए:
    vi /opt/apigee/customer/application/message-processor.properties
    
  2. अपने टारगेट प्रोफ़ाइल के आधार पर, जीसी के कॉन्फ़िगरेशन वाली लाइनें जोड़ें:
    • पहला विकल्प: G1GC को डिफ़ॉल्ट गार्बेज कलेक्टर के तौर पर इस्तेमाल करना और उसमें कुछ बदलाव करना:
      conf_system_useG1GC=true
      conf_system_useStringDeduplication=true
      conf_system_g1gc.g1ReservePercent=15
    • दूसरा विकल्प: जनरेशनल ZGC चालू करना (अल्ट्रा-लो-लेटेंसी डिप्लॉयमेंट के लिए यह ज़रूरी नहीं है):
      conf_system_useG1GC=false
      conf_system_useZGC=true
      bin_setenv_max_meta_space_size=1024m
    • तीसरा विकल्प: सामान्य जीसी सेटिंग चालू करना:

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

      conf_system_useG1GC=false
      conf_system_useZGC=false
      bin_setenv_ext_jvm_opts="-XX:+UseParallelGC"
  3. बदलावों को सेव करें.
  4. पक्का करें कि इस प्रॉपर्टी वाली फ़ाइल का मालिकाना हक apigee उपयोगकर्ता के पास हो. उदाहरण के लिए:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. मैसेज प्रोसेसर को रीस्टार्ट करने के लिए, यह कमांड इस्तेमाल करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. अगर आपके पास एक से ज़्यादा मैसेज प्रोसेसर हैं, तो सभी मैसेज प्रोसेसर पर यह तरीका अपनाएं.

स्ट्रिंग डिडुप्लीकेशन की सुविधा अपडेट करना

डिफ़ॉल्ट रूप से, G1GC के कॉन्फ़िगरेशन में UseStringDeduplication को true पर सेट किया जाता है. इससे Java हीप मेमोरी के ऐलोकेशन को ऑप्टिमाइज़ किया जाता है. ऐसा इसलिए, क्योंकि एक जैसी String वैल्यू, एक ही कैरेक्टर ऐरे शेयर कर सकती हैं. स्ट्रिंग डिडुप्लीकेशन की सुविधा बंद करने के लिए, conf_system_useStringDeduplication=false को /opt/apigee/customer/application/message-processor.properties में सेट करें. इसके बाद, मैसेज प्रोसेसर को रीस्टार्ट करें. इसके लिए, मैसेज प्रोसेसर पर जीसी में बदलाव करना लेख में बताया गया तरीका अपनाएं.

मैसेज प्रोसेसर पर जीसी के कॉन्फ़िगरेशन की पुष्टि करना

यह पुष्टि करने के लिए कि मैसेज प्रोसेसर पर, जीसी के कॉन्फ़िगरेशन में किए गए बदलाव लागू हो गए हैं:

  1. /opt/apigee/edge-message-processor/conf डायरेक्ट्री में, जीसी की प्रॉपर्टी खोजें और देखें कि इसे नई वैल्यू के साथ सेट किया गया है या नहीं. उदाहरण के लिए:
    grep -riE "useG1GC|useZGC|g1gc\.|useStringDeduplication" /opt/apigee/edge-message-processor/conf
    
  2. पुष्टि करें कि /opt/apigee/edge-message-processor/conf/system.properties में, कॉन्फ़िगर की गई नई वैल्यू दिख रही हैं. उदाहरण के लिए, Apigee Default GC की सेटिंग इस तरह दिखती हैं:
    /opt/apigee/edge-message-processor/conf/system.properties:useG1GC=true
    /opt/apigee/edge-message-processor/conf/system.properties:useZGC=false
    /opt/apigee/edge-message-processor/conf/system.properties:g1gc.maxGCPauseMillis=200
    /opt/apigee/edge-message-processor/conf/system.properties:g1gc.initiatingHeapOccupancyPercent=45
    /opt/apigee/edge-message-processor/conf/system.properties:g1gc.g1ReservePercent=15
    /opt/apigee/edge-message-processor/conf/system.properties:useStringDeduplication=true
  3. पुष्टि करें कि चालू मैसेज प्रोसेसर JVM प्रोसेस, अपेक्षित -XX: फ़्लैग के साथ शुरू हुई है या नहीं:
    ps -ef | grep edge-message-processor | grep -E "UseG1GC|UseZGC"
    
    • Apigee Default G1GC के लिए, पुष्टि करें कि कमांड लाइन में यह शामिल है: -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=45 -XX:G1ReservePercent=15 -XX:+UseStringDeduplication -XX:MaxMetaspaceSize=1024m
    • जनरेशनल ZGC के लिए, पुष्टि करें कि कमांड लाइन में यह शामिल है: -XX:+UseZGC -XX:+ZGenerational -XX:MaxMetaspaceSize=1024m
  4. अगर अब भी जीसी की सेटिंग कॉन्फ़िगर नहीं की जा सकती हैं, तो Apigee Edge की सहायता टीम से संपर्क करें.

आगे क्या करना है?