我们正在使用新的监视器来监视tomcat线程。 该图显示了线程数的增加,但即使应用程序闲置也不会减less。 我们注意到,当它增加CPU也增加了,并且当应用程序空闲时CPU减less了。 但是tomcat线程不会减less。 预计或如何使线程数?
要回答你的问题,这取决于你如何configurationTomcat。 它将使用线程池来处理您的请求,并且池可能会缩小。 请参阅Executor对象的minSpareThreads和maxIdleTime。
如果您没有使用Executor并且依赖于由连接器创build的默认池,那么您拥有较less的控制权。 您可以设置minSpareThreads,但不能设置maxIdleTime。 如果你不使用执行者,切换很容易。 只需在您的configuration中创build一个(即server.xml),并在您的连接器上设置executor属性。 默认的server.xml有一个例子 ,虽然它被注释掉了。
除此之外,值得一提的是JVM中的其他内容可以创build线程。 我不知道你在监视什么,如果它是JVM中的所有线程,或者只是Tomcat用来处理请求的线程,但是这些应用程序使用的应用程序和库可能导致这个问题。 如果你看到无限的线程增长,你应该采取一些线程转储,并确切地看到正在创build的线程。 它可能不是Tomcat创build这些线程。