本部分介绍 Cassandra 的定期维护任务。
反熵维护
Apache Cassandra 环节点需要定期维护,以确保 节点。如需执行此维护,请使用以下命令:
apigee-service apigee-cassandra apigee_repair -pr
运行此命令时,Apigee 建议采用以下做法:
- 在每个 Cassandra 节点(跨所有区域或数据中心)上运行。
一次在一个节点上运行,以确保环中的所有节点之间保持一致。 同时在多个节点上运行修复作业 会损害 Cassandra 的健康。
如需检查节点上的修复作业是否成功完成,请查看节点的 条目的
system.log
文件 以及最新的修复会话的 UUID 和短语“会话已成功完成”。 以下是日志条目示例:INFO [AntiEntropySessions:1] 2015-03-01 10:02:56,245 RepairSession.java (line 282) [repair #2e7009b0-c03d-11e4-9012-99a64119c9d8] session completed successfully" Ref: https://support.datastax.com/hc/en-us/articles/204226329-How-to-check-if-a-scheduled-nodetool-repair-ran-successfully
- 在相对较低的工作负载期间运行(该工具会给 系统)。
- 至少每七天运行一次,以消除与 Cassandra 的 “忘记删除”。
- 在不同的日期在不同的节点上运行,或者安排 则其需要几个小时才能再次运行。
- 使用
-pr
选项(分区范围)指定主分区范围 节点本身
如果您为 Cassandra 启用了 JMX 身份验证,
在调用 nodetool
时,您必须包含用户名和密码。例如:
apigee-service apigee-cassandra apigee_repair -u username -pw password -pr
您还可以运行以下命令来检查受支持的 apigee_repair:
选项
apigee-service apigee-cassandra apigee_repair -h
注意:apigee_repair
是 Cassandra 的 nodetool 修复功能的封装容器,
它会在执行 Cassandra 修复之前执行额外的检查。
如需了解详情,请参阅以下资源:
。日志文件维护
Cassandra 日志存储在/opt/apigee/var/log/cassandra
每个节点默认情况下,最多可有 50 个日志文件,每个文件的大小上限为 20 MB。
已创建;达到此上限后,创建较新的日志时,旧日志将被删除。
如果您发现 Cassandra 日志文件占用了大量空间,可以将 通过修改 log4j 设置为日志文件分配的空间量。
- 修改“
/opt/apigee/customer/application/cassandra.properties
” 来设置以下属性。如果该文件不存在,请创建它:conf_logback_maxfilesize=20MB # max file size conf_logback_maxbackupindex=50 # max open files
- 使用以下命令重启 Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
磁盘空间维护
您应定期监控 Cassandra 磁盘利用率,确保 每个磁盘都可用如果磁盘利用率攀升到 50% 以上,我们建议您 添加更多磁盘空间以减少使用百分比。
Cassandra 会自动执行以下操作来 自己的磁盘利用率:
- 令牌过期时删除身份验证令牌。但也可能是 需要几周的时间来释放令牌使用的磁盘空间,具体取决于您的 配置。如果自动删除不足以维护 没有足够的磁盘空间,请与支持团队联系,了解如何手动删除令牌以恢复 空间。
数据压缩。我们建议将键空间的压缩策略更改为
LeveledCompactionStrategy
, 可提供比默认磁盘更好的磁盘利用率策略SizeTieredCompactionStrategy
。请参阅 <ph type="x-smartling-placeholder"></ph> 分层压缩策略中所述。
注意:Cassandra 执行数据压缩时,可能需要相当多的 CPU 周期
和内存。但压缩完成后,资源利用率应该会恢复正常。
您可以在每个节点上运行 'Nodetool compactionstats'
命令
检查压缩是否正在运行。compactionstats
的输出会告知您
要执行的压缩以及预计完成时间。