我们正在使用 Cassandra 从 Thingsboard 收集数据。它开始时的内存为 4GB(在执行 Cassandra 的 systemctl 状态后),15 小时后已达到 9.3GB。我不确定内存增加的原因,我想知道是否有任何方法可以控制它或限制它使用固定数量的内存而不会丢失数据。
答案1
您可以使用 cassandra-env.sh 中的 MAX_HEAP_SIZE 设置来控制堆大小,但是 Apache Cassandra 也有许多利用堆外内存的组件。值得注意的是,压缩偏移、bloomfilter、块缓存和潜在的内存表。有多种方法可以调整这些组件使用的内存量,但是它们总是会使用一些内存,并且诸如压缩偏移和 bloomfilter 之类的东西会随着数据大小而增长。话虽如此,内存使用量不应该无限制地增长,除非您在不添加更多节点的情况下不断增加数据大小,否则内存使用量在某个时候会趋于平稳。