Configura Cassandra

En este documento, se aborda la configuración de Cassandra 3.11.X, que se incluye en la versión 4.52.02 o posterior de Apigee Edge para la nube privada. Consulta la sección del apéndice para obtener detalles sobre cómo realizar las configuraciones que se describen aquí.

Configuración del recolector de elementos no utilizados

Cambiar a CMS

De forma predeterminada, Apigee envía Cassandra con el recolector de elementos no utilizados G1, que se recomienda para Cassandra 3.X. Sin embargo, para diversos casos de uso y tu propia infraestructura, como Edge para la nube privada, puedes optar por cambiar al recolector de elementos no utilizados de CMS. Para tamaños de montón superiores a 8 GB, Apigee recomienda usar G1GC.

Para usar el recolector de elementos no utilizados de CMS, establece la siguiente configuración:

conf_jvm_options_gc_type=cms

Para volver a usar el recolector de elementos no utilizados de G1, quita esta configuración.

Modificar la configuración del recolector de elementos no utilizados de CMS

Apigee proporciona parámetros predeterminados para el recolector de elementos no utilizados de CMS. Estos parámetros se aplican cuando Cassandra usa CMS. Para cambiar estos parámetros, usa la configuración conf_jvm_options_cms_gc_setting_lines. Establece todos los parámetros relevantes de JVM para CMS GC en una sola línea, separados por “\n”.

Ejemplo:

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 la configuración del recolector de elementos no utilizados G1GC

Apigee proporciona parámetros predeterminados para el recolector de elementos no utilizados de G1. Estos parámetros se aplican cuando la G1GC predeterminada está habilitada. Si cambias a CMS, no se aplicará esta configuración. Para cambiar los parámetros de G1GC, usa la configuración conf_jvm_options_g1_gc_setting_lines. Establece todos los parámetros relevantes de JVM para G1 GC en una sola línea, separados por “\n”.

Ejemplo:

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 tu propia configuración de recolección de elementos no utilizados

Si quieres ignorar todos los ajustes predeterminados de Apigee para G1GC y CMS, establece los siguientes parámetros:

conf_jvm_options_gc_type=custom

Especifica toda la configuración de GC para la JVM en conf_jvm_options_custom_settings y separa cada configuración por “\n”.

Ejemplo:

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

Cómo configurar tamaños de montón

Apigee recomienda que funcione Cassandra con no más de 8 GB de espacio de montón. Las comprobaciones para limitar el tamaño del montón a 8 GB se encuentran en $APIGEE_ROOT/apigee-cassandra/conf/cassandra-env.sh.

Para especificar tu propio tamaño del montón sin inhabilitar manualmente las verificaciones, usa el archivo de configuración conf_jvm_options_custom_settings. Separa cada parámetro de configuración con “\n”.

Ejemplo:

conf_jvm_options_custom_settings=-Xmx8G\n-Xms8G

Establece la configuración general de JVM

Para agregar parámetros de JVM a Cassandra, especifica todas las configuraciones de JVM en una sola línea separada por "\n" para el conf_jvm_options_custom_settings de configuración.

Ejemplo:

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

Apéndice

Cómo establecer cualquier configuración de Cassandra

  1. Crea o edita el archivo de anulación de configuración de Cassandra:
    vi $APIGEE_ROOT/customer/application/cassandra.properties
    .
  2. Agrega, quita o modifica la línea de configuración según sea necesario.
  3. Guarda el archivo y asegúrate de que el usuario de “apigee” sea su propiedad y pueda leerlo:
    chown apigee:apigee $APIGEE_ROOT/customer/application/cassandra.properties
  4. Reinicia el servicio de Cassandra en el nodo:
    apigee-service apigee-cassandra restart
  5. Repite estos pasos en cada nodo de Cassandra, uno por uno.

Varios tipos de configuración

La configuración conf_jvm_options_custom_settings puede pasar diferentes parámetros a la JVM de Cassandra. Combina varios parámetros de Java en una sola configuración y sepáralos con “\n”.

Ejemplo:

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