配置 Cassandra

本文档介绍适用于私有云的 Apigee Edge 4.52.02 或更高版本附带的 Cassandra 3.11.X 的配置。如需详细了解如何执行此处所述的配置,请参阅附录部分。

垃圾回收器配置

改用内容管理系统

默认情况下,Apigee 为 Cassandra 附带了 G1 垃圾回收器,建议对 Cassandra 3.X 使用 G1 垃圾回收器。但是,对于不同的用例和您自己的基础架构(例如在适用于私有云的 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 后适用。如果您切换到内容管理系统,这些设置将不适用。如需更改 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 强烈建议在运行 Cassandra 时使用不超过 8 GB 的堆空间。将堆大小限制为 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 的所有 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”用户所有并可供“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