Los dos artículos anteriores hablan sobre la herramienta de monitoreo de comandos que viene con jdk Este artículo habla sobre la herramienta de visualización JConsole, que es una herramienta de monitoreo de rendimiento gráfico que viene con jdk. A través de la herramienta JConsole, puede ver el estado de ejecución de la aplicación Java y puede monitorear la información del montón, la carga de clases, la información del subproceso, etc. De hecho, es para visualizar la herramienta de comando mencionada en el artículo anterior.
Abra y conecte el programa Java
El programa JConsole está en el directorio de %JAVA_HOME%/bin Haga doble clic para iniciar el cliente, como se muestra a continuación
Hay dos métodos de conexión, a saber, la conexión del proceso local y la conexión del proceso remoto
Proceso local : los programas Java que se ejecutan en la máquina se enumeran debajo del proceso local. Haga doble clic para ingresar a la página de monitoreo de este proceso.
Proceso remoto : puede conectarse a un proceso Java remoto por dirección y puerto, pero debe especificar algunos parámetros cuando se inicia el proceso remoto, como se indica a continuación
-Djava.rmi.server.hostname=127.0.0.1 //远程服务器的IP(本地可访问)
-Dcom.sun.management.imxremote
-Dcom.sun.management.jmxremote.port=5555 // 远程服务器的端口(随便定一个,用于JMX管理该进程)
-Dcom.sun.management.jmxremote.authenticate=false // 是否验证(true的话需要配置密码,自行百度吧)
-Dcom.sun.management.jmxremote.ssl=false //ssl控制
复制代码
Inicie la aplicación Java con los parámetros anteriores y luego complete la conexión remota y 127.0.0.1:5555
haga clic en conectar.
Visión de conjunto
Después de hacer clic en conectar, accederá directamente a la interfaz de descripción general. Como se muestra en la figura a continuación, hay 4 gráficos de líneas en tiempo real, que representan el cambio en el uso de la memoria del montón, el cambio en la cantidad de subprocesos activos, la cantidad de clases cargadas y el porcentaje de uso de la CPU.
monitoreo de memoria
Seleccione la pestaña de memoria, puede ver que toda la página es información de memoria de pila, y la columna del gráfico también se puede cambiar, incluida la memoria que no es de pila, el área Eden, el área Survivor, la vejez, el metaespacio y otros usos de memoria. Haga clic en Ejecutar GC en la esquina superior derecha para forzar un FullGC
monitoreo de hilos
Lo principal es prestar atención a si hay subprocesos como interbloqueos, bloqueos en vivo y bucles infinitos.
Seleccione la pestaña de subprocesos, puede ver el gráfico de líneas del cambio en el número de subprocesos. Para cada subproceso en el programa que se muestra debajo del gráfico de líneas, haga clic en un subproceso específico para ver la información específica de este subproceso a la derecha.
Hay un botón para detectar interbloqueo en la parte inferior (implementación de una función de interbloqueo), que puede filtrar automáticamente los subprocesos con interbloqueo. El siguiente es el código de implementación de interbloqueo
La información de que los dos subprocesos detectados en la siguiente figura están interbloqueados
El uso de esta función puede ver fácilmente la información del hilo de la aplicación y puede localizar rápidamente el problema de interbloqueo
Equivalente a la herramienta de comando jstack mencionada en el artículo anterior
carga de clase
La siguiente figura muestra el número de clases que ha cargado el sistema, así como el número de clases que ha descargado, no preste demasiada atención a esta información de clase.
Información de la máquina virtual
La principal preocupación es la información relacionada con la memoria del montón en la siguiente figura
La pestaña de la descripción general de la VM muestra el entorno de ejecución de la aplicación actual, incluido el tipo de máquina virtual, la versión, la información del montón, la información del servidor, los parámetros de la VM, el recolector de elementos no utilizados y otra información, como se muestra en la siguiente figura.
Resumir
El efecto de usar JConsole es el mismo que el de la herramienta de comando mencionada en el artículo anterior, pero esta es una visualización directa, que es más conveniente de ver, pero es necesario agregar parámetros fijos cuando se inicia el servicio para usar JMX. para monitorear el proceso del servicio.
Soy el Sr. Ji. Utilizo la salida para forzar la entrada para continuar aprendiendo. Sigo compartiendo series técnicas de artículos, y toda la red vale la pena recopilar buenos artículos. Bienvenido a prestar atención a la cuenta pública y ser un técnico. persona que sigue creciendo.
Serie de máquinas virtuales JVM de artículos históricos
1. Serie de máquinas virtuales: cómo generar memoria en montón cuando se está ejecutando JVM;
2. Serie de máquinas virtuales: algoritmo de recolección de basura en jvm;
3. Serie de máquinas virtuales: área de datos de tiempo de ejecución jvm;
5. Serie de máquinas virtuales: recolector de basura en JVM;
6. Serie de máquinas virtuales: asignación de memoria en JVM;