Configurar o Cassandra

Este documento aborda a configuração do Cassandra 4.0.X, incluído nas versões 4.53.00 ou mais recentes do Apigee Edge para nuvem privada. Consulte a seção do apêndice para saber como realizar as configurações descritas aqui.

Configuração do coletor de lixo

Mudar para o CMS

Por padrão, o Apigee envia o Cassandra com o coletor de lixo G1, que é recomendado para o Cassandra 4.X. No entanto, para casos de uso variados e sua própria infraestrutura, como no Edge para nuvem privada, você pode mudar para o coletor de lixo do CMS. Para tamanhos de heap maiores que 8 GB, a Apigee recomenda o uso do G1GC.

Para usar o coletor de lixo do CMS, defina a seguinte configuração:

conf_jvm_options_gc_type=cms

Para voltar a usar o coletor de lixo G1, remova essa configuração.

Modificar as configurações do coletor de lixo do CMS

A Apigee fornece parâmetros padrão para o coletor de lixo do CMS. Esses parâmetros são aplicados quando o Cassandra usa o CMS. Para mudar esses parâmetros, use a configuração conf_jvm_options_cms_gc_setting_lines. Defina todos os parâmetros relevantes da JVM para o CMS GC em uma única linha, separados por "\\n".

Exemplo:

conf_jvm_options_cms_gc_setting_lines=-XX:+UseParNewGC\n-XX:+UseConcMarkSweepGC\n-XX:+CMSParallelRemarkEnabled\n-XX:SurvivorRatio=8\n-XX:MaxTenuringThreshold=1\n-XX:CMSInitiatingOccupancyFraction=75\n-XX:+UseCMSInitiatingOccupancyOnly\n-XX:CMSWaitDuration=10000\n-XX:+CMSParallelInitialMarkEnabled\n-XX:+CMSEdenChunksRecordAlways\n-XX:+CMSClassUnloadingEnabled

Modificar as configurações do coletor de lixo G1GC

A Apigee fornece parâmetros padrão para o coletor de lixo G1. Esses parâmetros se aplicam quando o G1GC padrão está ativado. Se você mudar para o CMS, essas configurações não serão aplicadas. Para alterar os parâmetros do G1GC, use a configuração conf_jvm_options_g1_gc_setting_lines. Defina todos os parâmetros relevantes da JVM para o GC1 em uma única linha, separados por "\\n".

Exemplo:

conf_jvm_options_g1_gc_setting_lines=-XX:+UseG1GC\n-XX:G1RSetUpdatingPauseTimePercent=5\n-XX:MaxGCPauseMillis=500\n-XX:InitiatingHeapOccupancyPercent=50\n-XX:ParallelGCThreads=8\n-XX:ConcGCThreads=8\n-XX:+ParallelRefProcEnabled\n-XX:MaxTenuringThreshold=1\n-XX:G1HeapRegionSize=32m\n-XX:G1ReservePercent=15

Usar suas próprias configurações de GC

Para ignorar todas as predefinições da Apigee para G1GC e CMS, defina as seguintes configurações:

conf_jvm_options_gc_type=custom

Especifique todas as configurações de GC para a JVM em conf_jvm_options_custom_settings, separando cada configuração por "\n".

Exemplo:

conf_jvm_options_gc_type=custom
conf_jvm_options_custom_settings=-XX:+UseParallelGC\n-XX:GCTimeRatio=19

Como configurar os tamanhos de heap

A Apigee recomenda operar o Cassandra com no máximo 8 GB de espaço de heap. As verificações para limitar o tamanho do heap a 8 GB estão em $APIGEE_ROOT/apigee-cassandra/conf/cassandra-env.sh.

Para especificar seu próprio tamanho de heap sem desativar manualmente as verificações, use a configuração conf_jvm_options_custom_settings. Separe cada configuração com "\n".

Exemplo:

conf_jvm_options_custom_settings=-Xmx8G\n-Xms8G

Configurar configurações gerais da JVM

Para adicionar parâmetros da JVM ao Cassandra, especifique todas as configurações da JVM em uma única linha separada por "\n" para a configuração conf_jvm_options_custom_settings.

Exemplo:

conf_jvm_options_custom_settings=-Dcassandra.start_rpc=true\n-Dcassandra.expiration_date_overflow_policy=CAP\n-XX:+FlightRecorder\n-XX:+UnlockCommercialFeatures

Apêndice

Como definir qualquer configuração do Cassandra

  1. Crie ou edite o arquivo de substituição de configuração do Cassandra:
    vi $APIGEE_ROOT/customer/application/cassandra.properties
  2. Adicione, remova ou modifique a linha de configuração conforme necessário.
  3. Salve o arquivo e verifique se ele é de propriedade e legível pelo usuário "apigee":
    chown apigee:apigee $APIGEE_ROOT/customer/application/cassandra.properties
  4. Reinicie o serviço do Cassandra no nó:
    apigee-service apigee-cassandra restart
  5. Repita essas etapas em cada nó do Cassandra, um por um.

Vários tipos de configuração

A configuração conf_jvm_options_custom_settings pode transmitir parâmetros diferentes para a JVM do Cassandra. Combine vários parâmetros Java em uma única configuração e separe por "\n".

Exemplo:

conf_jvm_options_custom_settings=-XX:+FlightRecorder\n-XX:+UnlockCommercialFeatures\n-Xmx8G\n-Xms8G