暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL 网络延迟参数设置建议

数风云 2020-09-10
578
点击上方“数风云”关注我们吧!

文/毛思平


近期投产的MySQL数据库集群偶尔出现节点被逐出集群的情况,怀疑是网络抖动导致的。

查询官方文档发现,MySQL 8.0.13版本引入集群网络延迟容错参数 group_replication_ member_expel_timeout,该参数默认值为0。在默认值为0时,MySQL集群节点会有一个5秒探测期,在此期间如果网络恢复正常,被怀疑节点不会被逐出集群。

为验证该参数对集群的影响,我们通过实验模拟不同时长的网络延迟,然后调整 group_ replication_member_expel_timeout 的值观察该参数值对集群驱逐故障节点的影响。



01

测试环境


操作系统版本
数据库版本
主从节点情况
CentOS Linux release 8.0.1905
MySQL 8.0.18 Community
一主两从


02

测试方法


1. 设置各节点 group_replication_member_ expel_timeout 参数值 Y;
2. 在节点模拟网络断开并设置断开时长 X;
3. 待网络恢复后查看各节点日志;
4. 登录数据库查看集群状态;
5. 记录测试结果;
6. 调整 Y 值或 X 值循环1-5步,循环测试。


03

测试结果


节点信息

参数设置值

网络延迟时间

节点驱逐

主节点状态

主从切换

对应用影响

主节点

0

5秒以内

无影响

无影响

大于5秒

只读

网络延迟内,
应用无法写入

1

17秒以内

只读

大于17秒

只读

5

17秒以内

只读

大于17秒

只读

10

17秒以内

只读

大于17秒

只读

20

33秒以内

只读

大于33秒

只读

60

  62秒以内

只读

大于62秒

只读

从节点

0

5秒以内

无影响

无影响

大于5秒

无影响

1

17秒以内

无影响

大于17秒

无影响

5

17秒以内

无影响

大于17秒

无影响

10

17秒以内

无影响

大于17秒

无影响

20

33秒以内

无影响

大于33秒

无影响

60

  62秒以内

无影响

大于62秒

无影响



参数设置建议

从目前测试结果来看,参数group_replication_ member_expel_timeout的设置能避免数据库集群间出现网络延迟时被延迟节点立即逐出集群的情况。考虑到数据库繁忙期间无法及时响应其他节点探测的情况或者数据库变更关闭节点情况,该值建议设置为5(MySQL官方于8.0.21版本已将该值默认设置为5)。


顾问:许国平 李湘宜

     赵晓玲 张刚

总编:孙鹏晖

编辑:李萌   

美编:郎贤美



-本文为“数风云”第9期文章;

-转载本公众号文章请联系我们;

-欢迎来稿:请按“题目-作者”格式命名发送到sunpenghui@abchina.com。


文章转载自数风云,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论