记一次centos7系统内核调试的傻X行为

起因是因为我拿到一台云服务器之后,部署好了网站和数据库之后,查看netstart -anplt,发现TIME_WAIT特别多。其实也不是特别多,可能也就十几二十几个,然后我就想,在我的服务器里面不能出现这种状态。于是我就得得嗖嗖的在网上查找了解决TIME_WAIT的方法,所有解决方案都是增加以下参数来快速回收TIME_WAIT:

vim /etc/sysctl.conf
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1

针对于前三个参数,我觉得OK。但是如果加了最后面那个参数后,我的服务器给我的反馈就是时而能访问,时而不能访问(包括远程数据库,远程服务器都是),找了好几天的错误,大到运营商的网络问题,小到服务的参数,问了个遍,很纳闷。就是对内核参数的不了解,才导致这样。最后在sysctl.conf里面的参数都删除也不可以,突然想到查看了/proc/sys/net/ipv4下的相关文件,发现那个参数还是1 。我去,echo “0”进去,终于恢复了之前那样。我天呢,最后的劝告就是对内核参数不了解,千万不要改。就因为这个错误,公司里面的人访问都成问题了,搞得我一头汗,差点就要背行李回家了。

最后查看相关信息发现:tcp_tw_recycle 的机制是维护时间戳,发现时间戳后退的包直接丢掉,这就导致服务器可能会丢失 NAT 模式下运行的客户端连接。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值