No Edge para nuvem privada 4.54.00 (executado no Java 21), o processador de mensagens usa o coletor de lixo Garbage-First (G1GC, na sigla em inglês) por padrão. Este documento descreve como configurar e verificar as configurações de coleta de lixo no processador de mensagens.
Personalizar o coletor de lixo nos processadores de mensagens
Esta seção descreve o procedimento para configurar configurações alternativas de coleta de lixo (GC, na sigla em inglês) no processador de mensagens do Edge. Você gerencia os parâmetros de GC atualizando as propriedades de GC no processador de mensagens. Para ajustar qualquer propriedade de configuração, use a sintaxe de token definida em Como configurar o Edge.
Para modificar as configurações de GC nos processadores de mensagens, siga estas etapas:
Verificar a propriedade de GC
As etapas a seguir descrevem como verificar as propriedades de GC configuradas:
-
Pesquise as propriedades de GC no diretório de origem do processador de mensagens
/opt/apigee/edge-message-processor/sourceusando o seguinte comando:grep -riE "useG1GC|useZGC|useStringDeduplication" /opt/apigee/edge-message-processor/source
-
Confirme se a saída desse comando mostra a configuração das propriedades de GC
para o processador de mensagens:
/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}A string entre as tags
{T}{/T}é o nome da propriedade que pode ser definida no arquivo.propertiesdo processador de mensagens.
Modificar o GC nos processadores de mensagens
As etapas a seguir descrevem como modificar as configurações de GC nos processadores de mensagens da Apigee:
-
Abra o
/opt/apigee/customer/application/message-processor.propertiesarquivo na máquina do processador de mensagens em um editor. Se o arquivo ainda não existir, crie-o. Exemplo:vi /opt/apigee/customer/application/message-processor.properties
-
Adicione as linhas de configuração de GC desejadas com base no seu perfil de destino:
-
Opção A: usar o G1GC como o coletor de lixo padrão com algumas
modificações:
conf_system_useG1GC=true conf_system_useStringDeduplication=true conf_system_g1gc.g1ReservePercent=15
-
Opção B: ativar o ZGC geracional (opcional para implantações de latência ultrabaixa
)
conf_system_useG1GC=false conf_system_useZGC=true bin_setenv_max_meta_space_size=1024m
-
Opção C: ativar uma configuração de GC genérica :
Defina
bin_setenv_ext_jvm_optsno arquivo de substituição.propertiesdo componente (/opt/apigee/customer/application/message-processor.properties) para configurar as propriedades de GC genéricas e reinicie o componente. Exemplo:conf_system_useG1GC=false conf_system_useZGC=false bin_setenv_ext_jvm_opts="-XX:+UseParallelGC"
-
Opção A: usar o G1GC como o coletor de lixo padrão com algumas
modificações:
- Salve as alterações.
-
Verifique se esse arquivo de propriedades pertence ao usuário
apigee. Exemplo:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Reinicie o processador de mensagens usando o seguinte comando:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Se você tiver mais de um processador de mensagens, repita essas etapas em todos os processadores de mensagens.
Atualizar a desduplicação de strings
Por padrão, a configuração do G1GC define UseStringDeduplication como
true, o que otimiza a alocação de memória do heap Java, permitindo que
valores String idênticos compartilhem uma única matriz de caracteres. Para
desativar a eliminação de duplicação de strings, defina
conf_system_useStringDeduplication=false em
/opt/apigee/customer/application/message-processor.properties e
reinicie o processador de mensagens, conforme descrito em
Modificar o GC nos processadores de mensagens.
Verificar a configuração de GC nos processadores de mensagens
Para verificar se as mudanças de configuração de GC foram aplicadas no processador de mensagens:
-
Pesquise a propriedade de GC no
/opt/apigee/edge-message-processor/confdiretório e verifique se ela foi definida com o novo valor. Exemplo:grep -riE "useG1GC|useZGC|g1gc\.|useStringDeduplication" /opt/apigee/edge-message-processor/conf
-
Verifique se
/opt/apigee/edge-message-processor/conf/system.propertiesreflete os valores recém-configurados. Por exemplo, as configurações Apigee Default GC são exibidas da seguinte maneira:/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
-
Verifique se o processo da JVM do processador de mensagens em execução foi iniciado com as
flags
-XX:esperadas:ps -ef | grep edge-message-processor | grep -E "UseG1GC|UseZGC"
-
Para Apigee Default G1GC, confirme se a linha de comando
inclui:
-XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=45 -XX:G1ReservePercent=15 -XX:+UseStringDeduplication -XX:MaxMetaspaceSize=1024m -
Para ZGC geracional, confirme se a linha de comando inclui:
-XX:+UseZGC -XX:+ZGenerational -XX:MaxMetaspaceSize=1024m
-
Para Apigee Default G1GC, confirme se a linha de comando
inclui:
- Se ainda não for possível configurar as configurações de GC, entre em contato com o suporte do Apigee Edge.