Categories: 错误解决

如何设置Linux操作系统TIME_WAIT状态的TCP连接快速回收时间?

问题

大规模Linux环境下,采用Nginx反向代理服务后,操作系统会产生很多TIME_WAIT的TCP(Transmission Control Protocol)连接,操作系统默认TIME_WAIT的TCP连接回收时间是2分钟。这样会导致回收TCP过慢导致系统吞吐量下降。如何修改操作系统内核参数来缩短TIME_WAIT状态TCP连接回收时间和提高nf_conntrack的上限,保证在大并发场景下操作系统的nf_conntrcak信息不会满?

通过修改配置文件的方式修改操作系统内核参数。

  • 执行如下命令,进入”/etc”文件夹下
    • cd /etc
  • 建议修改配置文件”sysctl.conf”前先备份。若备份文件名为”sysctl.conf_bak”,则执行如下命令进行备份。
    • cp sysctl.conf sysctl.conf_bak
  • 执行如下命令以文本方式打开”sysctl.conf”文件。
    • vi sysctl.conf
  • 在”sysctl.conf”文件的最后直接增加如下内容:
    • net.ipv4.tcp_syncookies = 1
    • net.ipv4.tcp_tw_reuse = 1
    • net.ipv4.tcp_tw_recycle = 1
    • net.ipv4.tcp_timestamps = 1
    • net.ipv4.tcp_fin_timeout = 30
    • net.nf_conntrack_max = 655360
    • net.netfilter.nf_conntrack_tcp_timeout_established = 1200
  • 说明:在NAT环境下,设置net.ipv4.tcp_tw_recycle = 0,其余场景下设置net.ipv4.tcp_tw_recycle = 1。
  • 执行如下命令使以上参数生效。
    • /sbin/sysctl -p
王哥哥

Recent Posts

只有美区才可以升级到McAfee+Adv

 注意是升级到而不是直接购买 …

1 天 ago

美区en-us LiveSafe升级到McAfee+Adv

     有些小众McAfee…

1 天 ago

注册美区McAfee方法——堪比Affid=0!

 卡饭论坛上,有网友指出,Af…

1 周 ago

国区和美区McAfee的区别

 在卡饭论坛,有网友发现,国区…

1 周 ago

SQL评估期已过

 早上开发同事过来说数据库连不…

2 周 ago

【下一代存储】玻璃光盘

 据长江日报昨日消息,武汉光电…

2 周 ago