解决TIME_WAIT过多造成的问题】的更多相关文章

  转自:解决TIME_WAIT过多造成的问题 (eroswang的csdn) #netstat -n | awk '/^tcp/ {++S[$NF]} END { for(a in S) print(a,S[a])}' LAST_ACK SYN_RECV ESTABLISHED FIN_WAIT1 FIN_WAIT2 CLOSING TIME_WAIT 状态:描述 CLOSED:无连接是活动的或正在进行 LISTEN:服务器在等待进入呼叫 SYN_RECV:一个连接请求已经到达,等待确认 SY…
sh-4.1# netstat -an |awk '/tcp/ {++S[$NF]}END {for (a in S) print a , S[a]}' TIME_WAIT CLOSE_WAIT ESTABLISHED LISTEN TCP/IP TIME_WAIT状态原理: 通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态 客户端主动关闭连接时,会发送最后一个ack后,然后会进入TIME_WAIT状态,再停留2个MSL时间(后有MSL的解释),进入CLOSED状态.…
#netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’ LAST_ACK 14SYN_RECV 348ESTABLISHED 70FIN_WAIT1 229FIN_WAIT2 30CLOSING 33TIME_WAIT 18122 状态:描述CLOSED:无连接是活动的或正在进行LISTEN:服务器在等待进入呼叫SYN_RECV:一个连接请求已经到达,等待确认SYN_SENT:应用已经开始,打开一个连接ESTAB…
需要真正找出问题或瓶颈,但调整单机参数能临时解决:(收集自:https://www.cnblogs.com/dadonggg/p/8778318.html) 编辑内核文件/etc/sysctl.conf,加入以下内容: net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies.当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭: net.ipv4.tcp_tw_reuse = 1 表示开启重用.允许将TIME-WAIT s…
http://bbs.linuxtone.org/thread-853-1-1.html http://bbs.linuxtone.org/thread-2327-1-1.html…
我们的DSP系统目前基本非凌晨时段的QPS都在10W以上,我们使用Golang来处理这些HTTP请求,Web服务器的前端用Nginx来做负载均衡,通过Nginx的proxy_pass来与Golang交互. 由于nginx代理使用了短链接的方式和后端交互的原因,使得系统TIME_WAIT的tcp连接很多: shell> netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",stat…
http://www.51testing.com/html/48/202848-249774.html linux和windows下TIME_WAIT过多的解决办法 http://m.sohu.com/a/122714498_412810 Windows time_wait过多解决办法 沐浴晨曦:是配置的问题..除了用tcpwaitdelay之外 还需要配置maxuserport 除此之外 还需要加入动态端口的范围 netsh int ipv4 set dynamicport tcp start…
开源Linux 专注分享开源技术知识 本文给出一个 TIME_WAIT 状态的 TCP 连接过多的问题的解决思路,非常典型,大家可以好好看看,以后遇到这个问题就不会束手无策了. 问题描述 模拟高并发的场景,会出现批量的 TIME_WAIT 的 TCP 连接: 短时间后,所有的 TIME_WAIT 全都消失,被回收,端口包括服务,均正常.即,在高并发的场景下,TIME_WAIT 连接存在,属于正常现象. 线上场景中,持续的高并发场景: 一部分 TIME_WAIT 连接被回收,但新的 TIME_WA…
     最近用http_load做压测,跑出来一大串“Cannot assign requested address ”的错误,查了一下,是TIME_WAIT过多导致的.因为短时间内有太多连接,所以占用了大量端口,同时关闭连接后又处于TIME_WAIT状态,端口不能复用,所以慢慢的无端口可用,所以就“Cannot assign requested address”了.      可以对内核参数进行优化:      sysctl -w net.ipv4.tcp_timestamps=1 开启对于…
sh-3.2# scripts]# netstat -an|awk '/tcp/ {++S[$NF]}END {for (a in S) print a,S[a]}' TIME_WAIT ESTABLISHED LISTEN sh- scripts]# cat /etc/sysctl.conf|awk '/net.ipv4.tcp_syncookies|net.ipv4.tcp_tw_reuse|net.ipv4.tcp_tw_recycle|net.ipv4.tcp_fin_timeout/'…
一.系统环境 操作系统: Centos 6.4 64bit zabbix-agent 版本: Zabbix agent v2.2.7 (revision 50148) (24 October 2014) 二.出现的问题 zabbix-agent机器上,发现TIME_WAIT过多 tcp 0 0 xxx.xx.161.183:10050 xxx.xx.161.174:59237 TIME_WAIT tcp 0 0 xxx.xx.161.183:10050 xxx.xx.161.174:59783…
一.系统环境 操作系统: Centos 6.4 64bit zabbix-agent 版本: Zabbix agent v2.2.7 (revision 50148) (24 October 2014) 二.出现的问题 zabbix-agent机器上,发现TIME_WAIT过多 三.为什么会出现这么多TIME_WAIT 下表说明了zabbix是如何通信的, 它会教给你基本的tcp协议的知识.如果你看不懂这个表的内容,我建议你可以读下<TCP/IP 详解1>! 表格中的state是TCP连接在a…
参考博文 https://dengqsintyt.iteye.com/blog/2086485 Timeout waiting for connection异常排查:https://blog.csdn.net/shootyou/article/details/6615051 再谈应用环境下的TIME_WAIT和CLOSE_WAIT:https://blog.csdn.net/shootyou/article/details/6622226 Nginx做前端Proxy时TIME_WAIT过多的问题…
查看Nginx并发状态 #netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' TIME_WAIT 1259SYN_SENT 2FIN_WAIT1 8ESTABLISHED 166FIN_WAIT2 24SYN_RECV 25CLOSING 17LAST_ACK 18 ======================== 以上参数解释:CLOSED:无连接是活动的或正在进行LISTEN:服务器在等待进入呼叫SYN_R…
linux 下Time_wait过多问题解决 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的快速回收,…
/* 设置memcache锁,解决查询过多email查询为空的问题 Begin */ $mmc = new Memcache; $mmc->connect('127.0.0.1', 11211) or die ("Could not connect"); if(!empty($mmc)){ $sending=$mmc->get('sending'); $sending=intval($sending); }else{ //如果不能使用memcache,则以不影响发送为主 $…
上图对排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻地认识,不能只停留在一知半解之中.下面对这张图的11种状态详细解释一下,以便加强记忆!不过在这之前,先回顾一下TCP建立连接的三次握手过程,以及关闭连接的四次握手过程. 1.建立连接协议(三次握手)(1)客户端发送一个带SYN标志的TCP报文到服务器.这是三次握手过程中的报文1. (2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SY…
总结: 最合适的解决方案是增加更多的四元组数目,比如,服务器监听端口,或服务器IP,让服务器能容纳足够多的TIME-WAIT状态连接.在我们常见的互联网架构中(NGINX反代跟NGINX,NGINX跟FPM,FPM跟redis.mysql.memcache等),减少TIME-WAIT状态的TCP连接,最有效的是使用长连接,不要用短连接,尤其是负载均衡跟web服务器之间.尤其是链家事件中的PHP连不上redis. 在服务端,不要启用net.ipv4.tcp_tw_recycle,除非你能确保你的服…
1.查看并发#ps -ef | grep httpd -c2.查看并发数及tpc连接状态netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'返回结果示例:  LAST_ACK 5  SYN_RECV 30  ESTABLISHED 1597  FIN_WAIT1 51  FIN_WAIT2 504  TIME_WAIT 1057其中的SYN_RECV表示正在等待处理的请求数;ESTABLISHED表示正常数据传输…
  查看TCP状态:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'查看SOCKET状态:cat /proc/net/sockstatTIME_WAIT状态的socket一般需要等到2msl时间后,socket才会被回收.修改(添加)系统内核参数:/etc/sysctl.conf #改系統默认的TIMEOUT时间net.ipv4.tcp_fin_timeout=2 #启重用,允许将TIME-WAIT sock…
1.参考:https://blog.csdn.net/liangzhao_jay/article/details/50546898 2.参考: [Unix 网络编程]TCP状态转换图详解 - wenqian 'blog - CSDN博客https://blog.csdn.net/wenqian1991/article/details/40110703 最值得 注意的状态有两个:CLOSE_WAIT和TIME_WAIT.   .TIME_WAIT 我方主动调用close()断开连接,收到对方确认后…
状态:描述CLOSED:无连接是活动的或正在进行LISTEN:服务器在等待进入呼叫SYN_RECV:一个连接请求已经到达,等待确认SYN_SENT:应用已经开始,打开一个连接ESTABLISHED:正常数据传输状态FIN_WAIT1:应用说它已经完成FIN_WAIT2:另一边已同意释放ITMED_WAIT:等待所有分组死掉CLOSING:两边同时尝试关闭TIME_WAIT:另一边已初始化一个释放LAST_ACK:等待所有分组死掉 想要让服务器获得更高的性能,需要对一些内核参数做出调整. 完整参数…
https://mp.weixin.qq.com/s/VRQ_12tzy3gRYD091cI7Ew…
Linux系统下,TCP/IP连接断开后,会以TIME_WAIT状态保留一定的时间,然后才会释放端口.当并发请求过多的时候,就会产生大量的 TIME_WAIT状态的连接,无法及时断开的话,会占用大量的端口资源和服务器资源(因为关闭后进程才会退出).这个时候我们可以考虑优化TCP/IP 的内核参数,来及时将TIME_WAIT状态的端口清理掉 在下面的参数的基础上,建议优化点(/etc/sysctl.conf): 1:增大tcp_max_tw_buckets为200000 2:修改tcp_times…
修改Time_Wait参数的方法 (在服务端修改)Windows下在HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters,添加名为TcpTimedWaitDelay的DWORD键,设置为30,以缩短TIME_WAIT的等待时间 解决CLOSE_WAIT的方法:(在客户端修改)1 一般原因都是TCP连接没有调用关闭方法.需要应用来处理网络链接关闭.2 对于Web请求出现这个原因,经常是因为Response的Bod…
项目是B/S模式,放在linux服务器上,tomcat和oracle11g在一台服务器上,tomcat读取数据库采用C3P0连接池,一直比较稳定,所以也没有去管.后来把tomcat放在一台win2008下,数据库放在另外一台win2008下.运行了半月有余,期间经常报数据库连接错误,但刷新下页面也就好了.因为是偶发问题,也没有去关注.终于有一天彻底报错进不了了,报错截图如下: 大意是与数据库连接有问题.这才慌慌的打开数据库服务器查看原因.数据库貌似正常,但用sqlplus连接不上,报超过最大连接…
问题起因: 自己开发了一个服务器和客户端,通过短连接的方式来进行通讯,由于过于频繁的创建连接,导致系统连接数量被占用,不能及时释放.看了一下18888,当时吓到了. 现象: 1.外部机器不能正常连接SSH 2.内向外不能够正常的ping通过,域名也不能正常解析. 问题排查: 通过 netstat  -anp | grep TIME_WAIT | wc -l 命令查看数量,发现TIME_WAIT的连接数量超过了18000太夸张了. 1.初步怀疑是程序没有关闭连接,codereview了两遍,发现,…
最近系统二次开发之后,发现使用的 Tomcat 7 会经常假死.前端点击页面无任何反应,打开firebug,很多链接一直在等待服务器的反应.查看服务器的状态,CPU占用很少,最多不超过10%,一般只有2%,3%左右,内存占用倒是接近80, 90%.一开始怀疑是tomcat内存配置不够,但是打开 jvisualvm.exe 分析,发现Tomcat 占用的堆内存没有什么问题.因为是假死,所以最后怀疑到 tomcat的 链接数和 数据库的链接数的配置估计太小了.netstat -na 结果页显示很多t…
最近发现使用的Tomcat 7会经常假死.前端点击页面无任何反应,打开firebug,很多链接一直在等待服务器的反应.查看服务器的状态,CPU占用很少,最多不超过10%,一般只有2%,3%左右,内存占用倒是接近80, 90%.一开始怀疑是tomcat内存配置不够,但是打开 jvisualvm.exe 分析,发现Tomcat 占用的堆内存没有什么问题.因为是假死,所以最后怀疑到 tomcat的 链接数和 数据库的链接数的配置估计太小了.netstat -na 结果页显示很多time_wait. 查…
修改配置文件 /etc/sysctl.conf net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_fin_timeout = 30net.ipv4.tcp_keepalive_time = 1200 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_max_tw_buckets = 5000 sysctl -p 让以上配置生效 一个个解释下 net.ipv4…