Configura il Garbage Collector per i processori di messaggi

In Edge for Private Cloud 4.54.00 (che viene eseguito su Java 21), il Message Processor utilizza per impostazione predefinita il Garbage Collector Garbage-First (G1GC). Questo documento descrive come configurare e verificare le impostazioni di garbage collection su il processore di messaggi.

Personalizzare il Garbage Collector sui processori di messaggi

Questa sezione descrive la procedura per configurare impostazioni di Garbage Collection (GC) alternative sul Message Processor Edge. Puoi gestire i parametri GC aggiornando le proprietà GC sul processore di messaggi. Per modificare una proprietà di configurazione, utilizza la sintassi dei token definita in Come configurare Edge.

Per modificare le impostazioni GC sui processori di messaggi, procedi come segue:

  1. Controlla la proprietà GC
  2. Modifica GC sui processori di messaggi

Controlla la proprietà GC

I seguenti passaggi spiegano come controllare le proprietà GC configurate:

  1. Cerca le proprietà GC nella directory di origine del processore di messaggi /opt/apigee/edge-message-processor/source utilizzando il seguente comando:
    grep -riE "useG1GC|useZGC|useStringDeduplication" /opt/apigee/edge-message-processor/source
    
  2. Verifica che l'output di questo comando mostri la configurazione delle proprietà GC per il processore di messaggi:
    /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 stringa tra i tag {T}{/T} è il nome della proprietà che puoi impostare nel file .properties del processore di messaggi.

Modifica GC sui processori di messaggi

I seguenti passaggi spiegano come modificare le impostazioni GC sui Message Processor Apigee:

  1. Apri il /opt/apigee/customer/application/message-processor.properties file sulla macchina processore di messaggi in un editor. Se il file non esiste già, crealo. Ad esempio:
    vi /opt/apigee/customer/application/message-processor.properties
    
  2. Aggiungi le righe di configurazione GC desiderate in base al profilo di destinazione:
    • Opzione A: utilizza G1GC come Garbage Collector predefinito insieme ad alcune modifiche:
      conf_system_useG1GC=true
      conf_system_useStringDeduplication=true
      conf_system_g1gc.g1ReservePercent=15
    • Opzione B: attiva ZGC generazionale (facoltativo per i deployment a latenza bassissima ):
      conf_system_useG1GC=false
      conf_system_useZGC=true
      bin_setenv_max_meta_space_size=1024m
    • Opzione C: attiva un'impostazione GC generica:

      Imposta bin_setenv_ext_jvm_opts nel file di override .properties del componente (/opt/apigee/customer/application/message-processor.properties) per configurare le proprietà GC generiche, quindi riavvia il componente. Ad esempio:

      conf_system_useG1GC=false
      conf_system_useZGC=false
      bin_setenv_ext_jvm_opts="-XX:+UseParallelGC"
  3. Salva le modifiche.
  4. Assicurati che il file delle proprietà sia di proprietà dell'utente apigee. Ad esempio:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Riavvia il processore di messaggi utilizzando il seguente comando:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Se hai più di un processore di messaggi, ripeti questi passaggi su tutti i processori di messaggi.

Aggiorna la deduplicazione delle stringhe

Per impostazione predefinita, la configurazione G1GC imposta UseStringDeduplication su true, il che ottimizza l'allocazione della memoria heap Java consentendo ai valori String identici di condividere un singolo array di caratteri. Per disattivare la deduplicazione delle stringhe, imposta conf_system_useStringDeduplication=false in /opt/apigee/customer/application/message-processor.properties e riavvia il processore di messaggi, come descritto in Modificare GC sui processori di messaggi.

Verificare la configurazione GC sui processori di messaggi

Per verificare che le modifiche alla configurazione GC siano state applicate al Message Processor:

  1. Cerca la proprietà GC nella /opt/apigee/edge-message-processor/conf directory e verifica che sia stata impostata con il nuovo valore. Ad esempio:
    grep -riE "useG1GC|useZGC|g1gc\.|useStringDeduplication" /opt/apigee/edge-message-processor/conf
    
  2. Verifica che /opt/apigee/edge-message-processor/conf/system.properties rifletta i valori appena configurati. Ad esempio, le impostazioni GC predefinite di Apigee vengono visualizzate come segue:
    /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 che il processo JVM del processore di messaggi in esecuzione sia stato avviato con i flag -XX: previsti:
    ps -ef | grep edge-message-processor | grep -E "UseG1GC|UseZGC"
    
    • Per G1GC predefinito di Apigee, verifica che la riga di comando includa: -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=45 -XX:G1ReservePercent=15 -XX:+UseStringDeduplication -XX:MaxMetaspaceSize=1024m
    • Per ZGC generazionale, verifica che la riga di comando includa: -XX:+UseZGC -XX:+ZGenerational -XX:MaxMetaspaceSize=1024m
  4. Se non riesci ancora a configurare le impostazioni GC, contatta l'assistenza Apigee Edge.

Passaggi successivi