Cómo configurar el recolector de elementos no utilizados para los procesadores de mensajes

En Edge para nube privada 4.54.00 (que se ejecuta en Java 21), el Message Processor usa el recolector de elementos no utilizados Garbage-First (G1GC) de forma predeterminada. En este documento, se describe cómo configurar y verificar la configuración de la recolección de elementos no utilizados en el Message Processor.

Personaliza el recolector de elementos no utilizados en los Message Processors

En esta sección, se describe el procedimiento para configurar parámetros alternativos de recolección de elementos no utilizados (GC) en el Message Processor de Edge. Para administrar los parámetros de GC , actualiza las propiedades de GC en el Message Processor. Para ajustar cualquier propiedad de configuración, usa la sintaxis de token definida en Cómo configurar Edge.

Para modificar la configuración de GC en los Message Processors, sigue estos pasos:

  1. Verifica la propiedad de GC
  2. Modifica la GC en los Message Processors

Verifica la propiedad de GC

En los siguientes pasos, se describe cómo verificar las propiedades de GC configuradas:

  1. Busca las propiedades de GC en el directorio del código fuente del Message Processor /opt/apigee/edge-message-processor/source con el siguiente comando:
    grep -riE "useG1GC|useZGC|useStringDeduplication" /opt/apigee/edge-message-processor/source
    
  2. Confirma que el resultado de este comando muestre la configuración de las propiedades de GC para el 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}

    La cadena entre las etiquetas {T}{/T} es el nombre de la propiedad que puedes establecer en el archivo .properties del Message Processor.

Modifica la GC en los Message Processors

En los siguientes pasos, se describe cómo modificar la configuración de GC en los Message Processors de Apigee:

  1. Abre el /opt/apigee/customer/application/message-processor.properties archivo en la máquina del Message Processor en un editor. Si el archivo aún no existe, créalo. Por ejemplo:
    vi /opt/apigee/customer/application/message-processor.properties
    
  2. Agrega las líneas de configuración de GC deseadas según tu perfil objetivo:
    • Opción A: Usa G1GC como el recolector de elementos no utilizados predeterminado junto con algunas modificaciones:
      conf_system_useG1GC=true
      conf_system_useStringDeduplication=true
      conf_system_g1gc.g1ReservePercent=15
    • Opción B: Habilita ZGC generacional (opcional para implementaciones de latencia ultrabaja ):
      conf_system_useG1GC=false
      conf_system_useZGC=true
      bin_setenv_max_meta_space_size=1024m
    • Opción C: Habilita un parámetro de configuración de GC genérico:

      Configura bin_setenv_ext_jvm_opts en el archivo de anulación .properties del componente (/opt/apigee/customer/application/message-processor.properties) para configurar cualquier propiedad de GC genérica y, luego, reinicia el componente. Por ejemplo:

      conf_system_useG1GC=false
      conf_system_useZGC=false
      bin_setenv_ext_jvm_opts="-XX:+UseParallelGC"
  3. Guarda los cambios.
  4. Asegúrate de que este archivo de propiedades sea propiedad del usuario apigee. Por ejemplo:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Reinicia el Message Processor con el siguiente comando:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Si tienes más de un Message Processor, repite estos pasos en todos los Message Processors.

Actualiza la anulación de duplicación de cadenas

De forma predeterminada, la configuración de G1GC establece UseStringDeduplication en true, lo que optimiza la asignación de memoria del montón de Java, ya que permite que los valores String idénticos compartan un solo array de caracteres. Para inhabilitar la anulación de duplicación de cadenas, establece conf_system_useStringDeduplication=false en /opt/apigee/customer/application/message-processor.properties y reinicia el Message Processor, como se describe en Modifica la GC en los Message Processors.

Verifica la configuración de GC en los Message Processors

Para verificar que los cambios en la configuración de GC se hayan aplicado en el Message Processor, haz lo siguiente:

  1. Busca la propiedad de GC en el /opt/apigee/edge-message-processor/conf directorio y verifica que se haya establecido con el valor nuevo. Por ejemplo:
    grep -riE "useG1GC|useZGC|g1gc\.|useStringDeduplication" /opt/apigee/edge-message-processor/conf
    
  2. Verifica que /opt/apigee/edge-message-processor/conf/system.properties refleje los valores recién configurados. Por ejemplo, la configuración de GC predeterminada de Apigee se muestra de la siguiente manera:
    /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. Verifica que el proceso de JVM del Message Processor en ejecución se haya iniciado con las marcas -XX: esperadas:
    ps -ef | grep edge-message-processor | grep -E "UseG1GC|UseZGC"
    
    • Para G1GC predeterminado de Apigee, confirma que la línea de comandos incluya: -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=45 -XX:G1ReservePercent=15 -XX:+UseStringDeduplication -XX:MaxMetaspaceSize=1024m
    • Para ZGC generacional, confirma que la línea de comandos incluya: -XX:+UseZGC -XX:+ZGenerational -XX:MaxMetaspaceSize=1024m
  4. Si aún no puedes configurar los parámetros de GC, comunícate con el equipo de asistencia de Apigee Edge.

Próximos pasos