首页 > 解决方案 > 如何为大型裸机服务器部署调整 cassandra

问题描述

我在大型裸机服务器上部署了 cassandra。56 核和 756 gb ram 20 TB SSD。(我知道它是一种反模式,但我别无选择创建 vm 或任何东西)。它是一个 10 节点集群。哪些设置对于此类部署很重要。

我的阅读和写作工作量很大。遇到很长的压缩时间会导致读取和写入超时。

我不认为 CPU、内存、磁盘、网络是瓶颈

标签: cassandra

解决方案


所以我对密集节点架构有一句话:“大服务器等于大问题。”

我能想到一些可能会有所帮助的事情。

在 中cassandra.yaml,检查这两个设置:

concurrent_compactors: 2
compaction_throughput_mb_per_sec: 16

具体来说,concurrent_compactors是可以与 CPU 内核数量成比例的设置之一。我不会太高,但可能会通过增加 2 倍来测试它,看看你是否注意到任何东西。此外,使用您的资源,您应该compaction_throughput_mb_per_sec至少可以设置为 256。关于这个的好消息是,您可以nodetool临时设置它,只是为了尝试一下。

确保针对 SSD 优化了特定于磁盘的设置:

disk_optimization_strategy: ssd
trickle_fsync: true

并确保服务器设置为使用 G1GC 收集器,并且您可能负担得起 32GB 左右的大堆。

另外,请阅读Amy Tobey 的 Cassandra 2.1 Tuning Guide。她有很多很好的信息,这些信息仍然适用于 Cassandra 3。

TBH 不过,亚历克斯是对的。 最大的胜利将是调整您的表定义。 Cassandra 的性能更多地与数据模型定义有关。如果这不正确,那么任何服务器端“调整”都无济于事。


推荐阅读