请教Tomcat群集问题

10-12-27 ksjunhao
前置apache,后端两台Tomcat,apache采用反向代理方式进行Load balance作业:

当单台Tomcat并发线程数达到20就开始呈现压力,具体表现在打开应用表单变慢,如果到30就很慢,依此上去,到40、50、60、70请求的响应时间越变越慢,但是系统会自动恢复(线程数会回到20以下),当然如果不巧的话系统就无法恢复,直到重启Tomcat

应用程序面一直在改善中。

我们也有测试单台Tomcat,不采用群集方式,应用还是同一个应用,当处理80并发时,系统并无大影响,所以觉得问题应该在群集的参数设定上。

并发线程数量我们查看的是Tomcat status页面上的线程。

以下是我apache的设定:

ProxyRequests Off

ProxyPass / balancer://tomcatcluster/ lbmethod=byrequests stickysession=JSESSIONID nofailover=Off timeout=5 maxattempts=30

ProxyPassReverse / balancer://tomcatcluster/

<Proxy balancer://tomcatcluster>

BalancerMember ajp://10.20.2.91:8109 smax=5 route=jvm1 retry=1 max=1024 flushwait=5

BalancerMember ajp://10.20.2.92:8109 smax=5 route=jvm2 retry=1 max=1024 flushwait=5

</Proxy>

先谢谢,困扰已久

[该贴被ksjunhao于2010-12-27 13:57修改过]

    

1
ksjunhao
2011-01-04 11:26
没人应啊,不知道是不是我没有说清楚。

我们愿意花钱合作解决此问题(我们也希望获得一些进阶的JavaEE培训),有意向的可以ksjunhao AT qq.com 可以作进一步沟通。

我目前为解此问题,只有通过增加节点了,从现象来看,似乎单台时没有问题,加上了群集才出现问题。群集后请求会被阻塞,阻塞请求会影响其它请求,tomcat也采用了NIO方式

banq
2011-01-04 12:07
关键是你的应用不要有httpSession,属于无状态架构,集群效果才好,否则使用memcached之类。

ksjunhao
2011-01-05 11:03
2011年01月04日 12:07 "banq"的内容
关键是你的应用不要有httpSession,属于无状态架构,集群效果才好,否则使用memcached之类 ...

谢谢banq的回应

我们session数据非常少,只有保存用户信息而已。

况且我们的群集只不过是Load balancer而已,没有session复制,不采用Load balancer的单台机器能处理更多的并发数,但是一旦用到了Load balancer后似乎单台Tomcat的并发请求处理能力急速下降

banq
2011-01-05 11:06
那就是LB的算法问题,一般shiRobbin轮询,你优化一下,再不行就买LB HUB,贵是有贵的道理。

LB算法上,无论什么算法,如果业务采取读写分离架构,要比任何算法优化得多。

猜你喜欢
2Go 1 2 下一页