jvisualvm (Java VisualVM)

Fuente del artículo: https://blog.csdn.net/a19881029/article/details/8432368

¿Qué puede hacer jvisualvm?

Monitoree fugas de memoria, rastree la recolección de basura, ejecute memoria, análisis de CPU, análisis de subprocesos ...

 

jvisualvmg se ha integrado en la versión anterior jdk1.6 (no jre). Se requiere la versión mínima de jdk1.6 para su propio funcionamiento, pero los programas java que se ejecutan en jdk1.4 o superior pueden ser monitoreados

Tome jdk1.6update45 (jvisualvm que viene con jdk1.6update45) como explicación. Por supuesto, también puede descargar un jvisualvm por separado. Después de que el jdk se haya instalado normalmente, vaya al directorio bin de jdk y ejecute jvisualvm.exe.

Algunas personas en Internet dicen que jvisualvm no es compatible con el formato de disco duro ntfs (todos dijeron que no es bueno y no dijeron qué es malo), de todos modos, es bastante normal que lo use, pase lo que pase, por favor escriba la solución primero.

Cree un acceso directo a jvisualvm.exe, haga clic con el botón derecho en el acceso directo, seleccione propiedades y agregue "-XX: + PerfBypassFileSystemCheck" en la columna "Destino"

Una vez que el programa se ejecuta, supervisará automáticamente el programa java que se ejecuta en la máquina (en la pestaña Local, el programa java en el servidor remoto debe configurarse por separado). Si es un jvisualvm descargado, después de la descompresión, ejecute jvisualvm.exe en el directorio bin.

 

El primer VisualVM en la pestaña Local es el monitoreo de jvisualvm de sí mismo, puede ver que los recursos consumidos aún son muy pocos, y el segundo es el eclipse nativo.

Los elementos de supervisión se dividen en Descripción general, Supervisión, Subprocesos y un Muestreador.

1.Descripción general (parámetros de inicio de jvm, parámetros del sistema)

Puedes ver los parámetros de inicio de eclipse

(A través de estos parámetros de inicio, puede determinar si el programa tiene un desbordamiento de memoria)

 

2.Monitor

Arriba a la izquierda: utilización de cpu, monitoreo de estado de gc

Arriba a la derecha: utilización del montón, utilización del área de memoria permanente

Abajo a la izquierda: seguimiento de clases

Abajo a la derecha: monitoreo de hilos

performGC: estado operativo detallado de gc

HeapDump: el estado detallado del montón (puede ver la descripción general del montón, todas las clases que contiene y hacer clic en una clase específica para ver el estado de esta clase)

 

3.Hilos

Puede mostrar el nombre y el estado de ejecución del hilo, que es esencial al depurar varios hilos, y puede hacer clic en un hilo para ver el estado de ejecución detallado de este hilo.

 

Monitorear tomcat en el servidor

El archivo de configuración de tomcat catalina.sh agrega:

JAVA_OPTS="-Dcom.sun.management.jmxremote.port=9998 
	-Dcom.sun.management.jmxremote.ssl=false 
	-Dcom.sun.management.jmxremote.authenticate=false 
	-Djava.rmi.server.hostname=192.168.58.164"

Descripción de parámetros:

指定了JMX启动的代理端口,这个端口就是visualvm要连接的端口(9998端口不能被别的程序使用netstat -an|gerp 9998)
Dcom.sun.management.jmxremote.port=9998
指定了JMX是否启用ssl
Dcom.sun.management.jmxremote.authenticate=false
指定了JMX是否启用鉴权(需要用户名,密码鉴权)
Dcom.sun.management.jmxremote.authenticate=false
指定了服务器主机名
Djava.rmi.server.hostname=192.168.58.164

Complete el nombre de host:

Haga clic derecho para crear una conexión jmx:

Simplemente ingrese el número de puerto:

La configuración está completa:

 

Monitorear el programa java en el servidor

En comparación con el monitoreo de tomcat, es mucho más problemático. Debe iniciar el servicio jstatd con anticipación (en el directorio $ {java_home} / bin)

jstatd es un programa de servidor RMI (Remote Method Invocation) que monitorea la ocupación de recursos de la JVM desde la creación hasta la destrucción y proporciona una interfaz de monitoreo remoto. Es un programa Daemon (proceso en segundo plano). Asegúrese de que el software de monitoreo remoto esté conectado a Localmente, jstatd siempre debe estar ejecutándose.

Para ejecutar jstatd, debe especificar la política de seguridad a través de -J-Djava.security.policy = ***, por lo que debemos crear un archivo jstatd.all.policy en el servidor que especifique la política de seguridad (lo puse en el directorio $ {java_home} / bin A continuación), el contenido del archivo es el siguiente:

grant codebase "file:/home/123/123/jdk1.5.0_15/lib/tools.jar" { 
	permission java.security.AllPermission; 
}; 

Luego use este archivo de política para iniciar el servicio jstatd

[123@123 bin]$ pwd
/home/123/123/jdk1.5.0_15/bin
[123@123 bin]$ ./jstatd -J-Djava.security.policy=./jstatd.all.policy &

Debido a que el servicio jstatd debe estar ejecutándose todo el tiempo durante el proceso de monitoreo, se agrega &. Si necesita registros, también puede usar:

./jstatd -J-Djava.security.policy=./jstatd.all.policy -J-Djava.rmi.server.logCalls=true

A continuación, puede configurar y monitorear el programa java que se ejecuta en el servidor en jvisualvm, que es lo mismo que configurar y monitorear el servidor tomcat en jvisualvm.

Es importante tener en cuenta que a veces jvisualvm informará un error al configurar el programa java de monitoreo remoto

Haga clic para ver los detalles del error:

 conexión rechazada al host: 127.0.0.1 juicio preliminar está relacionado con el nombre del host

[123@123 bin]# hostname -i
127.0.0.1
[123@123 bin]# hostname 192.168.58.168

Después de modificar el servicio jstatd, reinicie el servicio jstatd (muchas personas en Internet dicen que el archivo / etc / hosts del host debe modificarse, pero he probado que modificar el archivo / etc / hosts por mí mismo no es efectivo y el nombre del host debe modificarse)

Complete el nombre de host:

 

Aquí para elegir agregar una conexión jstatd:

 

Simplemente seleccione la configuración predeterminada (el puerto 1099 se usa de manera predeterminada):

Después de hacer clic en Aceptar, todos los programas Java en 168 se enumerarán automáticamente:

 

PD:

Los complementos también se pueden instalar en jvisualvm. Los pasos específicos son herramienta -> complemento -> complemento disponible. Recomiendo un complemento muy útil VisualGC

Después de instalar este complemento, se agregará un nuevo elemento de monitoreo Visual GC y podrá ver el uso de cada área de la memoria de la máquina virtual

    Supongo que te gusta

    Origin blog.csdn.net/aiwaston/article/details/104936473
    Recomendado
    Clasificación