Tomcat似乎无法解除分配线程

时间:2018-01-25 07:52:06

标签: java tomcat java-8

在我的tomcat上

我在连接器上设置了maxThreads = 300。 在请求高峰期间,我可以看到分配了大约180个线程来处理请求,这很好。但是,2小时后,即使请求丢失,180个线程仍在VM内部。

有没有办法控制tomcat / JVM清理未使用的线程的时间?

修改 这是我的连接器配置(我在此期间将maxThreads更新为300):

<Connector port="8080" protocol="HTTP/1.1" maxThreads="300"
           connectionTimeout="20000"
           redirectPort="8443" />

2 个答案:

答案 0 :(得分:3)

除了maxThreads之外,Connector元素没有太多与请求线程相关的配置,但如果您配置了Executor,则可以设置maxIdleTime明确地验证线程是否真的不能被关闭。

答案 1 :(得分:-1)

您可以在连接器check it out

上设置连接池超时
  

我们通常建议大约10分钟的值,所以设置   connection_pool_timeout到600(秒)。如果您使用此属性,   还请设置属性keepAliveTimeout(如果已设置)   显式)或您的AJP Connector元素中的connectionTimeout   Tomcat server.xml配置文件为类似值。警告:   keepAliveTimeout和connectionTimeout必须以毫秒为单位给出。   因此,如果将JK connection_pool_timeout设置为600,则应设置Tomcat   keepAliveTimeout或connectionTimeout为600000。