Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mysql 批量插入24KB SQL(抓包MTU > 1500时)时,tcpcopy 重放数据填充异常 0x00000000000000导致重放失败 #393

Open
huntkalio opened this issue Feb 25, 2022 · 3 comments

Comments

@huntkalio
Copy link

huntkalio commented Feb 25, 2022

场景:mysql批量插入24KB左右SQL时,tcpcopy重放失败
原因:抓包查看SQL插入了0x00000000000000... 导致失败
查看日志:出现了more than MTU,可能ip分包时错误导致
tcpcopy编译参数: ./configure --prefix=/opt/tcpcopy --with-pfring=/root/tcpcopy/PF_RING --pcap-capture --pcap-send --set-protocol-module=mysql-replay-module --with-debug

@wangbin579
Copy link
Member

运行tcpcopy的时候,增加 -M 新的MTU值即可

@huntkalio
Copy link
Author

机器的MTU都是1500;是tcpcopy在复制大的包的时候时会出错,暂时通过ethtool -K eth0 gro off(关闭gro)解决此bug

@wangbin579
Copy link
Member

抓的最大数据包大小假设为X(超过MTU),如果设置-M的大小等于X,发送如果没有问题,那就可以设置-M成X。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants