`

linux 下Time_wait过多问题解决

 
阅读更多
问题起因:

自己开发了一个服务器和客户端,通过短连接的方式来进行通讯,由于过于频繁的创建连接,导致系统连接数量被占用,不能及时释放。看了一下18888,当时吓到了。



现象:

1、外部机器不能正常连接SSH

2、内向外不能够正常的ping通过,域名也不能正常解析。



问题排查:

通过 netstat  -anp | grep TIME_WAIT | wc -l 命令查看数量,发现TIME_WAIT的连接数量超过了18000太夸张了。
1、初步怀疑是程序没有关闭连接,codereview了两遍,发现,已经正常关闭。

2、网上看TIME_WAIT产生的原因,可能是因为服务器主动关闭连接导致TIME_WAIT产生。

3、查找TIME_WAIT解决方案:

发现系统存在大量TIME_WAIT状态的连接,通过调整内核参数解决,
vi /etc/sysctl.conf

编辑文件,加入以下内容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30

然后执行 /sbin/sysctl -p 让参数生效。



经过配置后,暂时的问题是解决了,再查看TIME_WAIT数量快速下降。



关键命令:

1、netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'

会得到类似下面的结果,具体数字会有所不同:

LAST_ACK 1
SYN_RECV 14
ESTABLISHED 79
FIN_WAIT1 28
FIN_WAIT2 3
CLOSING 5
TIME_WAIT 1669

状态:描述
CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉



2、sysctl -a | grep time | grep wait
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120



出自:
http://blog.csdn.net/jaylong35/article/details/6605077

分享到:
评论

相关推荐

    解决TIME_WAIT过多造成的问题

    解决TIME_WAIT过多造成的问题

    CentOS解决服务器存在大量time_wait的问题

    在IT行业中,服务器性能优化是至关重要的,尤其是对于运行关键应用如Tomcat的服务器。...同时,优化网络架构,如使用连接池,或者调整应用程序的行为,例如减少短连接的使用,也可以作为解决问题的补充策略。

    大量TIME_WAIT状态的连接解决方法

    在Linux系统中,当服务器处理大量网络连接时,可能会遇到TIME_WAIT状态的连接过多导致的问题。TIME_WAIT是TCP连接的一个正常终止状态,但若数量过多则可能会影响到服务器性能。本文将详细介绍如何在Linux系统中优化...

    解决mysql出现大量TIME_WAIT

    为了解决大量TIME_WAIT状态导致的问题,可以通过修改Linux系统的内核参数来优化。具体步骤如下: 1. **编辑sysctl.conf文件**:使用文本编辑器打开`/etc/sysctl.conf`文件,添加或修改以下参数: - `...

    【Linux网络编程笔记】TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法—实践篇 - slv

    【Linux网络编程笔记】TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法,这是一个关于网络编程和Linux系统配置的问题。在TCP/IP通信中,TIME_WAIT状态是TCP连接生命周期的一部分,用于确保...

    nginx+php产生大量TIME_WAIT连接解决办法1

    过多的TIME_WAIT连接虽然在正常情况下不会占用大量资源,但如果数量过大,可能会超出系统的默认限制,导致端口耗尽,进而影响新连接的建立。例如,Linux系统默认最多允许35600条TIME_WAIT连接。 解决这个问题的方法...

    探讨如何减少Linux服务器TIME_WAIT过多的问题

    这种状态对于确保连接的可靠关闭至关重要,但过多的TIME_WAIT连接会带来问题。 TIME_WAIT状态的主要目的是: 1. 防止旧连接中的重复数据包干扰新连接。TCP通过等待2倍的MSL(最大段生存期)来确保这些旧的数据包在...

    减少Linux服务器过多的TIME_WAIT

    虽然TIME_WAIT状态对于TCP的可靠性至关重要,但过多的TIME_WAIT连接可能导致服务器端口资源紧张,特别是在高并发的服务器环境下,如Squid缓存服务器。在这种情况下,可以通过调整内核参数来缓解问题: 1. **启用TCP...

    解决linux下大量TIME WAIT的方法详解

    通过合理调整内核参数,可以有效缓解TIME_WAIT套接字过多带来的问题,提高服务器性能和稳定性。但需要注意的是,任何参数更改都需要根据实际工作负载和网络环境进行测试,以确保改动不会引入新的问题。

    linux sysctl

    - `net.ipv4.tcp_max_tw_buckets`设置系统能同时保持的最大TIME_WAIT连接数量,合理设置可以避免TIME_WAIT状态过多导致的问题。 #### 四、示例配置 以下是一些具体的配置示例: ```bash # 编辑/etc/sysctl.conf...

    教案之优化Linux的内核参数来提高服务器并发处理能力.pdf

    总结来说,优化Linux内核参数是提高服务器并发处理能力的有效手段,特别是针对TCP连接管理进行微调,可以有效地解决TIME_WAIT状态的连接占用资源的问题,并增强服务器的防御能力。同时,合理调整端口范围和连接队列...

    Linux服务器上11种网络连接状态 和 TCP L.doc

    Linux服务器上的网络连接状态是监控和管理服务器性能的关键部分,特别是对于...同样,TIME_WAIT过多可能影响新连接的建立,可能需要调整TCP超时设置。因此,熟悉这些状态有助于网络管理员有效地管理和优化网络资源。

    优化Linux的内核参数来提高服务器并发处理能力

    - 含义: 限制TIME-WAIT状态下的buckets数量,防止大量TIME_WAIT连接占用过多资源。 #### 应用步骤 1. 使用文本编辑器打开`/etc/sysctl.conf`文件。 2. 将上述参数添加到该文件中。 3. 保存并关闭文件。 4. 使更改...

    SYN报文什么时候下会被丢弃 516 - 528

    SYN 报文什么时候下会被丢弃 SYN 报文是什么时候下会被丢弃?...这个问题跟工作上也是有关系的,我们需要了解 TCP 连接的建立过程,并了解 TIME_WAIT 状态和 PAWS 机制的作用,以便更好地解决工作中的问题。

    TCPIP并发连接数修改

    2. **调整TCP连接复用**:启用TCP连接复用(TCP Keepalive或TCP_tw_reuse)可以减少TIME_WAIT状态的影响,让已关闭但还在TIME_WAIT的连接可以被复用,降低端口资源消耗。 3. **修改TCP最大连接数**:在某些系统中,...

    ECS运维指南之Linux系统诊断1

    - TIME_WAIT和CLOSE_WAIT状态过多会影响网络性能,优化TCP连接设置。 这份指南提供了从系统启动到网络问题的全面排查方法,旨在帮助ECS用户更有效地解决Linux运维中遇到的各种问题,提升系统的稳定性和可用性。通过...

    Linux内核参数优化调整

    11. `net.core.tcp_max_tw_buckets = 5000`:限制TIME_WAIT套接字的最大数量,防止过多的TIME_WAIT状态占用资源。 此外,还有其他网络缓冲区大小的优化,如: - `/proc/sys/net/core/wmem_max` 和 `/proc/sys/...

    nginx优化 突破十万并发1

    6. **keepalive_timeout**:设置客户端连接保持活动状态的超时时间,防止过多的空闲连接占用资源。 7. **client_header_buffer_size**:设置客户端请求头部的缓冲区大小。通常设置为系统页面大小的倍数,以适应不同...

    查看apache连接的连接并发数[参照].pdf

    Apache服务器是世界上最流行的Web服务器之一,它以其稳定性和可扩展性而受到广泛的使用。在软件开发过程中,确保服务器能够...同样,过多的`TIME_WAIT`状态可能表明服务器未能有效地管理连接关闭,需要优化相关设置。

Global site tag (gtag.js) - Google Analytics