Как настроить Cassandra

В этом документе описана конфигурация Cassandra 4.0.X, которая входит в состав Apigee Edge для частного облака версии 4.53.00 или более поздней. Подробные сведения о том, как выполнить описанные здесь настройки, приведены в приложении.

Настройка сборщика мусора

Как перейти на использование CMS

По умолчанию Apigee поставляется с Cassandra и сборщиком мусора G1, который рекомендуется для Cassandra 4.X. Однако в некоторых случаях, например при использовании Edge для частного облака, может потребоваться перейти на сборщик мусора CMS. Если размер кучи превышает 8 ГБ, Apigee настоятельно рекомендует использовать G1GC.

Чтобы использовать сборщик мусора CMS, задайте следующие настройки:

conf_jvm_options_gc_type=cms

Чтобы вернуться к использованию сборщика мусора G1, удалите эту конфигурацию.

Как изменить настройки сборщика мусора CMS

Apigee предоставляет параметры по умолчанию для сборщика мусора CMS. Эти параметры применяются, когда Cassandra использует CMS. Чтобы изменить эти параметры, используйте файл конфигурации conf_jvm_options_cms_gc_setting_lines. Укажите все необходимые параметры JVM для сборщика мусора CMS в одной строке, разделяя их символом "\n".

Пример:

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

Как изменить настройки сборщика мусора G1GC

Apigee предоставляет параметры по умолчанию для сборщика мусора G1. Эти параметры применяются, когда включен сборщик мусора G1GC по умолчанию. Если вы перейдете на систему управления контентом, эти настройки применяться не будут. Чтобы изменить параметры G1GC, используйте config conf_jvm_options_g1_gc_setting_lines. Укажите все необходимые параметры JVM для сборщика мусора G1 в одной строке, разделяя их символом "\n".

Пример:

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

Как использовать собственные настройки GC

Чтобы игнорировать все предустановленные значения Apigee для G1GC и CMS, задайте следующие конфигурации:

conf_jvm_options_gc_type=custom

Укажите все настройки сборщика мусора для виртуальной машины Java в файле conf_jvm_options_custom_settings, разделяя каждую настройку символом "\n".

Пример:

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

Настройка размера кучи

Apigee настоятельно рекомендует использовать Cassandra с размером кучи не более 8 ГБ. Проверки, ограничивающие размер кучи до 8 ГБ, находятся в $APIGEE_ROOT/apigee-cassandra/conf/cassandra-env.sh.

Чтобы задать собственный размер кучи, не отключая проверки вручную, используйте конфигурацию conf_jvm_options_custom_settings. Каждую настройку нужно указывать в отдельной строке.

Пример:

conf_jvm_options_custom_settings=-Xmx8G\n-Xms8G

Как настроить общие параметры JVM

Чтобы добавить параметры JVM в Cassandra, укажите все конфигурации JVM в одной строке, разделяя их символом "\n", для параметра config conf_jvm_options_custom_settings.

Пример:

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

Приложение

Как задать любую конфигурацию Cassandra

  1. Создайте или измените файл переопределения конфигурации Cassandra:
    vi $APIGEE_ROOT/customer/application/cassandra.properties
  2. Добавьте, удалите или измените строку конфигурации.
  3. Сохраните файл и убедитесь, что он принадлежит пользователю apigee и доступен ему для чтения:
    chown apigee:apigee $APIGEE_ROOT/customer/application/cassandra.properties
  4. Перезапустите сервис Cassandra на узле:
    apigee-service apigee-cassandra restart
  5. Повторите эти шаги для каждого узла Cassandra по очереди.

Разные типы конфигураций

Конфигурация conf_jvm_options_custom_settings может передавать разные параметры в JVM Cassandra. Объедините различные параметры Java в одну конфигурацию и разделите их символом "\n".

Пример:

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