2017-04-04 44 views
0

我与卡桑德拉如何卡桑德拉在记忆功能的工作

1)我有一个4节点数据中心和OpsCenter中,在内存使用方面到In-Memory功能几个问题,就说明有100GB的内存可用。这是否意味着4个节点中的每个节点都有100GB可用内存,或者是我的数据中心内存容量的100Gb?

2.)如果对于数据中心来说,真正有100GB可用于内存,建议使用全容量?我是否还需要考虑复制因素?假设我有一个15GB的数据,我想将它存储在In-Memory中,如果复制因子是2,是否会像我们在数据中心的内存中有30GB的数据?

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

4.)Datastax文档说,需要删除内存表中的压缩。如果确实设置了压缩,是否会影响读/写性能?

5.)dsetool inmemorystatus的输出有一个名为“Current Total memory not lock”的参数。该参数中存在的值是否表示可用内存。比如说如果这个值是1024MB,这是否意味着仍然有1GB内存可用。

我正在使用DSE 4.8.11版本。请帮助我,因为我正在尝试理解此功能,以充分利用它。

在此先感谢。

+0

请尝试将您的内容限制为每个问题的一个实际问题。否则,大部分答案会变得太长而无法对未来的Google Analytics有用。 – Aaron

回答

1

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

2)是,通过因子乘以复制因数增加数据总量的图。您将不得不在集群级别考虑这一点。很不错的工具来帮助你开始:https://www.ecyrd.com/cassandracalculator/

3)是max_memory_to_lock_fraction是你在找什么

4),它会增加处理时间,因为在卡桑德拉写操作实际上是CPU束缚,这可能不是最好的性能明智理念。

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

+1

Hi Marko,谢谢你的回应。这真的很有帮助。我正在检查单个节点的内存使用情况,并且为每个节点显示100GB。只是对如何解释它是针对单个节点还是群集感到困惑。关于内存 – mick

+0

关于内存解锁,需要做些什么来解锁它?当我们将数据加载到内存表中时会自动完成吗? – mick

+0

锁定由节点启动时的设置定义,您需要增加要锁定然后重新启动的数量。 –