我在大型裸机服务器上部署了Cassandra。56核和756 gb ram 20 tb ssd(我知道这是一个反模式,但我没有选择创建虚拟机或任何东西)。它是一个10节点的集群。哪些设置对此类部署很重要。我读写工作量很大。压缩时间过长,导致读写超时。我不认为cpu,内存,磁盘,网络是一个瓶颈
4uqofj5v1#
所以我对密集节点架构有一句话:“大服务器等于大问题。”我能从脑子里想一些可能有用的事情。在 cassandra.yaml ,请检查这两个设置:
cassandra.yaml
concurrent_compactors: 2 compaction_throughput_mb_per_sec: 16
明确地, concurrent_compactors 是那些可以设置成比例的cpu核心数之一。我不会太高,但也许可以通过增加2倍来测试,看看你是否注意到了什么。此外,利用您的资源,您应该能够设置 compaction_throughput_mb_per_sec 至少到256。好消息是你可以用 nodetool 转瞬即逝,只是为了尝试一下。请确保针对SSD优化了特定于磁盘的设置:
concurrent_compactors
compaction_throughput_mb_per_sec
nodetool
disk_optimization_strategy: ssd trickle_fsync: true
确保服务器设置为使用g1gc收集器,并且您可能可以负担32gb左右的大堆。另外,请阅读amy tobey的cassandra 2.1调优指南。她有很多很好的信息仍然适用于Cassandra3。不过,亚历克斯是对的。最大的成功在于调整表定义。cassandra的性能更多地与数据模型定义有关。如果这是不正确的,那么任何服务器端“调优”都帮不上什么忙。
1条答案
按热度按时间4uqofj5v1#
所以我对密集节点架构有一句话:“大服务器等于大问题。”
我能从脑子里想一些可能有用的事情。
在
cassandra.yaml
,请检查这两个设置:明确地,
concurrent_compactors
是那些可以设置成比例的cpu核心数之一。我不会太高,但也许可以通过增加2倍来测试,看看你是否注意到了什么。此外,利用您的资源,您应该能够设置compaction_throughput_mb_per_sec
至少到256。好消息是你可以用nodetool
转瞬即逝,只是为了尝试一下。请确保针对SSD优化了特定于磁盘的设置:
确保服务器设置为使用g1gc收集器,并且您可能可以负担32gb左右的大堆。
另外,请阅读amy tobey的cassandra 2.1调优指南。她有很多很好的信息仍然适用于Cassandra3。
不过,亚历克斯是对的。最大的成功在于调整表定义。cassandra的性能更多地与数据模型定义有关。如果这是不正确的,那么任何服务器端“调优”都帮不上什么忙。