Os threads do Tomcat estão aumentando, mas nunca diminuindo

1

Estamos usando uma nova relíquia para monitorar os segmentos do tomcat. O gráfico mostra o aumento da contagem de threads, mas nunca diminuiu até mesmo o aplicativo está ocioso. Percebemos que, quando aumentam, a CPU também aumenta e a CPU é reduzida quando a aplicação está ociosa. Mas os segmentos de tomcat não são reduzidos. É esperado ou como trazer a contagem de threads?

    
por Selvakumar P 11.12.2014 / 16:34

1 resposta

1

Para responder à sua pergunta, depende de como você configurou o Tomcat. Ele usará um pool de threads para processar suas solicitações e esse pool poderá diminuir. Veja o minSpareThreads e maxIdleTime do objeto Executor .

Se você não estiver usando um Executor e estiver confiando no pool padrão criado pelo conector, você terá menos controle. Você pode definir minSpareThreads, mas não maxIdleTime. Se você não estiver usando um executor, alternar é fácil. Basta criar um na sua configuração (por exemplo, server.xml) e definir o atributo do executor no seu conector. O servidor default.xml tem um exemplo , embora seja comentado.

Além disso, vale mencionar que outras coisas na JVM podem estar criando threads. Não sei especificamente o que você está monitorando, se são todos os threads na JVM ou apenas os que o Tomcat está usando para manipular solicitações, mas seus aplicativos e bibliotecas usados por esses aplicativos podem estar causando o problema. Se você está vendo um crescimento de thread ilimitado, você deve fazer alguns dump de thread e ver exatamente quais threads estão sendo criado. Pode não ser o Tomcat que está criando esses tópicos.

    
por 16.12.2014 / 19:10