记一次主机通信故障及ssh登录到另外主机上执行cat等命令卡死问题
问题现象:
发生问题的是一台大数据服务器,日志显示和其他相关服务器的连接失败、拒绝连接等,通过有问题这台服务器登录其它服务器上执行命令卡死。
client_loop:send disconnect: Broken pipe
问题分析:
1、此台服务器登录任何服务器 后执行cat 长文件时卡死退出,执行cd\pwd等都是可以的,而且不会超时。
2、此台服务器跟其他服务器之间的程序模块会报连接问题。
此问题很像是网络流量超过一个阀值后服务器强制断开,所以查看网卡和服务器上控制网络流量的参数
问题解决:
ifconfig查看到有个mtu设置,一般这个参数很多人都不会注意,因为都是默认的1500,一般都不会有问题。但我的问题恰恰通过调整mtu值修复了。
mtu是什么:
MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包。MTU的单位是字节。 大部分网络设备的MTU都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。
抱着试试看的想法,将mtu值进行调整:ifconfig eth1 mtu 1499
再次测试,发现问题都修复了。
我的主机是云平台服务器,mtu也是正常的1500,理论上应该不会出现问题,偏偏云环境主机出现这么无厘头问题,我们只能通过不断扩宽自己的知识来应对各种问题。
总结:
服务器的问题有时候根据报错并不能清楚的辨别问题的原因,需要我们通过问题的现象去分析产生问题的原因,多测试、多思考、多请教。
从维基百科种看到:
这里的MTU所指的是无需分段的情况下,可以传输的最大IP报文(包含IP头部,但不包含协议栈更下层的头部)。
下面是普通媒体的MTU表:
网络 | MTU(Byte) |
---|---|
超通道 | 65535 |
16Mb/s令牌环 | 17914 |
4Mb/s令牌环 | 4464 |
FDDI | 4352 |
以太网 | 1500 |
IEEE 802.3/802.2 | 1492 |
X.25 | 576 |
点对点(低时延) | 296 |
对于使用AUTOSSH建立隧道:
- 传输模式,MTU值最大是:1440
- 隧道模式,MTU值最大是:1420
作者:运维·拖拉斯基
作者水平很低, 如果有错误及时指出, 如果你觉得本文写的好请点一波赞~(≧▽≦)/~
出处:https://www.cnblogs.com/-abm/
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。