Configurer Cassandra

Ce document décrit la configuration de Cassandra 4.0.X, inclus avec les versions 4.53.00 ou ultérieures d'Apigee Edge pour le cloud privé. Pour savoir comment effectuer les configurations décrites ici, consultez l'annexe.

Configuration du garbage collector

Passer à l'utilisation d'un CMS

Par défaut, Apigee fournit Cassandra avec le G1 Garbage Collector, qui est recommandé pour Cassandra 4.X. Toutefois, pour différents cas d'utilisation et votre propre infrastructure, comme dans Edge for Private Cloud, vous pouvez choisir de passer au collecteur de déchets CMS. Pour les tailles de tas supérieures à 8 Go, Apigee recommande vivement d'utiliser G1GC.

Pour utiliser le ramasse-poubelle CMS, définissez la configuration suivante:

conf_jvm_options_gc_type=cms

Pour revenir à l'utilisation du récupérateur de mémoire G1, supprimez cette configuration.

Modifier les paramètres du récupérateur de mémoire CMS

Apigee fournit des paramètres par défaut pour le garbage collector CMS. Ces paramètres s'appliquent lorsque Cassandra utilise le CMS. Pour modifier ces paramètres, utilisez la configuration conf_jvm_options_cms_gc_setting_lines. Définissez tous les paramètres JVM pertinents pour le GC CMS sur une seule ligne, séparés par "\n".

Exemple :

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

Modifier les paramètres du récupérateur de mémoire G1GC

Apigee fournit des paramètres par défaut pour le garbage collector G1. Ces paramètres s'appliquent lorsque le G1GC par défaut est activé. Si vous passez à un CMS, ces paramètres ne s'appliquent pas. Pour modifier les paramètres G1GC, utilisez la configuration conf_jvm_options_g1_gc_setting_lines. Définissez tous les paramètres JVM pertinents pour le GC G1 sur une seule ligne, séparés par "\n".

Exemple :

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

Utiliser vos propres paramètres de GC

Pour ignorer tous les préréglages d'Apigee pour G1GC et CMS, définissez les configurations suivantes:

conf_jvm_options_gc_type=custom

Spécifiez tous les paramètres de GC pour la JVM dans conf_jvm_options_custom_settings, en séparant chaque paramètre par "\n".

Exemple :

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

Configurer les tailles de tas de mémoire

Apigee recommande vivement d'utiliser Cassandra avec un espace de tas ne dépassant pas 8 Go. Les vérifications visant à limiter la taille de la pile à 8 Go se trouvent dans $APIGEE_ROOT/apigee-cassandra/conf/cassandra-env.sh.

Pour spécifier votre propre taille de tas sans désactiver manuellement les vérifications, utilisez la configuration conf_jvm_options_custom_settings. Séparez chaque paramètre par "\n".

Exemple :

conf_jvm_options_custom_settings=-Xmx8G\n-Xms8G

Configurer les paramètres généraux de la JVM

Pour ajouter des paramètres JVM à Cassandra, spécifiez toutes les configurations JVM sur une seule ligne, séparées par "\n" pour la configuration conf_jvm_options_custom_settings.

Exemple :

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

Annexe

Définir une configuration Cassandra

  1. Créez ou modifiez le fichier de forçage de la configuration Cassandra :
    vi $APIGEE_ROOT/customer/application/cassandra.properties
  2. Ajoutez, supprimez ou modifiez la ligne de configuration si nécessaire.
  3. Enregistrez le fichier et assurez-vous qu'il appartient à l'utilisateur "apigee" et qu'il est lisible par celui-ci :
    chown apigee:apigee $APIGEE_ROOT/customer/application/cassandra.properties
  4. Redémarrez le service Cassandra sur le nœud :
    apigee-service apigee-cassandra restart
  5. Répétez ces étapes sur chaque nœud Cassandra, un par un.

Divers types de configuration

La configuration conf_jvm_options_custom_settings peut transmettre différents paramètres à la JVM Cassandra. Combinez plusieurs paramètres Java dans une seule configuration et séparez-les par "\n".

Exemple :

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