应用:x86 centos7
数据库:1-2-128-22.08.12--20005-ENT
测试数据库有两个相互隔离的IP,应用可通过两个IP连接数据库,当断开正在连接的一个网卡后,不能立即切换,程序卡住时间过长问题。应用部署于windows时正常。
如上图所示客户端初始连接ip为192.168.44.130 当关闭改网卡后程序卡住12分钟。
通过设置连接超时等参数均未解决,通过咨询专家提供TCP/IP连接排查方向。通过程序跟踪,确定确为与TCP连接相关,测试修改TCP相关内核参数,最终确定与linux tcp 断网重连net.ipv4.tcp_retries2参数相关

- 创建测试用户和表
- 配置服务名连接
- 编写DCI测试用例
- 编译脚本并运行
- 断网卡住后进行跟踪
pstack查看

通过跟踪发现tcp连接已建立,但一直未断开



修改应用端内核参数
修改后sysctl -p生效
再次执行脚本,断网测试,时间缩短为12s,确定断网程序卡住时间过长是因为内核参数导致

tcp_retries2 :INTEGER
默认值为15
在丢弃激活(已建立通讯状况)的TCP连接之前﹐需要进行多少次重试。默认值为15,根据RTO的值来决定,相当于13-30分钟(RFC1122规定,必须大于100秒).

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/190526.html