记一次主机通信故障及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
posted @ 2020-09-25 10:23  abm  阅读(1171)  评论(0编辑  收藏  举报