กำหนดค่า Garbage Collector สำหรับ Message Processor

ใน Edge for Private Cloud 4.54.00 (ซึ่งทำงานบน Java 21) Message Processor จะใช้ Garbage-First Garbage Collector (G1GC) โดยค่าเริ่มต้น เอกสารนี้อธิบายวิธีกำหนดค่าและยืนยันการตั้งค่าการเก็บกวาดหน่วยความจำบน Message Processor

ปรับแต่ง Garbage Collector ใน Message Processor

ส่วนนี้จะอธิบายขั้นตอนการกำหนดค่าการตั้งค่า Garbage Collection (GC) ทางเลือกใน Edge Message Processor คุณจัดการพารามิเตอร์ GC ได้โดยการอัปเดตพร็อพเพอร์ตี้ GC ใน Message Processor หากต้องการปรับ พร็อพเพอร์ตี้การกำหนดค่า ให้ใช้ไวยากรณ์โทเค็นที่กำหนดไว้ใน วิธีกำหนดค่า Edge

หากต้องการแก้ไขการตั้งค่า GC ใน Message Processor ให้ทำตามขั้นตอนต่อไปนี้

  1. ตรวจสอบพร็อพเพอร์ตี้ GC
  2. แก้ไข GC ใน Message Processor

ตรวจสอบพร็อพเพอร์ตี้ GC

ขั้นตอนต่อไปนี้อธิบายวิธีตรวจสอบพร็อพเพอร์ตี้ GC ที่กำหนดค่าไว้

  1. ค้นหาพร็อพเพอร์ตี้ GC ในไดเรกทอรีต้นทางของ Message Processor /opt/apigee/edge-message-processor/source โดยใช้คำสั่งต่อไปนี้
    grep -riE "useG1GC|useZGC|useStringDeduplication" /opt/apigee/edge-message-processor/source
    
  2. ยืนยันว่าเอาต์พุตของคำสั่งนี้แสดงการกำหนดค่าพร็อพเพอร์ตี้ GC สำหรับ Message Processor
    /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 ของ Message Processor

แก้ไข GC ใน Message Processor

ขั้นตอนต่อไปนี้อธิบายวิธีแก้ไขการตั้งค่า GC ใน Apigee Message Processor

  1. เปิดไฟล์/opt/apigee/customer/application/message-processor.propertiesในเครื่อง Message Processor ในโปรแกรมแก้ไข หากไฟล์ยังไม่มี ให้สร้างไฟล์ เช่น
    vi /opt/apigee/customer/application/message-processor.properties
    
  2. เพิ่มบรรทัดการกำหนดค่า GC ที่ต้องการตามโปรไฟล์เป้าหมาย
    • ตัวเลือก ก.: ใช้ G1GC เป็น Garbage Collector เริ่มต้นพร้อมกับการแก้ไขบางอย่าง
      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. รีสตาร์ท Message Processor โดยใช้คำสั่งต่อไปนี้
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. หากมี Message Processor มากกว่า 1 รายการ ให้ทำตามขั้นตอนเหล่านี้ซ้ำใน Message Processor ทั้งหมด

อัปเดตการกรองข้อมูลที่ซ้ำกันออกของสตริง

โดยค่าเริ่มต้น การกำหนดค่า G1GC จะตั้งค่า UseStringDeduplication เป็น true ซึ่งจะเพิ่มประสิทธิภาพการจัดสรรหน่วยความจำฮีปของ Java โดยอนุญาตให้ ค่า String ที่เหมือนกันแชร์อาร์เรย์อักขระเดียว หากต้องการปิดใช้การลดความซ้ำซ้อนของสตริง ให้ตั้งค่า conf_system_useStringDeduplication=false ใน /opt/apigee/customer/application/message-processor.properties แล้วรีสตาร์ท Message Processor ตามที่อธิบายไว้ใน แก้ไข GC ใน Message Processor

การยืนยันการกำหนดค่า GC ใน Message Processor

วิธียืนยันว่าการเปลี่ยนแปลงการกำหนดค่า GC มีผลกับ Message Processor แล้ว

  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 ของ Message Processor ที่ทำงานอยู่เริ่มต้นด้วยแฟล็กที่คาดไว้ -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

ต้องทำอะไรต่อ