阿里云服务器上不了怎么办

2024-05-07 07:31:47问答浏览:7702次

最新回答:可以通过以下方法解决问题:

我要提问

登录后回复

1 个回答

  • 晁叔雪
    弭仲嫔
    记一次解决阿里云服务器偶尔连接不上的问题(由tcp_tw_recycle参数引发的)我做了一些TCP优化后,出现了偶尔无法连接阿里云服务器的问题。公司内网偶尔无法连接服务器,但切换到其他网络后可以正常连接。
    1.登录服务器查看资源。使用top、vmstat等命令检查发现服务器各项指标均正常。于是问题就转向了网络层。
    2.使用本地ping服务器外网IP正常返回,无丢包,延迟正常。
    3.登录服务器查看tcp相关数据。
    发现滞后期间大量tcpsyn报文被丢弃,并且该值不断增大。
    查阅资料并结合实际情况,发现服务器同时启用了tcp_timestamps和tcp_tw_recycle参数。
    后来想起来之前的同事为了改善time_wait连接过多的问题,改了这个内核参数。
    解决办法是关闭tcp_tw_recycle:
    再次观察,发现服务正常,偶尔的连接失败消失了。
    我们先来了解一下这两个参数(mantcp):
    cp_timestamp是RFC1323定义的一个优化选项,主要用于TCP连接中RTT(RoundTripTime)的计算。启用tcp_timestamp将有助于系统计算出更准确的RTT,这也将有助于提高TCP性能。(默认开启)
    有关tcp_timestamps的详细信息请参见:http://tools.ietf.org/pdf/rfc7323.pdf
    开启tcp_tw_recycle将实现tcptime_wait的快速回收。不建议使用该参数。在NAT环境中启用它可能会导致相关问题。
    tcp_tw_recycle依赖于tcp_timestamps参数。在一般的网络环境下,可能不会出现问题,但是在NAT环境下,就会出现问题。比如我遇到的情况,办公室里只有一个外网地址。大家访问后端都会通过路由器做SNAT,将内网地址映射到公网IP。由于服务器和客户端都启用了tcp_timestamps,因此TCP标头会向服务器添加时间戳信息。从服务器的角度来看,同一个客户端的时间戳必须线性增长。但是由于我的客户端网络环境是NAT,所以每台主机的时间戳都是不同的。启用Aftertcp_tw_recycle后,一旦客户端断开连接,服务器可能会丢弃时间戳较小的客户端的SYN报文,导致网站访问极不稳定。
    主机ASIP:P1(时间戳T0)--->服务器主机A断开连接后
    主机BSIP:P1(时间戳T2)T2服务器丢弃
    这次失败后,告诫我们在处理线上问题时,不能盲目修改参数。在将它们应用到生产环境之前,我们必须测试并确认它们是正确的。同时,还需要加深对相关内核参数的认识和理解。
    赞7回复举报
我也是有底线的人~
点击加载更多

热门新闻