Serie de máquinas virtuales: herramienta de visualización de supervisión del rendimiento - JConsole

jvm-10-jconsole

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:5555haga 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.

jvm-10-encuesta

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

jvm-10-memoria

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.

jvm-10-hilo

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

jvm-10-thread-deadlock

jvm-10-thread-deadlock1

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.

jvm-10-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.

jvm-10-vm

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.

direccion original


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.

Sitio web personal

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;

4. Serie de máquinas virtuales: creación de objetos, diseño de memoria y posicionamiento de acceso en JVM;

5. Serie de máquinas virtuales: recolector de basura en JVM;

6. Serie de máquinas virtuales: asignación de memoria en JVM;

7. Serie de máquinas virtuales: comprenda los registros y los parámetros de registro de las máquinas virtuales;

8. Serie de máquinas virtuales: herramientas básicas para la supervisión del rendimiento de máquinas virtuales;

9. Serie de máquinas virtuales: herramienta básica para el monitoreo del rendimiento de máquinas virtuales-jstat;

Supongo que te gusta

Origin juejin.im/post/7088492612885151752
Recomendado
Clasificación