zoukankan      html  css  js  c++  java
  • 记一次主机通信故障及ssh登录到另外主机上执行cat等命令卡死问题

    问题现象:

    发生问题的是一台大数据服务器,日志显示和其他相关服务器的连接失败、拒绝连接等,通过有问题这台服务器登录其它服务器上执行命令卡死。

     client_loop:send disconnect: Broken pipe

    问题分析:

    1、此台服务器登录任何服务器 后执行cat 长文件时卡死退出,执行cdpwd等都是可以的,而且不会超时。

    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
  • 相关阅读:
    Python课程第三天作业
    Python课程第一天作业
    centos7安装Jenkins
    搭建zookeeper+kafka集群
    redis在实践中的一些常见问题以及优化思路
    部署redis4.0-cluster
    redis哨兵架构的基础知识及部署和管理
    Redis主从复制
    部署Redis4.x单机版及配置RDB和AOF持久化
    xshell使用密钥登陆linux
  • 原文地址:https://www.cnblogs.com/-abm/p/13728583.html
Copyright © 2011-2022 走看看