6.3. 调查数据库复制性能


如果集群及其单个节点都健康且稳定,您也可以检查基准测试性能的复制吞吐量。在 ] 和 xref:galera-cluster[ 中,这样做涉及每个节点上的 wsrep_ 数据库变量:

$ sudo mysql -B -e "SHOW STATUS LIKE 'VARIABLE';"
Copy to Clipboard Toggle word wrap

同样,将 VARIABLE 替换为以下值:

Expand
表 6.3. 用于检查集群性能的数据库变量(复制吞吐量)
变量Summary

wsrep_local_recv_queue_avg

自上次查询以来本地接收队列的平均大小

wsrep_local_send_queue_avg

自最后一次查询变量的时间以来,平均发送队列长度

wsrep_local_recv_queue_min 和 wsrep_local_recv_queue_max

自上次查询变量后,本地接收队列的最小和最大大小

wsrep_flow_control_paused

因为 流控制 自上次查询变量后,节点暂停的时间

wsrep_cert_deps_distance

可并行应用最低和最高序列号(seqno)值之间的平均距离(例如,并行化)

每次查询这些变量时,FLUSH STATUS 命令都会重置其值。基准测试集群复制涉及多次查询这些值,以查看差异。这些变体可帮助您判断 流控制 量会影响集群的性能。

流控制 是集群用来管理复制的机制。当本地收到的 write-set 队列超过特定阈值时,流控制会暂停复制,以便节点捕获。如需更多信息,请参阅 Galera 集群 站点的 流控制

检查下表以了解不同值和基准测试的线索:

wsrep_local_recv_queue_avg > 0.0
节点无法像接收时快速应用 write-sets,从而触发 复制节流。检查 wsrep_local_recv_queue_minwsrep_local_recv_queue_max 以了解此基准的详细查看。
wsrep_local_send_queue_avg > 0.0
作为 wsrep_local_send_queue_avg 增长的值,因此复制节流和网络吞吐量问题的可能性更大。这在 wsrep_local_recv_queue_avg 增加时尤其如此。
wsrep_flow_control_paused > 0.0

流控制暂停节点。要确定节点暂停的时间,请将 wsrep_flow_control_paused 值乘以查询它之间的秒数。例如,如果 wsrep_flow_control_paused = 0.50 在最后一次检查后一分钟,则节点复制暂停 30 秒。如果 wsrep_flow_control_paused = 1.0,则节点在最后一次查询后暂停整个时间。

理想情况下,wsrep_flow_control_paused 应该尽可能接近 0.0

如果是节流和暂停,您可以检查 wsrep_cert_deps_distance,以查看可以并行应用多少个 write-sets (平均)。然后,检查 wsrep_slave_threads 以查看实际可同时应用多少个 write-sets。

配置更高的 wsrep_slave_threads 有助于缓解节流和暂停。例如,wsrep_cert_deps_distance 显示为 20,然后有疑问从 24wsrep_slave_threads 也可以加倍节点可以应用的写入设置量。但是,wsrep_slave_threads 仅应设置为高的 CPU 内核数。

如果有问题的节点已经有最佳 wsrep_slave_threads 设置,则请考虑将节点从集群中排除,因为您调查了可能的连接问题。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat