Scylla读路径和Cassandra读路径有什么不同?当我强调Cassandra和Scylla时,Scylla的读取性能比使用16核和普通硬盘的Cassandra差5倍。
我希望与使用普通硬盘的Cassandra相比,在Scylla上的阅读性能更好,因为我的公司不提供SSD。
有没有人能确认一下,有没有可能用普通硬盘实现更好的读取性能?
如果是,需要对scylla配置进行哪些更改?请给我指引!
发布于 2020-01-23 21:11:50
其他一些回答集中在写性能上,但这不是你所问的--你问的是读。
在硬盘上的非缓存读取性能在Cassandra和Scylla中肯定会很差,因为从磁盘读取每个都需要在硬盘上执行多次寻道,而且即使是最好的硬盘也不能超过每秒200次寻道。即使有几个这样的磁盘的RAID,您也很少能够做超过每秒1000个请求。由于现代多核可以完成比每秒1000个请求多几个数量级的CPU工作,因此在Scylla和Cassandra的情况下,您可能会看到空闲的CPU。因此,当磁盘成为性能瓶颈时,Scylla的主要优势,即每次请求使用的CPU要少得多,甚至都无关紧要。在这种情况下,我期望Scylla和Cassandra的性能(我假设您在谈论性能时是在测量吞吐量?)应该大致相同。
但是,如果您看到Cassandra的吞吐量比Scylla更好,那么除了其他响应中提出的一般客户端错误配置问题之外,还有几个细节可以解释原因:
Cassandra
我不知道这些差异中的哪一个-或其他什么-导致你的用例在Scylla中的性能较低,但我请记住,无论你修复什么,你的性能在硬盘上总是不好的。使用SDDs,我们在过去测量了单个节点上每秒超过一百万个随机访问读请求。硬盘不能与之接近。如果您确实需要最佳的性能或性价比,SDDs确实是最佳选择。
发布于 2020-01-11 03:21:41
你不能从你的Scylla集群中获得最大收益的原因可能有很多。
/etc/scylla.d/cpuset.conf)我强烈建议您阅读以下文档,它们将为您提供更多的见解:
发布于 2020-01-11 17:25:46
@Sateesh,我想补充@TomerSan的答案,即Cassandra和ScyllaDB使用相同的磁盘存储架构(LSM)。这意味着它们具有相对相同的磁盘访问模式,因为算法基本相同。LSM树的构建思想是,没有必要进行即时就地更新。它由不可变的数据桶组成,这些数据桶是磁盘上的大型连续数据片段。这意味着更少的随机IO,更多的顺序IO,对于HDD来说工作得很好(不包括现代数据库实现所利用的并行性)。
所有上述情况意味着,您看到的差异不是由这些数据库如何使用磁盘的差异引起的。它必须与配置差异和下面发生的事情有关。也许ScyllaDB试图利用更多的并行性,或者更积极地进行压缩。那得看情况。
为了能够说出任何具体的东西,请分享您的测试、环境和配置。
https://stackoverflow.com/questions/59677972
复制相似问题