本文將說明 Cassandra 4.0.X 的設定,這項服務已納入 Apigee Edge for Private Cloud 4.53.00 以上版本。如要進一步瞭解如何執行這裡所述的設定,請參閱附錄。
垃圾收集器設定
改用 CMS
根據預設,Apigee 會將 Cassandra 與 G1 垃圾收集器一起提供,這也是 Cassandra 4.X 的建議做法。不過,針對各種用途和您自己的基礎架構 (例如私有雲端的 Edge),您可以選擇切換至 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。$APIGEE_ROOT/apigee-cassandra/conf/cassandra-env.sh
會檢查是否將堆積大小限制為 8 GB。
如要指定自己的堆積大小,但不手動停用檢查功能,請使用設定 conf_jvm_options_custom_settings
。請使用「\n」分隔各項設定。
範例:
conf_jvm_options_custom_settings=-Xmx8G\n-Xms8G
設定一般 JVM 設定
如要將 JVM 參數新增至 Cassandra,請在 conf_jvm_options_custom_settings
設定中,以「\n」分隔一行指定所有 JVM 設定。
範例:
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