我们正在生产中部署基于Wicket的Java应用程序 服务器集群使用Apache(2.2.3)和mod_jk(1.2.30)作为负载平衡 组件w /粘性会话和Jboss 5作为应用程序容器 Java应用程序。
我们在生产环境中不一致地看到了一个问题 我们的AJP在Apache和Jboss之间排队,如JMX控制台填充中所示 请求到应用程序服务器不再占用的位置 对任何新请求。查看所有涉及的系统组件(总体而言) 流量,加载db,进程列表db,所有集群应用程序服务器的负载 没有任何东西指向容量问题,这可以解释为什么 呼叫在AJP队列中停滞不前。而是所有系统出现 充分闲置。
到目前为止,我们对此问题的唯一补救措施是重新启动appservers和 负载均衡器,偶尔会清除AJP队列。
我们正试图弄清楚为什么队列正在填补这一点 尽管系统不在a下,但没有呼叫返回给最终用户 高负荷。
还有其他人遇到类似的问题吗?
我们应该监控哪些其他系统指标可以解释 排队行为?
这可能是mod_jk问题吗?如果是这样,交换mod_jk是否可取 使用mod_cluster来解决问题?
非常感谢任何建议。如果我可以提供其他信息 为了排除故障,我非常愿意这样做。
/本
答案 0 :(得分:0)
它闻起来像死锁情况。
我会验证tomcat连接的数量:如果这些连接也最大,则几乎100%确定它与app或db相关。
发生这种情况时检查数据库中的锁定。这可能会给人一种线索。
如果你在后端使用有状态会话Bean,我会给他们一个好看的。