本文件說明 Cassandra 3.11.X 的設定,隨附於 Apigee Edge 4.52.02 以上版本。請參閱附錄一節,進一步瞭解如何執行本文所述的設定。
垃圾收集器設定
改用 CMS
根據預設,Apigee 會將 Cassandra 和 G1 垃圾收集器 (建議用於 Cassandra 3.X) 搭配使用。不過,如果您的用途和自有基礎架構 (例如使用 Edge for Private Cloud) 時不同,可以選擇改用 CMS 垃圾收集器。如果堆積大小超過 8 GB,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 設定
如要忽略 Apigee 對 G1GC 和 CMS 的所有預設設定,請進行下列設定:
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 強烈建議您操作不超過 8 GB 堆積空間的 Cassandra。檢查是否將堆積大小限制為 8 GB (位於 $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 設定,並以「\n」分隔設定 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 設定
- 建立或編輯 Cassandra 設定覆寫檔案:
vi $APIGEE_ROOT/customer/application/cassandra.properties
- 視需要新增、移除或修改設定行。
- 儲存檔案,並確保該檔案是由「apigee」使用者擁有及讀取:
chown apigee:apigee $APIGEE_ROOT/customer/application/cassandra.properties
- 在節點上重新啟動 Cassandra 服務:
apigee-service apigee-cassandra restart
- 在每個 Cassandra 節點上逐一重複執行這些步驟。
各種設定類型
設定 conf_jvm_options_custom_settings
可將不同參數傳送至 Cassandra JVM。將各種 Java 參數結合成單一設定,並以「\n」分隔。
範例:
conf_jvm_options_custom_settings=-XX:+FlightRecorder\n-XX:+UnlockCommercialFeatures\n-Xmx8G\n-Xms8G