Tomcat 6在达到其最大线程数后下降

时间:2011-03-08 22:27:13

标签: multithreading tomcat

我们的Tomcat 6.0.29在达到其最大线程数后会下降。我真的很感激任何帮助,因为它是一个生产服务器。

以下是catalina.log文件的一部分:

INFO: Maximum number of threads (600) created for connector with address null and port 80
Mar 8, 2011 11:19:37 AM org.apache.coyote.http11.Http11Protocol pause

INFO: Pausing Coyote HTTP/1.1 on http-80
Mar 8, 2011 11:19:38 AM org.apache.catalina.core.StandardService stop

INFO: Stopping service Catalina
Mar 8, 2011 11:19:38 AM org.apache.catalina.core.StandardWrapper unload

INFO: Waiting for 8 instance(s) to be deallocated

4 个答案:

答案 0 :(得分:4)

进行线程转储以查看所有线程的内容。每个线程的堆栈跟踪将表明您的问题多于catalina.out错误。

<强>窗

控制台窗口上的

ctrl + break

<强>的Unix

命令行上的

输入:kill -3 <pid>

可以在正在运行的生产实例上安全地使用它们。

答案 1 :(得分:1)

看起来您的Executor设置为500或600个主题。如果每个线程通常访问数据库连接,您是否将dbcp池设置为相同数量或更多?

您也可以查看dbcp pool configuration

答案 2 :(得分:0)

查看交换内存和其他资源。我有一种经验,每个线程的内存使用率太高(应用程序设计不好),导致服务器无响应。如果是这种情况(或只是为了测试)减少线程数量并查看它是否仍然发生。

答案 3 :(得分:0)

你可以给BTrace一个。

org.apache.catalina.startup.Catalina类,stopServer方法上附加探针。如果这没有帮助,请尝试找到任何其他关闭挂钩并将BTrace探查器附加到它们。

您应该能够获得指向请求关闭的任何人的完整堆栈跟踪。