Comandos de JVM de uso común

Tabla de contenido

1 comando jinfo

1.1 jps, jps -l, jps -v, jps -m: ver el PID del proceso JVM actual

1.2 jinfo -flags PID. ps -ef | grep java | tr '' '\ n' | grep '\ - X' --color: Ver todos los parámetros de JVM del proceso actual de JVM

1.3 jinfo -flag : Ver la configuración de un parámetro específico de JVM

2 comando jstat

2.1 jstat -gc PID 1000: monitorea el estado del montón de Java, incluida la capacidad de las dos áreas de Supervivientes en el área de Eden 

2.2 jstat -gcutil PID 1000: El contenido de salida -gc es similar, centrándose en el porcentaje de espacio usado en el espacio total

2.3 jstat -class: monitorea la cantidad de carga de clases, descarga, espacio total y tiempo dedicado a la carga de clases

2.4 jstat -gcnew: monitorea el estado del GC de nueva generación

2.5 jstat -gcold: monitorea el estado de GC en la vejez

2.6 jstat –compiler: muestra los métodos y la información que consume mucho tiempo compilada por el compilador JIT

3 jhat 与 jmap

Paso 3.1: Ejecute el programa java

Paso 3.2: Ver el PID del programa java: jps -l

Paso 3.3: Genere el archivo de volcado: jump -dump: format = b, file = heapDump.hprof 19483

Paso 3.4 analizar el archivo de volcado de pila de Java e iniciar un servidor web: jhat heapDump.hprof

Paso 3.5 Analizar el archivo de volcado de pila de Java


 

(1) Lista oficial de parámetros de JVM : https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html#BGBCIEFC

(2) JDK incorporado en varios comandos de herramientas : oficial : https://docs.oracle.com/javase/8/docs/technotes/tools/unix/index.html

 

1 comando jinfo

Se utiliza para ver los parámetros ampliados de la aplicación Java en ejecución, incluidas las propiedades del sistema Java y los parámetros de la línea de mandatos JVM.

1.1 jps, jps -l, jps -v, jps -m: ver el PID del proceso JVM actual

-l: muestra el nombre completo del paquete, el nombre de la clase principal de la aplicación y el nombre completo de la ruta del jar. -v: parámetros de salida jvm. -m: Muestra los parámetros pasados ​​al método principal.

1.2 jinfo -flags PID. ps -ef | grep java | tr '' '\ n' | grep '\ - X' --color: Ver todos los parámetros de JVM del proceso actual de JVM

(1) jinfo -flags PID Nota: PID es el ID actual del proceso de Java, y el PID se puede ver a través del comando jps o el comando jcmd.

(2) jinfo -flags 7172 | tr "" "\ n" | grep "\ -XX" --color

(3) ps -ef | grep java | tr '' '\ n' | grep '\ -X' --color

   

1.3 jinfo -flag <option> <pid>: Ver la configuración de un parámetro específico de JVM

jinfo -flag <option> <pid> Nota: la opción es un parámetro específico de JVM.

 

2 comando jstat

jstat: JVM viene con una herramienta de línea de comandos, que se puede usar para contar la tasa de asignación de memoria, los tiempos de GC y el tiempo de GC. Formato común: jstat -gc <pid> <intervalo de estadísticas> <tiempos de estadísticas>

2.1 jstat -gc PID 1000: monitorea el estado del montón de Java, incluida la capacidad de las dos áreas de Supervivientes en el área de Eden 

Por ejemplo: jstat -gc 32683 1000 10 : Cuente el proceso JVM con pid = 32683, una vez cada 1000ms, y cuente 10 veces en total.

Por ejemplo: jstat -gc 32683 1000 : cuente el proceso de JVM con pid = 32683, una vez cada 1000ms, y siga contando.

2.2 jstat -gcutil PID 1000: El contenido de salida -gc es similar, centrándose en el porcentaje de espacio usado en el espacio total

2.3 jstat --class <PID>: monitorea la cantidad de carga de clases, descarga, espacio total y tiempo dedicado a la carga de clases

Cargado: el número de clases cargadas. Bytes: el número de bytes ocupados por la clase cargada. Descargado: el número de clases descargadas. Bytes: el número de bytes de la clase descargada. Tiempo: el tiempo dedicado a cargar y descargar la clase.

2.4 jstat -gcnew <PID>: monitorea el estado del GC de nueva generación

2.5 jstat -gcold <PID>: monitorea el estado del GC antiguo

2.6 jstat –compiler <PID>: muestra los métodos y la información que consume mucho tiempo compilada por el compilador JIT

 

3 jhat 与 jmap

jmap: JVM viene con una herramienta de línea de comandos, que se puede utilizar para comprender la distribución de objetos durante el tiempo de ejecución del sistema. Use jmap para generar un archivo de volcado del montón de Java. Después de generar el archivo de volcado, puede usar el comando jhat para convertir el archivo de volcado en formato html y luego acceder al montón a través de http. El comando jhat analiza el volcado de pila de Java e inicia un servidor web, y luego puede ver el archivo de volcado de pila en el navegador.

Paso 3.1: Ejecute el programa java

// -Xms40m -Xmx40m -XX:NewSize=20M -XX:MaxNewSize=20M -XX:SurvivorRatio=2 -XX:MaxTenuringThreshold=15
public class JHatTest {
    public static void main(String[] args) {
        while (true) {
            String string = new String("hollis");
            try {
                Thread.sleep(1000);
                System.out.println(string);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

Paso 3.2: Ver el PID del programa java: jps -l

~ jps -l
19507 sun.tools.jps.Jps
325
19482 org.jetbrains.jps.cmdline.Launcher
19483 com.wind.ssm.java8.test.JHatTest
13900 org.jetbrains.idea.maven.server.RemoteMavenServer

Paso 3.3: Genere el archivo de volcado: jump -dump: format = b, file = heapDump.hprof 19483

Nota: Este paso es para generar una instantánea de volcado de memoria de pila. El archivo binario de heapDump.hrpof se exportará al directorio actual, y luego el archivo heapDump.hrpof se puede analizar con la herramienta de análisis en línea MAT / GCeasy de eclipse.

~ jmap -dump:format=b,file=heapDump.hprof 19483
Dumping heap to /Users/cmm/heapDump.hprof ...
Heap dump file created

Paso 3.4 analizar el archivo de volcado de pila de Java e iniciar un servidor web: jhat heapDump.hprof

Use el comando jhat para iniciar un servicio http, el puerto es 7000 y luego visite http: // localhost: 7000 / 

~ jhat heapDump.hprof
Reading from heapDump.hprof...
Dump file created Wed Nov 18 20:05:55 CST 2020
Snapshot read, resolving...
Resolving 19812 objects...
Chasing references, expect 3 dots...
Eliminating duplicate references...
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.

La página del archivo de volcado de montón abierto es la siguiente:

Paso 3.5 Analizar el archivo de volcado de pila de Java

Generalmente, la visualización de la situación anormal del montón depende principalmente de estas dos partes:

(1) Mostrar recuentos de instancias para todas las clases (excluyendo la plataforma): toda la información del objeto fuera de la plataforma

(2) Mostrar histograma de pila: muestre la situación de pila en forma de diagrama de árbol.

 

 

 

 

 

 

jps
jstat -gcutil PID 1000
jinfo -flag UseTLAB PID
ps -ef|grep java|tr ' ' '\n'|grep '\-X' --color


// 远程机器
sudo -iu sankuai
tar -czf heap_trace.txt.tar.gz heap_trace.txt
sftp [email protected]
sftp> put heap_trace.txt.tar.gz
ls -al

//本地机器
sftp [email protected]
sftp> get heap_trace.txt.tar.gz
tar -xzf dump.hprof.tar.gz
less heap_trace.txt

 

 

 

 

 

 

 

 

 

Supongo que te gusta

Origin blog.csdn.net/cmm0401/article/details/109743561
Recomendado
Clasificación