Cassandra与ScyllaDB内存使用情况

时间:2017-10-30 20:08:58

标签: database memory cassandra heap scylla

我正在对ScyllaDB和Cassandra进行性能比较,特别是关注内存的影响。我使用的机器每个都有16GB和8个核心。 根据文档,Cassandra默认为4GB Xmx,并使用剩余的12GB作为文件系统缓存。 https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsTuneJVM.html 相反,ScyllaDB将使用全部16GB http://docs.scylladb.com/faq/#scylla-is-using-all-of-my-memory-why-is-that-what-if-the-server-runs-out-of-memory

我想知道的是,这是一个公平的比较设置(Cassandra为4GB Xmx而Scylla为16GB)?我意识到这是每个推荐的,但对于Cassandra而言更公平的测试是8GB Xmx和ScyllaDB的--memory 8G吗?我的工作量大多是写密集型的,我不希望文件系统缓存始终能够帮助Cassandra。我很奇怪,与Cassandra对它的巨大依赖相比,ScyllaDB几乎没有任何文件系统缓存。

2 个答案:

答案 0 :(得分:13)

Cassandra将始终使用所有系统内存;堆大小(-Xmx)设置只确定堆使用了多少以及其他内存使用者(堆外结构和页面缓存)的使用量。因此,如果你限制Scylla的内存使用量,那么与Cassandra相比它将处于劣势。

答案 1 :(得分:11)

Scylla将使用~1 / 2的内存用于MemTable,另一半用于Key / Partition缓存。 如果您的工作负载主要是写入,则更多内存对性能的影响较小,并且应受I / O或CPU的限制。

我建议阅读: http://www.scylladb.com/2017/10/05/io-access-methods-scylla/

了解Scylla撰写信息的方式。 和 http://www.scylladb.com/2016/12/15/sswc-part1/ 了解Scylla平衡I / O工作负载的方式