我正在运行cqlsh版本5.0.1,有一个6节点集群,最近我在一个表中进行了一次主要的数据清理,该表使用sizeTieredCompany策略来释放一些磁盘空间,但这并没有发生,我面临的问题是,已经创建了很多tombstone,我的sstables大小不均匀,因此它们没有被压缩。我还尝试使用nodetool compact-用户定义选项手动压缩sstables,但我的nodetool版本是3.0.15,不支持它,有没有其他方法可以压缩sstables,因为我不想在完整的表上运行压缩,因为这可能非常不可预测,下面我附上了我的sstables和cfstats。
表:
-rw-r--r-- 1 cassandra cassandra 523G Jun 17 2021 mc-153814-big-Data.db
-rw-r--r-- 1 cassandra cassandra 178G Sep 8 11:19 mc-223618-big-Data.db
-rw-r--r-- 1 cassandra cassandra 370M Oct 20 00:05 mc-259673-big-Data.db
-rw-r--r-- 1 cassandra cassandra 181G Dec 7 00:58 mc-308912-big-Data.db
-rw-r--r-- 1 cassandra cassandra 47G Dec 23 23:29 mc-331310-big-Data.db
-rw-r--r-- 1 cassandra cassandra 13G Dec 27 21:46 mc-335805-big-Data.db
-rw-r--r-- 1 cassandra cassandra 13G Dec 31 18:30 mc-340584-big-Data.db
-rw-r--r-- 1 cassandra cassandra 3.3G Jan 1 19:12 mc-341882-big-Data.db
-rw-r--r-- 1 cassandra cassandra 3.2G Jan 2 21:18 mc-343095-big-Data.db
-rw-r--r-- 1 cassandra cassandra 828M Jan 3 04:25 mc-343352-big-Data.db
-rw-r--r-- 1 cassandra cassandra 58M Jan 3 04:54 mc-343377-big-Data.db
-rw-r--r-- 1 cassandra cassandra 55M Jan 3 05:21 mc-343394-big-Data.db
-rw-r--r-- 1 cassandra cassandra 18M Jan 3 05:29 mc-343399-big-Data.db
-rw-r--r-- 1 cassandra cassandra 4.7M Jan 3 05:30 mc-343400-big-Data.db
-rw-r--r-- 1 cassandra cassandra 5.7M Jan 3 05:33 mc-343401-big-Data.db
-rw-r--r-- 1 cassandra cassandra 230G Dec 24 2020 mc-36042-big-Data.db
-rw-r--r-- 1 cassandra cassandra 380G Jan 4 2021 mc-49122-big-Data.db
-rw-r--r-- 1 cassandra cassandra 8.1G Jan 6 2021 mc-53514-big-Data.db
-rw-r--r-- 1 cassandra cassandra 82G Jan 10 2021 mc-55238-big-Data.db
-rw-r--r-- 1 cassandra cassandra 5.7G Jan 15 2021 mc-56742-big-Data.db
cfstats:
Keyspace: events
Read Count: 26115727
Read Latency: 7.895873181627301 ms.
Write Count: 510188706
Write Latency: 0.17134826153129307 ms.
Pending Flushes: 0
Table: event_track
SSTable count: 20
Space used (live): 1.65 TB
Space used (total): 1.65 TB
Space used by snapshots (total): 0 bytes
Off heap memory used (total): 2.09 GB
SSTable Compression Ratio: 0.13917185434273555
Number of partitions (estimate): 252702273
Memtable cell count: 19390
Memtable data size: 32.35 MB
Memtable off heap memory used: 0 bytes
Memtable switch count: 24677
Local read count: 26115728
Local read latency: 7.580 ms
Local write count: 510188708
Local write latency: 0.151 ms
Pending flushes: 0
Bloom filter false positives: 333
Bloom filter false ratio: 0.00000
Bloom filter space used: 397.03 MB
Bloom filter off heap memory used: 397.03 MB
Index summary off heap memory used: 144.78 MB
Compression metadata off heap memory used: 1.56 GB
Compacted partition minimum bytes: 51 bytes
Compacted partition maximum bytes: 307.45 MB
Compacted partition mean bytes: 44.67 KB
Average live cells per slice (last five minutes): 11.18867924528302
Maximum live cells per slice (last five minutes): 372
Average tombstones per slice (last five minutes): 10.617424242424242
Maximum tombstones per slice (last five minutes): 1109
请建议一些我可以释放一些磁盘空间的方法,因为数据每天都在增长,无法增加磁盘空间。
您仍然可以执行用户定义的压缩,尽管对于您的版本应该通过JMX来执行。完整的说明可以在《最后的泡菜》的这篇伟大的博客文章中找到,简短的版本是:
- 获取一些JMX工具,例如jmxterm
- 运行bean
org.apache.cassandra.db:type=CompactionManager
的forceUserDefinedCompaction
函数,将文件名作为参数传递(如有必要,请使用完整路径(:
run -b org.apache.cassandra.db:type=CompactionManager forceUserDefinedCompaction mc-341882-big-Data.db,mc-343401-big-Data.db