7.4. 测试数据库复制性能
如果集群和单个节点都健康且稳定,您可以通过查询特定的数据库变量,在复制吞吐量上运行性能基准测试。
每次查询其中一个变量时,FLUSH STATUS
命令都会重置变量值。要运行基准测试,您必须运行多个查询和分析差异。这些差异可帮助您确定正在运行的 流控制 是否影响到集群性能。
流控制是集群用来管理复制的机制。当本地 接收队列 超过特定阈值时,流控制会暂停复制,直到队列大小停机。有关 Flow Control 的更多信息,请参阅 Galera Cluster 网站上的流控制。
流程
运行以下命令并将 VARIABLE
替换为您要检查的 wsrep
数据库变量:
$ sudo docker exec galera-bundle-docker-0 sudo mysql -B --password="[MYSQL-HIERA-PASSWORD]" -e "SHOW STATUS LIKE 'VARIABLE';"
下表列出了可用于测试数据库复制性能的 wsrep
数据库变量。
表 7.3. 用于检查数据库复制性能的数据库变量
变量 | 概述 | 使用 |
---|---|---|
| 最后一次查询后本地接收的 write-set 队列的平均大小。 |
高于 0.0 的值表示节点无法像接收 write-sets 时快速应用 write-sets,这会触发复制节流。检查 |
| 最后一次查询后的平均发送队列长度。 | 值高于 0.0 表示复制节流和网络吞吐量问题的可能性较高。 |
| 最后一次查询后本地接收队列的最小和最大大小。 |
如果 |
| 流控制在最后一次查询后暂停节点的时间部分。 |
高于 0.0 的值表示流控制暂停该节点。要确定暂停的持续时间,请在查询之间使用以秒为单位的 例如:
|
|
可并行应用的最低和最高序列号( |
如果节流和暂停,这个变量指示平均可并行应用多少个 write-sets。将该值与 |
| 可同时应用的线程数 |
您可以增加这个变量的值来同时应用更多线程,这也会增加
例如,如果
如果有问题的节点已经有最佳 |