پیکربندی جمع‌آوری‌کننده زباله برای «پردازشگرهای پیام»

در Edge for Private Cloud نسخه ۴.۵۴.۰۰ (که در Java 21 اجرا می‌شود)، «پردازشگر پیام» به‌طور پیش‌فرض از Garbage-First Garbage Collector (G1GC) استفاده می‌کند. این سند نحوه پیکربندی و درستی‌سنجی تنظیمات جمع‌آوری زباله در «پردازشگر پیام» را شرح می‌دهد.

سفارشی‌سازی کردن جمع‌آوری‌کننده زباله در «پردازشگرهای پیام»

این بخش روش پیکربندی تنظیمات جایگزین «جمع‌آوری زباله» (GC) را در «پردازشگر پیام Edge» شرح می‌دهد. پارامترهای GC را با به‌روزرسانی ویژگی‌های GC در «پردازشگر پیام» مدیریت می‌کنید. برای تنظیم هریک از دارایی‌های پیکربندی، از دستورگان نشانه تعریف‌شده در نحوه پیکربندی Edge استفاده کنید.

برای اصلاح تنظیمات GC در «پردازشگرهای پیام»، مراحل زیر را انجام دهید:

  1. بررسی دارایی GC
  2. Modify GC on the Message Processors

بررسی ویژگی 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} نام دارایی است که می‌توانید در فایل .properties «پردازشگر پیام» تنظیم کنید.

اصلاح GC در «پردازشگرهای پیام»

مراحل زیر نحوه اصلاح تنظیمات GC در «پردازشگرهای پیام Apigee» را شرح می‌دهد:

  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
    • گزینه ب: فعال کردن Generational ZGC (اختیاری برای استقرارهای با تأخیر بسیار کم):
      conf_system_useG1GC=false
      conf_system_useZGC=true
      bin_setenv_max_meta_space_size=1024m
    • گزینه ج: فعال کردن تنظیمات عمومی GC:

      bin_setenv_ext_jvm_opts را در فایل لغو .properties عنصر (/opt/apigee/customer/application/message-processor.properties) تنظیم کنید تا هریک از دارایی‌های عمومی GC را پیکربندی کنید، و سپس عنصر را بازراه‌اندازی کنید. برای مثال:

      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 تنظیم کنید و «پردازشگر پیام» را، همان‌طور که در اصلاح GC در «پردازشگرهای پیام» توضیح داده شده است، بازراه‌اندازی کنید.

درحال درستی‌سنجی پیکربندی GC در «پردازشگرهای پیام»

برای تأیید اینکه تغییرات پیکربندی GC در «پردازشگر پیام» اعمال شده است:

  1. دارایی GC را در /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
    • برای Generational ZGC، مطمئن شوید که خط فرمان شامل این موارد باشد: -XX:+UseZGC -XX:+ZGenerational -XX:MaxMetaspaceSize=1024m
  4. اگر هنوز نمی‌توانید تنظیمات GC را پیکربندی کنید، با پشتیبانی Apigee Edge تماس بگیرید.

حالا چه می‌شود؟