§ MGR 网络开销阈值


§ 简介

在MGR中的事务开销包含网络层以及本地资源(例如CPU、磁盘I/O等)开销。

当事务响应较慢想要分析性能瓶颈时,可以先确定是网络层的开销还是本地资源性能瓶颈导致的。

GreatSQL支持记录在网络层开销超过耗时阈值的请求到日志中,便于后续优化分析。

§ 新增系统参数

新增系统参数 group_replication_request_time_threshold。设置该参数阈值不为0,即可记录超过阈值的事件到error log中,例如:

[Note] Plugin group_replication reported: 'MGR request time:30808us, server id:3306879, thread_id:17368'
1

表示当时这个事务在MGR层的网络开销耗时30808微秒(30.808毫秒),再去查看那个时段的网络监控,分析网络延迟较大的原因。

System Variable Name group_replication_request_time_threshold
Variable Scope Global
Dynamic Variable YES
Type Integer
Permitted Values [0, 100000]
Default 0
Description 单位:毫秒。
参数值设置>0,当事务的MGR层网络开销超过该阈值时,会在error log中记录一条日志。
设置为0时,表示禁用。

§ 注意事项

  • 如果MGR跑在局域网环境,则建议设置为50 ~ 100毫秒区间;如果是运行在跨公网环境,则建议设置为1 ~ 10秒左右。

  • 当该值设置为1 ~ 9之间时,会自动调整为10(毫秒)且不会提示warning,如果设置为0则表示禁用。

  • 当怀疑可能因为MGR通信耗时过久成为事务性能瓶颈时再在线动态开启,平时没必要开启。

扫码关注微信公众号

greatsql-wx