Fácil de fazer: ps -eLf | grep java
Pode ser necessário ajustar (o grep pode ser refinado para obter o que você está procurando).
No meu servidor Linux eu executo o tomcat como root e quando eu executo ps aux
, ele gera 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...
Thre é apenas o processo pai, mas quando eu executo htop
eu posso ver todos os outros processos filhos (que são threads?). Exemplo de saída para algumas linhas dadas 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
Portanto, quero obter uma lista de processos filho com um único comando. Eu configurei maxThreads para 200 no arquivo de configuração, e quero verificar a contagem atual de threads contando threads filhos.
Você pode iniciar:
ps -o nlwp PID
(o PID será o pid do seu processo)
nlwp = número de processos leves
Se você tiver um JDK instalado, uma maneira muito útil de monitorar isso (e os vários tamanhos de heaps) em tempo real é jconsole
, que é um programa GUI (se você tiver javac
, também deve isto). Há também coisas como jstat
e jinfo
e outras. Para se beneficiar do jconsole, talvez seja necessário ativar 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 você estiver usando top
ou htop
, poderá digitar H
(capital) para ativar ou desativar a exibição de segmentos. Vale a pena olhar para as várias teclas principais.
Tags tomcat