美文网首页
TIME_WAIT过多的危害以及解决TIME_AWAIT过多方案

TIME_WAIT过多的危害以及解决TIME_AWAIT过多方案

作者: 无剑_君 | 来源:发表于2020-02-26 23:50 被阅读0次

    TIME_WAIT过多危害
    网络情况不好时,如果主动方无TIME_WAIT等待,关闭前个连接后,主动方与被动方又建立起新的TCP连接,这时被动方重传或延时过来的FIN包过来后会直接影响新的TCP连接;
    同样网络情况不好并且无TIME_WAIT等待,关闭连接后无新连接,当接收到被动方重传或延迟的FIN包后,会给被动方回一个RST包,可能会影响被动方其它的服务连接。
    过多的话会占用内存,一个TIME_WAIT占用4k大小
    解决方法
    相关参数优化调整(当然得根据服务器的实际情况配置,这里着重讲参数意义):
    既然知道了TIME_WAIT的用意了,尽量按照TCP的协议规定来调整,对于tw的reuse、recycle其实是违反TCP协议规定的,服务器资源允许、负载不大的条件下,尽量不要打开,当出现TCP: time wait bucket table overflow,尽量调大下面参数:
    vim /etc/sysctl.conf

    #time wait 最高的队列数
    tcp_max_tw_buckets = 256000
    

    调整次参数的同时,要调整TIME_WAIT_2到TIME_WAIT的超时时间,默认是60s,优化到30s:

    net.ipv4.tcp_fin_timeout = 30
    

    其它TCP本身的配合参数类似与synack重传次数、syn重传次数等以后介绍,优化后也是有所益处的。

    #修改系統默认的TIMEOUT时间
    net.ipv4.tcp_timestamps = 1
    net.ipv4.tcp_tw_reuse = 1
    

    机器作为客户端时起作用,开启后time_wait在一秒内回收

    #time_wait
    net.ipv4.tcp_tw_recycle = 0 (不要开启,现在互联网NAT结构很多,可能直接无法三次握手)
    

    相关文章

      网友评论

          本文标题:TIME_WAIT过多的危害以及解决TIME_AWAIT过多方案

          本文链接:https://www.haomeiwen.com/subject/llynchtx.html