现象 数据库服务一切正常,从同网段访问数据库可以正常访问,从另外一个网段访问数据库失败。
通过ping及telnet端口号均正常。
解决 查询发现客户端的MTU值和集群服务器的MTU值设置为9000,而网关的MTU值为1500,导致网络传输丢包严重。修改MTU值后解决。
修改MTU值 方法一:
ifconfig:
查看当前MTU值:ifconfig eth0
设置本机MTU值:ifconfig eth0 mtu 1500
方法二:
文件:
查看:cat /sys/class/net/eth0/mtu
设置:echo “1500” > /sys/class/net/eth0/mtu
方法三:
添加MTU=1500到/etc/sysconfig/network-scripts/ifcfg-team0,需重启生效
何为MTU? 【服务器|EsgynDB Troubleshooting - 网卡MTU导致跨网段访问数据库失败】MTU是Maximum Transmission Unit的缩写,意思是网络上传送的最大数据包。大部分网络设备的MTU都是1500,如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。
推荐阅读
- linux|Linux之 JavaEE-搭建 JavaEE环境
- linux|Linux-RPM与YUM
- 软件测试|Linux常用命令(精简版)
- Java并发编程解析 | 解析AQS基础同步器的设计与实现
- 服务器|Arm、Intel 和 AMD 服务器 CPU未来2年市场发展分析
- linux|第三阶段.Linux+arm
- 嵌入式|嵌入式系统开发
- windows|NSSM - 将任何exe应用封装成windows服务的神器
- 计算机网络|网络安全基础