Cassandra 구성

이 문서에서는 프라이빗 클라우드용 Apigee Edge 버전 4.52.02 이상에 포함된 Cassandra 3.11.X의 구성을 다룹니다. 여기에 설명된 구성을 수행하는 방법에 대한 자세한 내용은 부록 섹션을 참조하세요.

가비지 컬렉터 구성

CMS 사용 설정으로 전환

기본적으로 Apigee는 Cassandra 3.X에 권장되는 G1 가비지 컬렉터와 함께 Cassandra를 제공합니다. 하지만 프라이빗 클라우드용 에지와 같이 다양한 사용 사례와 자체 인프라의 경우 CMS 가비지 컬렉터로 전환할 수 있습니다. 힙 크기가 8GB보다 큰 경우 Apigee에서는 G1GC를 사용하는 것이 좋습니다.

CMS 가비지 컬렉터를 사용하려면 다음 구성을 설정합니다.

conf_jvm_options_gc_type=cms

G1 가비지 컬렉터를 사용하도록 되돌리려면 이 구성을 삭제하세요.

CMS 가비지 컬렉터 설정 수정

Apigee는 CMS 가비지 컬렉터의 기본 매개변수를 제공합니다. 이러한 매개변수는 Cassandra가 CMS를 사용할 때 적용됩니다. 이러한 매개변수를 변경하려면 conf_jvm_options_cms_gc_setting_lines 구성을 사용합니다. CMS GC의 모든 관련 JVM 매개변수를 “\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가 사용 설정된 경우에 적용됩니다. CMS로 전환하면 이 설정은 적용되지 않습니다. G1GC 매개변수를 변경하려면 conf_jvm_options_g1_gc_setting_lines 구성을 사용합니다. G1 GC의 모든 관련 JVM 매개변수를 “\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 설정 사용

G1GC와 CMS에 대한 Apigee의 모든 사전 설정을 무시하려면 다음 구성을 설정합니다.

conf_jvm_options_gc_type=custom

conf_jvm_options_custom_settings에 JVM의 모든 GC 설정을 지정하고 각 설정을 '\n'으로 구분합니다.

예:

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

힙 크기 구성

Apigee는 8GB 이하의 힙 공간에서 Cassandra를 작동하는 것을 적극 권장합니다. 힙 크기를 8GB로 제한하는 검사는 $APIGEE_ROOT/apigee-cassandra/conf/cassandra-env.sh에 있습니다.

수동으로 검사를 사용 중지하지 않고 자체 힙 크기 조정을 지정하려면 conf_jvm_options_custom_settings 구성을 사용합니다. '\n'으로 각 설정을 구분합니다.

예:

conf_jvm_options_custom_settings=-Xmx8G\n-Xms8G

일반 JVM 설정 구성

JVM 매개변수를 Cassandra에 추가하려면 모든 JVM 구성을 conf_jvm_options_custom_settings 구성에 '\n'으로 구분하여 한 줄로 지정하세요.

예:

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 구성은 Cassandra JVM에 다양한 매개변수를 전달할 수 있습니다. 다양한 Java 매개변수를 단일 구성으로 결합하고 '\n'으로 구분합니다.

예:

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