Configurar o Cassandra

Este documento aborda a configuração do Cassandra 3.11.X, incluída no Apigee Edge para nuvem privada versões 4.52.02 ou posteriores. Consulte a seção de apêndice para ver detalhes sobre como realizar as configurações descritas aqui.

Configuração do coletor de lixo

Mudar para o CMS (sistema de gerenciamento de conteúdo)

Por padrão, a Apigee envia o Cassandra com o coletor de lixo G1, que é recomendado para o Cassandra 3.X. No entanto, para casos de uso variados e sua própria infraestrutura, como no Edge para nuvem privada, é possível mudar para o coletor de lixo do CMS. Para tamanhos de heap maiores que 8 GB, a Apigee recomenda enfaticamente 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 a GC do CMS 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 do G1GC

A Apigee fornece parâmetros padrão para o coletor de lixo G1. Esses parâmetros são aplicados quando o G1GC padrão está ativado. Se você mudar para o CMS, essas configurações não serão aplicadas. Para mudar os parâmetros de G1GC, use a configuração conf_jvm_options_g1_gc_setting_lines. Defina todos os parâmetros relevantes da JVM para a GC do G1 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 tamanhos de heap

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

Para especificar seu próprio dimensionamento 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

Como definir as 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 pertence e pode ser lido pelo usuário da "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.

Tipos variados de configuração

A configuração conf_jvm_options_custom_settings pode transmitir parâmetros diferentes para a JVM do Cassandra. Combine diversos 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