মেসেজ প্রসেসরের জন্য গার্বেজ কালেক্টর কনফিগার করা

প্রাইভেট ক্লাউড 4.54.00-এর জন্য Edge-এ (যা Java 21-এ চলে), Message Processor ডিফল্ট হিসেবে Garbage-First Garbage Collector (G1GC) ব্যবহার করে। এই ডকুমেন্টে মেসেজ প্রসেসরের গার্বেজ কালেকশন সেটিংস কীভাবে কনফিগার ও যাচাই করতে হয় তা বর্ণনা করা হয়েছে।

মেসেজ প্রসেসরে গার্বেজ কালেক্টর কাস্টমাইজ করুন

এই বিভাগে Edge Message Processor-এ বিকল্প Garbage Collection (GC) সেটিংস কনফিগার করার পদ্ধতি বর্ণনা করা হয়েছে। আপনি মেসেজ প্রসেসরে GC প্রপার্টি আপডেট করে GC প্যারামিটার ম্যানেজ করেন। যেকোনও কনফিগারেশন প্রপার্টি অ্যাডজাস্ট করতে, কীভাবে Edge কনফিগার করবেন লিঙ্কে উল্লেখ করা টোকেন সিনট্যাক্স ব্যবহার করুন।

মেসেজ প্রসেসরে GC সেটিংস পরিবর্তন করতে, নিম্নলিখিত ধাপগুলি অনুসরণ করুন:

  1. GC প্রপার্টি চেক করুন
  2. মেসেজ প্রসেসরে GC পরিবর্তন করা

GC প্রপার্টি চেক করুন

কনফিগার করা GC প্রপার্টি কীভাবে চেক করতে হয় তা নিম্নলিখিত ধাপগুলি থেকে জানতে পারবেন:

  1. মেসেজ প্রসেসর সোর্স ডিরেক্টরিতে GC প্রপার্টি সার্চ করুন /opt/apigee/edge-message-processor/source নিম্নলিখিত কমান্ড ব্যবহার করে:
    grep -riE "useG1GC|useZGC|useStringDeduplication" /opt/apigee/edge-message-processor/source
    
  2. কনফার্ম করুন যে এই কমান্ডের আউটপুট মেসেজ প্রসেসরের জন্য GC প্রপার্টির কনফিগারেশন দেখাচ্ছে:
    /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} ট্যাগের মধ্যে থাকা স্ট্রিং হল সেই প্রপার্টির নাম যা আপনি Message Processor-এর .properties ফাইলে সেট করতে পারেন।

মেসেজ প্রসেসরে GC পরিবর্তন করা

Apigee মেসেজ প্রসেসরে GC সেটিংস কীভাবে পরিবর্তন করতে হয় তা নিম্নলিখিত ধাপে বর্ণনা করা হয়েছে:

  1. এডিটরে মেসেজ প্রসেসর মেশিনে /opt/apigee/customer/application/message-processor.properties ফাইল খুলুন। ফাইলটি আগে থেকে না থাকলে, তৈরি করুন। যেমন:
    vi /opt/apigee/customer/application/message-processor.properties
    
  2. আপনার টার্গেট প্রোফাইলের উপর ভিত্তি করে, পছন্দসই GC কনফিগারেশন লাইন যোগ করুন:
    • বিকল্প ক: কিছু পরিবর্তন সহ ডিফল্ট গার্বেজ কালেক্টর হিসেবে 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
    • বিকল্প গ: সাধারণ GC সেটিং চালু করুন:

      যেকোনও জেনেরিক GC প্রপার্টি কনফিগার করতে, কম্পোনেন্টের .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-এ সেট করে, যা অভিন্ন String ভ্যালুকে একটি একক ক্যারেক্টার অ্যারে শেয়ার করার অনুমতি দিয়ে জাভা হিপ মেমরি অ্যালোকেশন অপ্টিমাইজ করে। স্ট্রিং ডিডুপ্লিকেশন বন্ধ করতে, conf_system_useStringDeduplication=false in /opt/apigee/customer/application/message-processor.properties সেট করুন এবং মেসেজ প্রসেসরে GC পরিবর্তন করুন বিকল্পে বর্ণিত পদ্ধতি অনুযায়ী মেসেজ প্রসেসর রিস্টার্ট করুন।

মেসেজ প্রসেসরে GC কনফিগারেশন যাচাই করা

আপনার GC কনফিগারেশন পরিবর্তন মেসেজ প্রসেসরে প্রয়োগ করা হয়েছে কিনা তা যাচাই করতে:

  1. /opt/apigee/edge-message-processor/conf ডিরেক্টরিতে GC প্রপার্টি সার্চ করুন এবং নতুন ভ্যালু দিয়ে সেট করা হয়েছে কিনা তা চেক করুন। যেমন:
    grep -riE "useG1GC|useZGC|g1gc\.|useStringDeduplication" /opt/apigee/edge-message-processor/conf
    
  2. যাচাই করুন যে /opt/apigee/edge-message-processor/conf/system.properties আপনার নতুন কনফিগার করা ভ্যালু প্রতিফলিত করে। যেমন, Apigee ডিফল্ট 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
    • Generational ZGC-এর জন্য, কমান্ড লাইনে এগুলি আছে কিনা তা কনফার্ম করুন: -XX:+UseZGC -XX:+ZGenerational -XX:MaxMetaspaceSize=1024m
  4. আপনি এখনও GC সেটিংস কনফিগার করতে না পারলে, Apigee Edge সহায়তা টিমের সাথে যোগাযোগ করুন।

এরপরে কী?