Cassandra In-memory功能如何工作

时间:2017-04-04 14:47:30

标签: cassandra

关于Cassandra中的In-Memory功能我几乎没有问题

1。)我有一个4节点数据中心,在Opscenter中,在内存使用情况下,它显示有100GB的内存可用。是否意味着4个节点中的每个节点都有100GB可用内存,或者100Gb是我的数据中心的总内存容量?

2.。)如果数据中心的内存中确实有100GB可用,建议使用全部容量吗?我是否还需要考虑复制因子?假设我有一个15GB的数据,我想将它存储在内存中,如果复制因子为2,那么就像我们在数据中心的内存中有30GB的数据一样吗?

3.)在dse.yaml文件中,有一个属性的值类似于系统内存的百分比" max_memory_to_lock_fraction"默认情况下是20%。根据Datastax Cassandra的指导原则,我们需要确保每个节点的内存使用量不超过总可用系统内存的45%。这是" max_memory_to_lock_fraction"需要设置为45%的参数?

4.。)数据传输文档说明需要为内存表删除压缩。如果确实设置了压缩,它是否会影响读/写性能?

5.。)dsetool inmemorystatus的输出有一个名为"当前总记忆不能锁定的参数"。此参数中存在的值是否表示可用内存。比如说值是1024MB,是否意味着仍然可以使用1GB的内存。

我使用的是DSE 4.8.11版本。请帮助我,因为我试图了解此功能,以便最好地利用它。

提前致谢。

1 个答案:

答案 0 :(得分:1)

1)这取决于你如何配置它可以是每个群集(所有可用内存),或者你可以查看单个节点的图形

2)是的,复制因子总计增加因子倍数。您必须将其纳入群集级别。非常好的工具可以帮助您入手:https://www.ecyrd.com/cassandracalculator/

3)是的,你正在寻找max_memory_to_lock_fraction

4)它会增加处理时间,因为cassandra中的写入实际上是cpu绑定的,这可能不是最好的性能明智的想法。

5)是的,这意味着仍有内存(指定数量),但由于设置,cassandra无法锁定它。