最新消息:

MTU值的调整导致MySQL复制异常

mysql admin 3400浏览 0评论

今天的故事简单有趣,你绝对没有遇到过。当我们把网卡的MTU值从默认的1500,调整为3000/6000/9000后,复制十分诡异,搞得我云里来雾里去的,先记录下:
以下命令可以动态修改MTU值及时生效,和查看状态的一些命令:
shell> ifconfig eth1 mtu 3000 up (永久生效可以增加MTU=XXXX到配置文件ifcfg-ethN中)
shell> ip link list eth1
shell> ethtool
shell> ping -s xxxx IP (当增大MTU后,-s值大于1500的ping都会失败)
增大MTU后,复制正常,但scp发生stalled.
增大MTU后,复制异常,scp发生stalled.
异常表现为:
1. 从库只复制过去了一条建库与语句;
2. show processlist和show slave status查看主从状态均正常,但是,当停止主库,show slave status时从库没有异常反应,只有当stop slave,再start slave,从库io_thread_running变为No;
3. 主库show processlist时观察到有Writing to net状态出现,然后该线程被关闭,从库各状态无任何异常。
4. 其中一次在6000复制失败后,将MTU值恢复为1500,突然发现从库有语句被复制过来并执行。
—-
MTU (Maximum Transfer Unit) — 最大传输单元,之所以调整,是考虑到当有大数据量传输时,减少数据包的分段操作,以提高传输速度。后来发现,不能单方面调整,还需要考虑整个网络环境中各个interface的MTU,都需要保持一致才行,否则丢包是难免的。

转载请注明:爱开源 » MTU值的调整导致MySQL复制异常

您必须 登录 才能发表评论!