解决tomcat死掉JK无法连接故障

简介:
+关注继续查看
 近日,发现网站jsp部分无法访问,或者访问速度极其缓慢。经过近二天的时间,问题得到了解决,现在把这解决步骤及思考方法详细的记录下来。其中也走了不少弯路。其结果也是让人无法琢磨!

网站简单架构:
squid-apache--php
      apache+tomcat(jk)--jsp


   发现问题时处理思路:
   1、检查服务器是否正常连接。掉网、死机啥的。--->SSH登录正常
   2、检查负载情况,load是否超高,vmstat 检查资源占用率 --->只有mysql占少量资源,起初以为是mysql导致(检查mysql 状态后发现并没有锁表及DDL语句堆积,执行sql语句速度也很快。因此判

断出不是mysql导致)
   3、查看tcp连接状态。是不是并发太大被拖死了--->其中ESTABLISHED大约有1000左右。TIME_WAIT CLOSE_WAIT 在40左右。看样子tomcat是被拖死了。并发这么大?
   4、重启了tomcat 访问正常了。先观察一段时间。
   5、查看分析日志,希望能从这里面找出一点蛛丝马迹来。
tomcat日志如下:
 error:All threads (150) are currently busy, waiting. Increase maxThreads (150) or check the servlet status 
提示我最大的线程数设置小了。那就按日志提示先加大点吧。

从网上找到如下一段:[url]http://tech.163.com/05/0711/10/1OCH7J2000091589_3.html[/url]
web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。

那我先加到999再说。
修改server.xml 
<Connector port="80"
               maxThreads="999" minSpareThreads="25" maxSpareThreads="999"
               enableLookups="false" redirectPort="8443" acceptCount="999"
               debug="0" connectionTimeout="20000"
               disableUploadTimeout="true" />
改后重启tomcat   

漫长的等待! F5  刷新,结果还是让我很失望。tomcat还是不行。
   登录服务器查看,情况与半小时前一样。
   先重启了,保证页面能访问再说,上google也没有找到解决方案,继续查看日志,tomcat 就是些死掉的日志,没有其它的用处,这时查看到jk2的日志。发现了N多的问题。我想问题应该出在这。JK2

无法连接到tomcat了。然后显示tomcat已经over了
日志如下:
[error] ajp_connection_tcp_get_message::jk_ajp_common.c (951): (ajp13) can't receive the response message from tomcat, network problems or tomcat (127.0.0.1:8009) is down 

(errno=104)
[error] ajp_get_reply::jk_ajp_common.c (1592): (ajp13) Tomcat is down or refused connection. No response has been sent to the client (yet)
Connecting to tomcat failed. Tomcat is probably not started or is listening on the wrong port
带着问题G了一下,有一些优化配置方案:
官网的如下:
worker.worker2.lbfactor=50
worker.worker2.cachesize=10
worker.worker2.cache_timeout=600
worker.worker2.socket_keepalive=1
worker.worker2.socket_timeout=300 
别的文章可以不信,官网总得信呀。因此马上修改了
worker.properties 配置文件。
再一次重启tomcat
结果过了一段时间,问题又来了。tomcat还是down。如此再次修改worker.properties 配置文件,还是没有任何效果。
难道问题不是出在JK2? 

此后就一直被此问题困扰。后来经理给了些信息。

#worker.ajp13.lbfactor=1
lbfactor  property is used when working with a load balancer worker, this is the load-balancing factor for the worker. We'll see more on this in the lb worker section. 

#worker.loadbalancer.type=lb
#worker.loadbalancer.balance_workers=ajp13

# The loadbalancer (type lb) workers perform wighted round-robin
# load balancing with sticky sessions.
# Note:
#  ----> If a worker dies, the load balancer will check its state
#        once in a while. Until then all work is redirected to peer
#        workers.

也就是说先去掉tomcat集群配置选项,多余的选项一个都不要。免得造成轮循。
此后问题没有像之前那样频繁发生。相对稳定了许多。

目前tomcat已经稳定下来了。可量还是没有下来。因此还是需要做tomcat集群,以解决高端并发的问题。



本文转自守住每一天51CTO博客,原文链接:http://blog.51cto.com/liuyu/112271,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
Java 应用服务中间件 开发工具
Tomcat安装及配置教程
Tomcat安装及配置教程
Tomcat安装及配置教程
|
17天前
|
存储 Java 应用服务中间件
IDEA配置tomcat,快速部署tomcat
IDEA配置tomcat,快速部署tomcat
20 0
|
17天前
|
Oracle Java 关系型数据库
Jsp/Servlet中tomcat基础配置
Jsp/Servlet中tomcat基础配置
21 0
|
Apache Java 应用服务中间件
|
负载均衡 Java 应用服务中间件
|
Apache 应用服务中间件
struts2 表单 get 乱码问题/apache+tomcat+jk 乱码问题
转自:http://hi.baidu.com/coldair444/item/c569394c5824c3e7bdf45196 个人意见:该方法可行,但不推荐使用。   struts2表单为mode = get 结果action 接受的时候 居然是乱码。
654 0
相关产品
云迁移中心
推荐文章
更多