Glassfish线程池问题

Lou*_*s Q 10 java glassfish threadpool

我们正在使用Glassfish 3.0.1,并且经历了很长的响应时间; 对于25%的POST/PUT请求,大约5分钟,当响应返回时,前置负载平衡器已经超时.

我的理论是请求排队并等待可用的线程.

我认为这是因为访问日志显示请求需要几秒钟才能完成,但请求执行的时间比我预期的晚了五分钟.

有没有人对调试线程池的内容有任何建议?或者他们的最佳设置是什么?

是否需要定期进行线程转储,或者一次性转储是否足够?

saa*_*arp 6

乍一看,这似乎与线程池本身没什么关系.在不了解网络设置的其余部分的情况下,我会检查以下内容:

  • 负载均衡器池中是否存在死/无响应节点?这可能导致针对此节点尝试所有请求,直到它们在被重定向到另一个节点之前由于超时而失败.
  • 负载均衡器和Glassfish服务器之间的初始连接是否存在问题?这可能是缓慢或不正确的DNS查找(尽管服务器应该缓存结果),缺少代理或其他一些与网络相关的问题.
  • 你检查过机器之间的时钟是否同步?这可能导致日志不同步.5分钟是一个非常奇怪的超时时间.

如果所有这些都是空的,您可能只是在负载均衡器和Web服务器之间存在阻抗不匹配,您可能需要添加Web服务器来处理负载.负载均衡器应该能够为您提供大量关于流量的统计信息以及它的堆叠方式.