Apache2.2+jk1.35+tomcat6大并发占用大量tcp close_wait端口
许久没来,不知道csdn有没有高手进入。。
问题:
apache2.2,内负载,前端F5负载到两台服务器21,22,分别做apache内负载-单台机单个apache托三个tomcat,在大并发情况下,发现大量tcp close_wait假死等待关闭,而且一直维持在此状态。导致请求堆积,出现超时错误。。
netstat发现close_wait端口为在apache与tomcat之间的连接状态。。如下:
tcp 1 0 192.168.83.22:32454 192.168.83.22:8408 CLOSE_WAIT
tcp 1 0 192.168.83.22:32506 192.168.83.22:8408 CLOSE_WAIT
tcp 1 0 192.168.83.22:32267 192.168.83.22:8408 CLOSE_WAIT
tcp 1 0 192.168.83.22:32297 192.168.83.22:8408 CLOSE_WAIT
等等。。
通过命令
[chaichunyi@localhost ~]$ netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'
TIME_WAIT 205
CLOSE_WAIT 1082
FIN_WAIT1 1
FIN_WAIT2 279
ESTABLISHED 811
LAST_ACK 1
可见大量close_wait端口被占用。。
workers配置如下:
worker.t22a.port=XXXX
worker.t22a.host=XXX
worker.t22a.type=ajp13
worker.t22a.lbfactor=1
worker.t22a.connection_pool_size=1500
worker.t22a.connection_pool_timeout=20
worker.t22a.socket_timeout=180
worker.t22a.socket_connect_timeout=180000
worker.t22a.socket_keepalive=1
tomcat ajp3协议配置:
<Connector port="8409" protocol="AJP/1.3"
maxThreads="2000" bufferSize="4096" enableLookups="false"
backlog="2000" connectionTimeout="20000" redirectPort="8443"
URIEncoding="UTF-8" />
apache关键配置:
Timeout 60
KeepAlive On
MaxKeepAliveRequests 400
KeepAliveTimeout 3
<IfModule mpm_prefork_module>
StartServers 50
MinSpareServers 50
MaxSpareServers 300
ServerLimit 6000
MaxClients 5000
MaxRequestsPerChild 15000
</IfModule>
解决方案尝试:
已优化了服务器内核参数还是无法解决,如下:
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_keepalive_time=1800
net.ipv4.tcp_keepalive_probes=4
net.ipv4.tcp_keepalive_intvl=15
请问谁有做过大并发的apache配置?提供点意见和建议。。谢谢!!
问题:
apache2.2,内负载,前端F5负载到两台服务器21,22,分别做apache内负载-单台机单个apache托三个tomcat,在大并发情况下,发现大量tcp close_wait假死等待关闭,而且一直维持在此状态。导致请求堆积,出现超时错误。。
netstat发现close_wait端口为在apache与tomcat之间的连接状态。。如下:
tcp 1 0 192.168.83.22:32454 192.168.83.22:8408 CLOSE_WAIT
tcp 1 0 192.168.83.22:32506 192.168.83.22:8408 CLOSE_WAIT
tcp 1 0 192.168.83.22:32267 192.168.83.22:8408 CLOSE_WAIT
tcp 1 0 192.168.83.22:32297 192.168.83.22:8408 CLOSE_WAIT
等等。。
通过命令
[chaichunyi@localhost ~]$ netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'
TIME_WAIT 205
CLOSE_WAIT 1082
FIN_WAIT1 1
FIN_WAIT2 279
ESTABLISHED 811
LAST_ACK 1
可见大量close_wait端口被占用。。
workers配置如下:
worker.t22a.port=XXXX
worker.t22a.host=XXX
worker.t22a.type=ajp13
worker.t22a.lbfactor=1
worker.t22a.connection_pool_size=1500
worker.t22a.connection_pool_timeout=20
worker.t22a.socket_timeout=180
worker.t22a.socket_connect_timeout=180000
worker.t22a.socket_keepalive=1
tomcat ajp3协议配置:
<Connector port="8409" protocol="AJP/1.3"
maxThreads="2000" bufferSize="4096" enableLookups="false"
backlog="2000" connectionTimeout="20000" redirectPort="8443"
URIEncoding="UTF-8" />
apache关键配置:
Timeout 60
KeepAlive On
MaxKeepAliveRequests 400
KeepAliveTimeout 3
<IfModule mpm_prefork_module>
StartServers 50
MinSpareServers 50
MaxSpareServers 300
ServerLimit 6000
MaxClients 5000
MaxRequestsPerChild 15000
</IfModule>
解决方案尝试:
已优化了服务器内核参数还是无法解决,如下:
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_keepalive_time=1800
net.ipv4.tcp_keepalive_probes=4
net.ipv4.tcp_keepalive_intvl=15
请问谁有做过大并发的apache配置?提供点意见和建议。。谢谢!!
...全文
相关推荐
Win2003中apache2整合tomcat5和IIS6的方法
配置apache与tomcat连接的详细步骤: - 下载mod_jk_1.2.6_2.0.50.dll文件,并将其重命名为mod_jk.so放入Apache的modules目录。
Win2003中apache2整合tomcat5和iis6文档
由于Apache已占用80端口,所以需要在IIS的“默认网站”属性中将TCP端口改为88或其他未使用的端口,然后启动IIS。
Apache+Tomcat集群
- 从官方网站下载对应版本的Mod_jk,例如`mod_jk-1.2.28-httpd-2.2.3.so`。#### 四、配置Tomcat1.
Apache+Tomcat服务器集群配置详细步骤
本文将详细介绍如何在一机双Tomcat环境下搭建Apache+Tomcat集群,并深入解析其中的关键配置和技术细节。#### 二、Apache+Tomcat集群的优势1.
tomcat+apache实现集群/负载均衡
【Tomcat+Apache实现集群】在Apache和Tomcat的环境中,可以通过Apache的模块mod_jk来实现负载均衡。


高性能WEB开发
