【发布时间】:2017-06-02 22:43:00
【问题描述】:
我的目标是利用我的 galera 集群中两个节点的足够 cpu 资源,以便我的端到端堆栈可以支持更多的 TPS。现在,我的完整堆栈受到 36vcpu 的单个 mariadb 服务器的限制,它可以达到 10000 TPS。
我想通过在一个 galera 集群中使用 2 个 DB 节点来支持近 20000 TPS(因为 1 可以支持大约 10000 TPS - 这受到 CPU 的限制)。在这个时候,我不关心裂脑和其他复制或边界线场景。我最初在 galera 中使用 ha 代理负载均衡器的 2 个节点对其进行了测试,但结果非常糟糕(仅限 3500 TPS)。 我是否正在尝试实现 galera 无法做到的事情?请给点意见。
我可以通过任何其他机制来集群我的数据库以使应用程序超出一个节点上 10000 TPS 的限制?
【问题讨论】:
-
我不是 MySQL 集群方面的专家,但我认为因为你的目标是速度而不是复制,所以你应该看看像 NDB 这样的 MySQL 的 Shared-Nothing 集群架构,而不是复制——像 Galera 这样的集中集群。
-
您不能在生产系统中使用具有 2 个节点的 Galera。如果一个节点崩溃并重新同步另一个节点用于重新同步,那么您的集群就会关闭!查看负载也很重要。对于高读取负载 Galera 是最好的。还要考虑网络中的多播,因此节点只能发送到 1 个地址而不是每个节点。优化my.cnf。最后使用 MaxScal 代替 HaProxy。
标签: mysql mariadb database-administration percona galera