目录 (Table of Contents)
文中Cassandra 安装在/opt 目录下,具体执行命令需根据自己的Cassandra安装目录进行调整。
Cassandra 版本为 3.5。
修改Cassandra 最大可用内存大小
Cassandra 默认最大可用内存和初始内存大小(-Xmx 、-Xms )为 4G ,通常情况下偏小。
修改最大内存大小可直接修改 cassandra/conf/cassandra-env.sh 中 MAX_HEAP_SIZE 参数:MAX_HEAP_SIZE="4G"
cassandra 有两种GC策略,系统内存在14G以上,推荐使用 G1策略。默认使用的是CMS策略。参阅Tuning Java resources
登录CQL、查看版本
登录:/opt/cassandra/bin/cqlsh [ip] -u [username] -p [passwd]
查看版本:cqlsh>show version
查看墓碑数据总量
没有直接查看墓碑数量的好方法,可在CQL 中开启tracing,执行查询时,会提示具体表含有多少墓碑数据:
修复表
修复表可以手动同步各个节点的数据(包括墓碑数据),需在各个节点分别执行
/opt/cassandra/bin/nodetool repair kairosdb string_index;
压实数据
墓碑数据过多会影响Cassandra性能。压实数据,可消除墓碑数据。压实前,需进行表数据的修复,以防删除数据恢复。
- 手动压实:
/opt/cassandra/bin/nodetool compact kairosdb string_index
开启自动压实(默认已开启):
/opt/cassandra/bin/nodetool enableautocompaction
修改表的压实策略:
ALTER TABLE kairosdb.string_index WITH compaction = {'class' : 'SizeTieredCompactionStrategy', 'min_threshold' : 6 };
- 修改自动压实周期:
默认压实时间为864000,即10天,修改为一天:alter table kairosdb.string_index with GC_GRACE_SECONDS = 86400;
关于压实策略,请参阅:How is data maintained
查看当前压实操作状态和历史压实纪录
/opt/cassandra/bin/nodetool compactionstats;
/opt/cassandra/bin/nodetool compactionhistory;
查看表的状态
/opt/cassandra/bin/nodetool cfstats kairosdb.data_points 或
/opt/cassandra/bin/nodetool tablestats kairosdb.data_points;
Cassandra 线程池的使用统计信息
Cassandra基于分阶段事件驱动架构(SEDA)。Cassandra将不同的任务分成由消息服务连接的很多阶段。每个阶段都有一个队列和一个线程池。如果下一个阶段太忙,Cassandra会备份队列,并将导致性能瓶颈。
/opt/cassandra/bin/nodetool tpstats;
其他
更多 cassandra命令请参阅:The nodetool utility 、Apache Cassandra