记一次服务器出现大量close_wait和last_ack

这一次的close_wait和last_ack与内核参数无关。

背景:
    我们有华为云和阿里云两套生产环境。产品设备连接在华为云server,数量在数十万量级。
    现在需要将产品设备迁移至阿里云server,问题出现在:只要流量切换到阿里云,随着时间增长服务器就会出现大量close_wait和last_ack。
![在这里插入图片描述](https://img-blog.csdnimg.cn/fd410592b0624cd4968f934ea7a0ea51.png)
    并且随着时间增长,close_wait越来越多,没有下降的趋势。

接下来就是喜闻乐见的排错过程了:
    一、代码问题:两个环境部署的是同一套代码,可以排除。
    二、产品设备问题:服务端出现close_wait,根据TCP四次挥手流程(图放后面),是客户端主动断开了连接。但是设备连接华为云没问题,并且日志正常,可以排除。
    三、环境问题:网上查阅资料,发现close_wait与内核参数有关,于是将阿里云的内核参数配置成华为云相同,问题依然存在。
    四、数据库问题:数据库表现一切正常。
    五、网络问题:询问了阿里云客服,没有出现过网络波动,排除服务端网络问题。(这个地方埋了一个巨坑)。设备的网络,根据检测,信号也非常稳定。
    综合以上,发现都没问题,这不可能!绝对不可能!由于刚到这家公司不久,于是和人重新梳理整个架构,终于发现了问题所在。

TCP建立与断开过程图:

服务架构图:

  

    可以看到架构图中有个打通阿里云和华为云内网的VPN,然而这个VPN带宽只有5M。
    OK!排查网络问题中的巨坑找到了。
    这个地方有两个瓶颈,一个是VPN带宽影响了数据传输速度,一个是DB中间件没有冗余,任何一个出问题都会导致系统瘫痪。这两个都是亟需解决的问题。

    当然,这里先解决眼前出现的close_wait的问题。在阿里云内网搭建DB中间件,再观察服务器表现,问题解决!    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值