免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4926 | 回复: 3
打印 上一主题 下一主题

[系统管理] 请教怎样快速回收服务端的TIME_WAIT连接 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-01-05 16:40 |只看该作者 |正序浏览
tcp        0      0 0.0.0.0:80                0.0.0.0:*                   LISTEN      12130/nginx         
tcp        0      0 192.168.1.11:80           192.168.1.106:12075         TIME_WAIT   -                  
tcp        0      0 192.168.1.11:80           192.168.1.106:55114         TIME_WAIT   -                  
tcp        0      0 192.168.1.11:80           192.168.1.106:61838         TIME_WAIT   -                  
tcp        0      0 192.168.1.11:80           192.168.1.106:59512         TIME_WAIT   -                  
tcp        0      0 192.168.1.11:80           192.168.1.106:56412         TIME_WAIT   -                  
tcp        0      0 192.168.1.11:80           192.168.1.106:59202         TIME_WAIT   -                  
tcp        0      0 192.168.1.11:80           192.168.1.106:55080         TIME_WAIT   -                  
tcp        0      0 192.168.1.11:80           192.168.1.106:54956         TIME_WAIT   -     


因为客户端发起的请求里带有“Connection: close” ,在处理完后Nginx主动断开连接。而服务器出现大量的TIME_WAIT连接。
而客户端会在10秒或更长的时间内重用临时端口,从抓包看,客户端发SYN建立连接时,服务端响应给上一个连接的ACK 。

设置TCP参数:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30

没什么效果。

net.ipv4.tcp_max_tw_buckets=0
反而这个参数有效果。
但这样设置不知道会不会有什么隐患。


请教下有什么办法可能更好的解决方案 ?

论坛徽章:
0
4 [报告]
发表于 2013-06-03 21:12 |只看该作者
最近也一直为这个问题困扰,TIME_WAIT上千服务器就死机了。负载达到了200,网站打不开,ssh勉强可以操作,让IDC开了防火墙就可以顶住,但防火墙会误伤正常访客。用iptable禁止这些IP都无效,不知道这是什么攻击。

tcp        0      0 ::ffff:42.120.22.52:80      ::ffff:222.77.213.10:55675  TIME_WAIT   -                  
tcp        0      0 ::ffff:42.120.22.52:80      ::ffff:220.200.32.46:49188  FIN_WAIT2   -                  
tcp        0      0 ::ffff:42.120.22.52:80      ::ffff:117.25.72.151:49678  TIME_WAIT   -                  
tcp        0      0 ::ffff:42.120.22.52:80      ::ffff:27.159.254.212:53025 TIME_WAIT   -                  
tcp        0      0 ::ffff:42.120.22.52:80      ::ffff:27.153.218.214:54553 TIME_WAIT   -                  
tcp        0      0 ::ffff:42.120.22.52:80      ::ffff:218.30.103.138:58771 TIME_WAIT   -                  
tcp        0      0 ::ffff:42.120.22.52:80      ::ffff:218.86.51.94:62394   TIME_WAIT   -                  
tcp        0      0 ::ffff:42.120.22.52:80      ::ffff:125.112.26.121:56528 TIME_WAIT   -                  
tcp        0      0 ::ffff:42.120.22.52:80      ::ffff:222.77.213.251:57969 TIME_WAIT   -                  
tcp        0      0 ::ffff:42.120.22.52:80      ::ffff:121.205.242.15:55617 TIME_WAIT   -                  
tcp        0      0 ::ffff:42.120.22.52:80      ::ffff:120.43.26.131:58508  TIME_WAIT   -                  
tcp        0      0 ::ffff:42.120.22.52:80      ::ffff:222.77.213.10:55853  TIME_WAIT   -                  
tcp        0      0 ::ffff:42.120.22.52:80      ::ffff:110.89.10.175:59821  TIME_WAIT   -   

论坛徽章:
0
3 [报告]
发表于 2013-03-05 20:38 |只看该作者
net.ipv4.tcp_max_tw_buckets = 5000 表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。
默  认为180000,改为5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死

论坛徽章:
0
2 [报告]
发表于 2013-01-14 18:11 |只看该作者
哪位兄弟解答下??
谢谢!
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP