設定 Cassandra

本文將說明 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 設定

  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