【发布时间】:2018-10-21 14:13:18
【问题描述】:
我有一个数据节点 cassandra 版本 3.11.2 和一个 cassandra c++ 驱动程序版本 2.7。具有 500 000 行的单个数据节点集群。我异步读取数据,然后将数据推送到队列,调度程序使用 cassandra c++ 驱动程序异步写入数据。我有 10 个应用程序线程、10 个 io 线程和 10 个调度线程。我的 TPS 是 38000。
但是我对“两个数据节点”cassandra 集群所做的相同活动都驻留在同一个机架上,并尝试以一致性级别“TWO”进行读写。我的 TPS 下降到 12000。 为什么即使所有配置和客户端二进制文件都相同,我的性能也会如此下降?只需将读取一致性更改为两个并将写入一致性更改为两个。
我需要做更多才能获得 40000 左右的 TPS。我需要添加更多 DATA NODE 吗?
【问题讨论】:
-
要开始性能分析和故障排除,您可以先查看How to increase Transaction Per Second TPS in Cassandra。
-
另一个有助于提高 TPS(根据 Alex Ott 的建议和关于一致性增加延迟的信息进行扩展)的另一个方面可能是减少应用程序和 IO 线程的数量,这样您就不会耗尽系统资源。这也可能对您看到的性能产生影响,因为 IO 线程将执行系统级调用。
标签: cassandra