TIME_WAIT和CLOSE_WAIT
2016-02-24 16:10
661 查看
对于保持大量TIME_WAIT或 CLOSE_WAIT状态解决办法。
服务器命令:
显示信息:
TIME_WAIT 108
CLOSE_WAIT 1021
ESTABLISHED 44
FIN_WAIT2 11
LAST_ACK 1
常用的三个状态是:ESTABLISHED 表示正在通信,TIME_WAIT 表示主动关闭,CLOSE_WAIT 表示被动关闭。
对于 保持大量TIME_WAIT 或 CLOSE_WAIT 状态 ,理解和解决办法:
TIME_WAIT:
主动发起关闭的一方最终会进入TIME_WAIT状态,TIME_WAIT会持续一段时间,一般是2MSL,其目的是为了实现TCP全双工连接的终止,并允许老的重复分节从网络中消逝。
优化服务器,能够快速回收和重用那些TIME_WAIT的资源。
CLOSE_WAIT:
被动关闭的一方进入CLOSE_WAIT状态,CLOSE_WAIT的意思是等待应用进程调用close()。
查代码。问题一定出现在服务器程序,对方关闭连接之后服务器程序自己没有进一步发出ack信号。
服务器命令:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
显示信息:
TIME_WAIT 108
CLOSE_WAIT 1021
ESTABLISHED 44
FIN_WAIT2 11
LAST_ACK 1
常用的三个状态是:ESTABLISHED 表示正在通信,TIME_WAIT 表示主动关闭,CLOSE_WAIT 表示被动关闭。
对于 保持大量TIME_WAIT 或 CLOSE_WAIT 状态 ,理解和解决办法:
TIME_WAIT:
主动发起关闭的一方最终会进入TIME_WAIT状态,TIME_WAIT会持续一段时间,一般是2MSL,其目的是为了实现TCP全双工连接的终止,并允许老的重复分节从网络中消逝。
优化服务器,能够快速回收和重用那些TIME_WAIT的资源。
CLOSE_WAIT:
被动关闭的一方进入CLOSE_WAIT状态,CLOSE_WAIT的意思是等待应用进程调用close()。
查代码。问题一定出现在服务器程序,对方关闭连接之后服务器程序自己没有进一步发出ack信号。
相关文章推荐
- CLOSE-WAIT与TIME_WAIT
- mysql 大量TIME_WAIT
- CLOSED_WAIT & TIME_WAIT
- 解决TIME_WAIT过多问题
- TCP状态
- jfinal使用c3p0连接mysql数据库,连接线程time_wait问题
- CLOSE_WAIT生成的原因
- 解决服务器出现大量CLOSE_WAIT和TIME_WAIT连接的方法
- TCP的状态兼谈Close_Wait和Time_Wait的状态
- time _wait 状态
- TCP建立与断开连接那些事儿
- CLOSE_WAIT研究和端口复用存在弊端
- tcp短连接TIME_WAIT问题解决方法大全(1)——高屋建瓴
- tcp短连接TIME_WAIT问题解决方法大全(2)——SO_LINGER
- tcp短连接TIME_WAIT问题解决方法大全(3)——tcp_tw_recycle
- tcp短连接TIME_WAIT问题解决方法大全(4)——tcp_tw_reuse
- tcp短连接TIME_WAIT问题解决方法大全(5)——tcp_max_tw_buckets
- tcp time_wait
- httpclient端口占满,处于Close_wait状态。Timeout waiting for connection from pool