Como encontrar a contagem atual de threads do Tomcat

Como encontrar a contagem atual de threads do Tomcat

No meu servidor Linux eu executo o Tomcat como root e quando executo ps auxele dá a seguinte saída.

root     25667  0.1 29.2 4574004 306980 ?      Sl   Apr27  33:57 /usr/local/java/bin/java -Djava.util.logging.config.file...

Há apenas o processo pai, mas quando executo htopposso ver todos os outros processos filhos (que são threads?). Exemplo de saída para algumas linhas fornecidas abaixo.

  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command                                                              
25668 root       15   0 4466M  299M 14208 S  0.0 29.3  0:01.23 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25669 root       18   0 4466M  299M 14208 S  0.0 29.3  0:54.84 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25670 root       15   0 4466M  299M 14208 S  0.0 29.3  0:00.25 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25671 root       15   0 4466M  299M 14208 S  0.0 29.3  0:00.54 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25672 root       18   0 4466M  299M 14208 S  0.0 29.3  0:00.00 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25673 root       15   0 4466M  299M 14208 S  0.0 29.3  0:17.96 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25674 root       15   0 4466M  299M 14208 S  0.0 29.3  0:20.01 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25675 root       19   0 4466M  299M 14208 S  0.0 29.3  0:00.00 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t

Então, quero obter a lista de processos filhos com um único comando. Defino maxThreads como 200 no arquivo de configuração e quero verificar a contagem de threads atual contando os threads filhos.

Responder1

Fácil de fazer:ps -eLf | grep java

Pode ser necessário ajustar (o grep pode ser refinado para obter o que você procura).

Responder2

Você pode lançar:

ps -o nlwp PID

(PID será o pid do seu processo)

nlwp = número de processos leves

Responder3

Se você tiver um JDK instalado, uma maneira muito útil de monitorar isso (e os vários tamanhos de heaps) em tempo real é o jconsoleJDK, que é um programa GUI (se você tiver javac, também deverá ter este). Existem também coisas como jstate jinfoe outras. Para se beneficiar do jconsole, pode ser necessário habilitar o JMX (isso também pode ser feito para conexões remotas). Você precisará executar essas ferramentas como o mesmo usuário que está executando a JVM que deseja inspecionar.

Se estiver usando topou htop, você pode digitar H(maiúsculo) para alternar a exibição dos tópicos. Vale a pena dar uma olhada nas várias teclas principais.

informação relacionada