7

我正在对 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)?我知道这是每个人都推荐的,但更公平的测试是 8GB Xmx 用于 Cassandra 和 --memory 8G 用于 ScyllaDB 吗?我的工作量主要是写密集型的,我不希望文件系统缓存总是能够帮助 Cassandra。与 Cassandra 对它的巨大依赖相比,ScyllaDB 几乎不期望任何文件系统缓存对我来说很奇怪。

4

2 回答 2

15

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

于 2017-10-30T23:08:58.790 回答
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 工作负载的方式

于 2017-10-30T22:54:21.677 回答