使用nodetool status
我可以读出每个节点的Load
。从表中添加或删除数据应该对该值有直接影响。无论执行多少次nodetool status
命令,该值都保持不变。
Cassandra文档指出Load
值需要90秒来更新。即使在运行命令之间留出几分钟的时间,结果也总是错误的。我能够更新这个值的唯一方法是重新启动节点。
我不相信这是相关的,但我应该补充一下,我正在使用docker容器来创建集群
在你链接的文档中,Load
下也写着
因为包含所有SSTable数据文件,所以不包含的数据已清理的数据,如ttl过期的单元格或墓碑数据计数。
值得注意的是,当Cassandra删除数据时,数据被标记为墓碑,直到压缩才真正被删除。因此,负载不会立即减少。您可以使用nodetool compact
强制进行主要压缩。
如果正在添加数据,也可以尝试刷新memtable。Apache注意到
Cassandra写首先写到CommitLog,然后写到每列族结构称为Memtable。当Memtable满了,它被作为SSTable写入磁盘。
所以你要么需要添加更多的数据,直到memtable满,或者你可以运行一个nodetool flush
(文档在这里)来强制它。