`

apache time_wait

 
阅读更多
# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
LAST_ACK 1
SYN_RECV 164
CLOSE_WAIT 3
ESTABLISHED 655
FIN_WAIT1 15
FIN_WAIT2 81
SYN_SENT 3
TIME_WAIT 14274
系统很多TIME_WAIT状态的连接,不能及时回收。访问量大的时候时常出现连接超时。
解决办法是调整内核参数,加快TIME_WAIT状态连接的回收和启用重用。
修改内核代码
vi /etc/sysctl.conf
net.ipv4.tcp_tw_reuse = 1 #表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 #表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
sysctl -p
vi /etc/sysctl.conf
net.ipv4.tcp_tw_reuse = 1 #表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 #表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
sysctl -p
更多参数调整看以前的博客Linux web服务器常用内核参数注解
调整后TIME_WAIT状态连接立即减少:
# netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
LAST_ACK 9
SYN_RECV 171
CLOSE_WAIT 2
ESTABLISHED 767
FIN_WAIT1 27
FIN_WAIT2 13
TIME_WAIT 3675
# netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
LAST_ACK 9
SYN_RECV 275
CLOSE_WAIT 3
ESTABLISHED 1111
FIN_WAIT1 42
FIN_WAIT2 154
TIME_WAIT 1804
在安装linux后的内核优化根据下面的选项,在优化Linux内核中要注意你修改的每一个参数,以保证万无一失.
kernel.shmall = 268435456
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_keepalive_time = 1200
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 5000 65000
net.ipv4.tcp_mem = 786432 1048576 1572864
net.core.wmem_max = 873200
net.core.rmem_max = 873200
net.ipv4.tcp_wmem = 8192 436600 873200
net.ipv4.tcp_rmem = 32768 436600 873200
net.core.somaxconn = 256
net.core.netdev_max_backlog = 1000
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_keepalive_time = 500
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.conf.lo.arp_ignore = 0
net.ipv4.conf.lo.arp_announce = 0
net.ipv4.conf.all.arp_ignore = 0
net.ipv4.conf.all.arp_announce = 0
各选项的解释:
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_tw_buckets = 5000
#表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,
#TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改为5000。
#对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,

#但是对于Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。
分享到:
评论

相关推荐

    apache time_wait连接数太多问题解决方法

    ### Apache Time_Wait 连接数太多问题及解决方法 #### 一、问题背景 在运维Apache服务器的过程中,经常遇到的一个问题是与负载均衡器之间的连接数异常增多,并且这些连接状态大多处于`TIME_WAIT`状态。这种情况会...

    TCP_SYNC基础

    客户端:CLOSED -> FIN_WAIT_1 -> FIN_WAIT_2 -> TIME_WAIT -> CLOSED 服务器:CLOSED -> LISTEN -> ESTABLISHED -> CLOSE_WAIT -> LAST_ACK -> CLOSED TIME_WAIT 状态 TIME_WAIT 状态是一个非常重要的状态,它的...

    linux内核参数

    TCP参数的调整在提高服务器性能方面起着重要作用,特别是当服务器面临大量TIME_WAIT状态连接时。TIME_WAIT状态的连接在断开后会占用端口资源一段时间,这可能导致端口资源耗尽,影响新连接的建立。通过调整以下内核...

    MySQL wait_timeout连接超时

    MySQL的`wait_timeout`连接超时问题通常出现在长时间无操作的数据库连接上,服务器会自动关闭这些连接以释放资源。这种现象在应用中可能导致突然的数据通信中断,表现为“Communications link failure”等错误,提示...

    查看apache连接的连接并发数

    n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'来查看Apache服务器的TCP连接状态,该命令可以显示当前Apache服务器的TCP连接状态,包括SYN_RECV、ESTABLISHED、FIN_WAIT1、FIN_WAIT2、TIME_WAIT等...

    优化Linux的内核提高服务器并发能力

    5. TCP连接参数的优化:除了TIME_WAIT状态的优化外,还可以优化其他TCP连接参数,比如增大SYN队列长度(tcp_max_syn_backlog)、调整SYN攻击保护机制(tcp_syncookies),以及增加系统可以同时保持TIME_WAIT的最大...

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

    {++S[$NF]} END {for(a in S) print a, S[a]}'`会显示不同TCP连接状态的数量,如`SYN_RECV`(等待确认的连接),`ESTABLISHED`(正常数据传输),`FIN_WAIT1`和`FIN_WAIT2`(关闭过程中的连接),以及`TIME_WAIT`...

    单机负载均衡与群集的测试用例

    本测试用例基于Spring开发。已经打为war包。测试的时候请放在tomcat的webapps目录内。启动tomcat后会自动部署。访问的时在浏览器输入...页面会显示网站当前部署的物理目录以及当前的SessionID。

    linux 下tcp参数优化

    当服务器程序 APACHE 处于 CLOSE_WAIT 状态时,说明套接字是被动关闭的。这是因为如果客户端主动断掉当前连接,那么双方关闭这个 TCP 连接共需要四个 packet:Client —> FIN —> Server、Client <— ACK <— Server...

    apache并发连接查看

    例如,大量的**TIME_WAIT**状态可能表明服务器面临资源回收的压力;而高比例的**ESTABLISHED**状态则表明服务器当前正承受着较大的访问量。 #### 四、并发连接数的优化策略 1. **调整Apache配置**:合理设置Apache...

    MySQL Tomcat Apache优化

    当Apache服务器面临大量TIME_WAIT状态的连接时,可能会导致新的连接请求被拒绝。解决这一问题的方法包括: - **调整TCP参数**:例如,通过设置`net.ipv4.tcp_tw_reuse = 1`允许重用处于TIME_WAIT状态的连接,从而...

    查看Apache并发请求数及其TCP连接状态.pdf

    - **TIME_WAIT**:连接已经关闭,但等待一段时间以确保所有数据已传输且可以重用套接字。 5. **Apache的prefork和worker模式**: - prefork模式下,每个请求对应一个进程,而worker模式则使用多线程处理请求,...

    HttpClient由浅到深-打打磨rpc利器.pptx

    TCP 连接关闭过程中,TIME_WAIT 和 CLOSE_WAIT 状态至关重要: - **TIME_WAIT**:客户端在发送完最后一个 ACK 后进入此状态,等待2MSL(最大分段生存时间),以确保服务器收到确认并释放连接。这能防止旧数据包...

    如何查看Apache的连接数和当前连接数

    反之,如果TIME_WAIT状态的连接过多,可能要考虑调整服务器的TIME_WAIT超时设置,以释放资源。 总的来说,掌握查看Apache连接状态的方法有助于系统管理员及时发现和解决服务器性能问题,优化服务配置,提升用户体验...

    Linux运维工程师工作手册.docx

    使用`netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'`查看网络连接状态,关注`ESTABLISHED`和`TIME_WAIT`状态的连接数。 12. **处理TCP TIME_WAIT套接字**: 对于高并发场景,过多的TIME...

    linux+tomcat+mysql+solr调优

    该选项可以减少TIME_WAIT sockets的数量,从而降低系统的内存使用。 - `net.ipv4.tcp_fin_timeout`:设置TIME_WAIT socket的最大存活时间。根据具体的应用场景调整该值,以减少TIME_WAIT状态的socket数量。 ##### ...

    apache benchmark ab.exe

    wait for each response Default is 30 seconds -b windowsize Size of TCP send/receive buffer, in bytes -B address Address to bind to when making outgoing connections -p postfile File containing ...

    浏览器与apache通讯中的TCP连接状态迁移

    例如,浏览器在所有数据接收完毕或浏览器关闭时,会发送FIN报文到服务器,进入FIN_WAIT_1状态。 5. 服务器收到FIN报文后,进入CLOSE_WAIT状态,并发送ACK报文确认关闭请求。 6. 服务器关闭相应连接资源,发送FIN报文...

    linux下动态网站维护基本命令小结

    TCP连接数,TIME_WAIT 等 (2).服务运行情况 用户能否访问 代码如下: tail -f 查看apache访问日志与错误日志 查看系统日志/var/log/messages 查看服务器与Mysql数据库的连接情况 3.故障处理 (1).PHP类动态网站 服务...

Global site tag (gtag.js) - Google Analytics