gpt4 book ai didi

mysql - galera 集群的性能低得惊人

转载 作者:行者123 更新时间:2023-11-29 06:05:53 28 4
gpt4 key购买 nike

我的目标是利用我的 galera 集群中两个节点的足够 cpu 资源,以便我的端到端堆栈可以支持更多的 TPS。现在,我的整个堆栈受限于一个 36vcpu 的 mariadb 服务器,它可以达到 10000 TPS。

我想通过在 galera 集群中使用 2 个数据库节点来支持近 20000 TPS(因为 1 可以支持大约 10000 TPS - 这受到 CPU 的限制)。目前我不关心裂脑和其他复制或边界线场景。我最初使用 ha 代理负载均衡器在 galera 中使用 2 个节点对其进行了测试,但结果非常糟糕(仅 3500 TPS)。我是否正在尝试实现 galera 无法完成的事情?请提出一些观点。

我可以通过任何其他机制对我的数据库进行集群以使应用程序超越一个节点上 10000 TPS 的限制?

最佳答案

每个事务(在 Galera 中)必须在 COMMIT 时间与所有其他节点对话以确认该事务将在任何地方工作。最终,这些节点必须执行交易。取决于很多因素,此工作量可能比原始节点的工作量少很多,也可能不会少很多。

所有形式的复制都涉及在从站上重复发生在主站上的“写入”。诀窍是尽量减少奴隶的努力;但这只能部分完成。

如果独立服务器最多处理 10K 个事务,任何 复制设置都不可能跨 2 个节点处理 20K 个事务。它可能有可能通过 3 个或更多节点获得 20K。

Galera 似乎在 4-5 个节点处达到顶峰。也就是说,同步变得势不可挡,从而限制了缩放。

Oracle 的“InnoDB Cluster”看起来有望超过 5 个节点。它现在在 5.7 和 8.0 中有些可用。

NDB Cluster 依赖于“最终一致性”,这是一个与“异步”(常规复制)、“半同步”或 Galera 或 InnoDB Cluster 的“同步”截然不同的模型。如果交易从不相互冲突,或者至少不来自不同节点,NDB 可能会大放异彩。

已经有超过 10K 的实验。尝试 this .

请描述您的“交易”;可能还有其他技术可以提高性能。例如,一个 100 行的 INSERT 运行速度大约是 100 个单行 INSERTs 的 10 倍; CPU 的大部分节省。

关于mysql - galera 集群的性能低得惊人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41721367/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com