En mi servidor Linux ejecuto Tomcat como root y cuando ps aux
lo ejecuto da el siguiente resultado.
root 25667 0.1 29.2 4574004 306980 ? Sl Apr27 33:57 /usr/local/java/bin/java -Djava.util.logging.config.file...
Solo hay un proceso principal, pero cuando lo ejecuto htop
puedo ver todos los demás procesos secundarios (¿cuáles son subprocesos?). Salida de muestra para algunas líneas que se muestran a continuación.
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
Entonces quiero obtener la lista de procesos secundarios con un solo comando. Configuré maxThreads en 200 en el archivo de configuración y quiero verificar el recuento de subprocesos actual contando los subprocesos secundarios.
Respuesta1
Bastante fácil de hacer:ps -eLf | grep java
Es posible que tenga que realizar ajustes (grep se puede perfeccionar para obtener lo que está buscando).
Respuesta2
Puedes lanzar:
ps -o nlwp PID
(PID será el pid de su proceso)
nlwp = número de procesos ligeros
Respuesta3
Si tiene un JDK instalado, una forma muy útil de monitorear esto (y los distintos tamaños de montón) en tiempo real es jconsole
, que es un programa GUI (si lo tiene javac
, también debería tenerlo). También hay cosas como jstat
y jinfo
y otras. Para beneficiarse de jconsole, es posible que necesite habilitar JMX (esto también se puede hacer para conexiones remotas). Deberá ejecutar estas herramientas como el mismo usuario que ejecuta la JVM que desea inspeccionar.
Si está utilizando top
o htop
, puede escribir H
(mayúscula) para alternar la visualización de los hilos. Vale la pena observar las distintas pulsaciones de teclas principales.