linux下大量TIME WAIT的问题怎么解决

发布时间:2022-04-16 15:13:14 作者:iii
来源:亿速云 阅读:326

今天小编给大家分享一下linux下大量TIME WAIT的问题怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

问题描述:
在linux系统中高并发的squid服务器,tcp time_wait套接字数量经常达到两、三万,服务器很容易被拖死。
解决方法:
通过修改linux内核参数,可以减少linux服务器的ime_wait套接字数量。
vi /etc/sysctl.conf
增加以下几行:

复制代码 代码如下:

net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024    65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000

说明:
net.ipv4.tcp_syncookies = 1 表示开启syn cookies。当出现syn等待队列溢出时,启用cookies来处理,可防范少量syn攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将time-wait sockets重新用于新的tcp连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启tcp连接中time-wait sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求关闭,这个参数决定了它保持在fin-wait-2状态的时间。
net.ipv4.tcp_keepalive_time = 1200 表示当keepalive起用的时候,tcp发送keepalive消息的频度。缺省是2小时,改为20分钟。
net.ipv4.ip_local_port_range = 1024    65000 表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
net.ipv4.tcp_max_syn_backlog = 8192 表示syn队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_tw_buckets = 5000 表示系统同时保持time_wait套接字的最大数量,如果超过这个数字,time_wait套接字将立刻被清除并打印警告信息。默认为180000,改为5000。对于apache、nginx等服务器,上几行的参数可以很好地减少time_wait套接字数量,但是对于squid,效果却不大。此项参数可以控制time_wait套接字的最大数量,避免squid服务器被大量的time_wait套接字拖死。
执行以下命令使配置生效:
/sbin/sysctl -p                 

以上就是“linux下大量TIME WAIT的问题怎么解决”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

推荐阅读:
  1. 发现大量的TIME_WAIT解决办法
  2. TIME_WAIT状态下,修改socket选项后,bind端口会失败

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux

上一篇:linux下怎么查看进程内存的使用情况

下一篇:linux下怎么实现VPS免费备份脚本

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》