AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 158960
Accepted
FreeSoftwareServers
FreeSoftwareServers
Asked: 2016-12-23 09:26:09 +0800 CST2016-12-23 09:26:09 +0800 CST 2016-12-23 09:26:09 +0800 CST

HAProxy - 2 节点设置中的负载平衡 - 可能获得性能?

  • 772

我正在和我的老板谈论负载平衡一个 2 节点的 Galera 集群,我们不确定是否有任何理由。

对于写入,他的论点是,即使我们平衡写入,它也必须写入每个服务器以进行复制。

对于读取,我们可以平衡服务器之间的读取,但是如果现在所有内容都通过另一台服务器上的单个 VM,这真的能节省时间吗?

我们有两个专用的 SQL Server,它们处于 Active-Active Galera 设置中。

我能想到的做 HA-Proxy 的唯一方法是在另一台服务器上安装第三个虚拟机,这真的值得通过这个虚拟机来获得性能提升吗?这个虚拟机将在一个服务器上与其他流量拥塞?

将 HA-Proxy 放在 SQL Server 上并负载平衡读取是否可能/是否有意义,但它仍然会通过带 HA-Proxy 的主服务器到达服务器 B。

只是为这个简单的设置寻找一些一般的想法和建议。

galera virtualisation
  • 1 1 个回答
  • 574 Views

1 个回答

  • Voted
  1. Best Answer
    jynus
    2016-12-23T10:06:16+08:002016-12-23T10:06:16+08:00

    根据您的特定工作负载和体系结构,您对问题的评论有几个不同的主题,并且有许多“IF”。让我们从你是对的事情开始:

    • 的确,Galera 本身不应该给你更好的写入工作量——它是一个无共享、非分片的集群,这意味着你将不得不在任何地方写入。显着提高写入性能的唯一方法是,如果您可以在多个节点之间共享写入负载,而在您的情况下,您正在复制它们。事实上,由于它是无共享架构,你添加的服务器越多,整体通常会越慢,因为最慢或更远的服务器将成为你复制的瓶颈。如果您需要写入性能,galera 不适合您(它的吞吐量通常低于单个服务器)。您通常设置 galera 以获得高可用性(如果节点出现故障,数据和服务的生存能力),而不是更好的写入性能。

    有一些缺点: * 我有一些客户声称写入性能更好,可能是因为可怕的 SQL 查询 + Galera 需要基于行的复制,在某些特殊情况下,您可以获得一些收益(如果您进行 30 秒的写入但是你只写几条记录,你会得到一些额外的可扩展性)。这通常是非常罕见的:您应该首先修复您的查询,但我只是指出一个(非常)具体的异常。

    你的问题的实质是,如果你在中间添加代理的事实不值得你从负载平衡查询中获得的改进。要回答这个问题,你需要说 6 件事:

    • 您当前在客户端和服务器之间的平均往返时间是多少
    • 客户端和代理之间的平均往返时间是多少
    • 代理和服务器之间的平均往返时间是多少
    • 代理处理时间的开销是多少
    • 实际mysql查询时间的local latency是多少
    • 您的普通客户的负载有多大?

    这将告诉您是否出于性能原因对使用代理感兴趣。

    您可以使用 ping找出前 3个,通过分析操作找出后 3 个。通常,查询时间比数据中心内的循环时间长得多,但这取决于您正在执行的查询以及这些 VM 的(物理)位置。为了取消其中一些时间,人们将代理安装在与客户端相同的机器上,因此大部分开销都被取消了。此外,HAproxy 主要是一个 IP 代理,开销非常低。

    现在,如果您的服务器负载不是很大,您可能无法在延迟方面获得任何优势 -查询服务器将使您的吞吐量翻倍- 如果这对延迟有影响则取决于您当前的负载。

    使用代理通常有一个更重要的原因,即高可用性——使用 HAProxy 将允许您自动切换到辅助 galera 节点,以防活动节点出现故障。它还将简化手动切换。当然,代理本身也可能是单点故障。

    我希望这能帮助您做出决定——但最重要的建议是亲自尝试并衡量!

    编辑:顺便说一句,只有 2 个节点,我希望你使用 galera 作为复制解决方案,而不是作为集群(需要特殊配置)或使用 garbd,因为如果你不这样做,并且一个节点出现故障,第二个也会出现故障也是为了避免裂脑(没有节点有 50%+ 的法定人数)。

    • 2

相关问题

  • 强制 MariaDB Galera 只创建 InnoDB 表

  • Galera Cluster rsync 只更新文件还是所有文件

  • 除非 Windows 中有非常大的页面文件,否则 MongoDB 会因 SymInitialize 错误而失败

  • 硬件一致性对 Galera 集群的重要性

  • 复合数据库与 ESB 有何不同,因为两者都为多个数据源提供单一访问点

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve