設定 Cassandra

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

  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