6.4. 在 MariaDB 集群中测试数据库复制性能


要检查 MariaDB Galera 集群 的性能,请通过检查特定的 wsrep 数据库变量在集群复制吞吐量上运行基准测试。

每次查询其中一个变量时,FLUSH STATUS 命令都会重置变量值。要运行基准测试,您必须运行多个查询并分析差异。这些变体可帮助您确定流控制对集群性能的影响。

流控制是集群用来管理复制的机制。当本地接收队列超过特定阈值时,流控制会暂停复制,直到队列大小停机为止。有关流控制的更多信息,请参阅 Galera 集群网站上的流控制

流程

  • 运行以下命令,将 &lt ;variable > 替换为您要检查的 wsrep 数据库变量:

    $ sudo podman exec galera-bundle-podman-0 sudo mysql -B --password="[MYSQL-HIERA-PASSWORD]" -e "SHOW STATUS LIKE <variable>;"

下表列出了可用于测试数据库复制性能的 wsrep 数据库变量。

Expand
表 6.3. 用于检查数据库复制性能的数据库变量
变量概述使用方法

wsrep_local_recv_queue_avg

最后一次查询后收到的 write-set 队列的平均大小。

高于 0.0 的值表示节点无法快速应用 write-sets,因为它会接收 write-sets,这会触发复制节流。检查 wsrep_local_recv_queue_minwsrep_local_recv_queue_max 以了解此基准的详细查看。

wsrep_local_send_queue_avg

最后一次查询后的平均发送队列长度。

值高于 0.0 表示复制节流和网络吞吐量问题的可能性更高。

wsrep_local_recv_queue_min and wsrep_local_recv_queue_max

最后一次查询后本地接收队列的最小和最大大小。

如果 wsrep_local_recv_queue_avg 的值高于 0.0,您可以检查这些变量以确定队列大小的范围。

wsrep_flow_control_paused

流控制在最后一次查询后暂停节点的时间部分。

高于 0.0 的值表示 Flow Control 暂停了节点。要确定暂停的持续时间,请将 wsrep_flow_control_paused 值乘以查询之间的秒数。最佳值是尽可能接近 0.0

例如:

  • 如果在最后一次查询的 1 分钟后 wsrep_flow_control_paused 的值为 0.50,则 Flow Control 会暂停节点 30 秒。
  • 如果在最后一次查询后 wsrep_flow_control_paused 的值为 1.0 一分钟,则 Flow Control 会暂停整个分钟的节点。

wsrep_cert_deps_distance

可以并行应用最低和最高序列号(seqno)值之间的平均区别

如果节流和暂停,此变量表示可以并行应用平均数量的写入集。将值与 wsrep_slave_threads 变量进行比较,以查看实际可以同时应用多少个 write-sets。

wsrep_slave_threads

可同时应用的线程数量

您可以增加此变量的值,以同时应用更多线程,这也会增加 wsrep_cert_deps_distance 的值。wsrep_slave_threads 的值不能高于节点中的 CPU 内核数。

例如,如果 wsrep_cert_deps_distance 值为 20,您可以将 wsrep_slave_threads 的值从 2 增加到 4,以增加节点可以应用的 write-sets 数量。

如果有问题的节点已有最佳 wsrep_slave_threads 值,您可以在调查可能的连接问题时将节点排除在集群中。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部