Cómo incluir métodos con destino a IO en el muestreo de Java registradores de vuelo?

Alex R:

Estoy empezando JFR en el lanzamiento mediante la especificación de las siguientes opciones de la CLI para el programa Java bajo prueba:

-Xmx24g -XX:+UnlockCommercialFeatures -XX:+FlightRecorder 
-XX:FlightRecorderOptions=defaultrecording=true,dumponexit=true,settings=profile

La ejecución de la prueba tarda 90 segundos en completarse.

Después de abrir el vertedero JFR en el Control de Misión de Java, la pestaña de llamadas en árbol en el JMC se ve así:

introducir descripción de la imagen aquí

Hay menos de 1 muestra por segundo. Eso hace que el detalle de drill-down, Métodos y caliente general pestañas efectivamente inútil. Después de la investigación inicial se determinó el muestreo método se establece en el valor por defecto de 10 ms, y, como resulta, este resultado inesperado se debe a ~ 98% de los 90 segundos se pasó esperando en el conector I / O, mientras que la realización de diversas base de datos diferente lee , por lo que sólo estoy poniendo muestras de método para el otro ~ 2% de las veces.

¿Cómo puedo incluir muestras de E / S-atados en el método de tiempo, con el fin de ayudar a localizar el rastro que ha de pasar la mayor parte del tiempo a la espera de resultados de base de datos? El proceso contiene consultas de bases de datos en múltiples lugares, que a su vez son llamados a partir de múltiples otros lugares, así que adivinar en el trayecto de la llamada lenta no es fácil.

Kire Haglin:

La frecuencia de muestreo método de ejecución más bajo en JDK 8 es de 10 ms, que es lo que se obtiene con la configuración del perfil. Esto debería ser más que suficiente para una grabación de 90 segundos, suponiendo que hay carga en la aplicación. Hubo un error en JDK 11 que conducen a muy pocas muestras, pero se puede ver en la captura de pantalla que está ejecutando una versión anterior.

Si usted quiere saber lo que la aplicación está haciendo cuando se está a la espera, usted debe buscar en la pestaña de latencia (no caliente) o Métodos zócalo de lectura / escritura de socket pestañas. Hay eventos para el zócalo de lectura, escritura zócalo, Monitor Bloqueado, Monitor de Espera etc., pero puede no ser aplicable si está utilizando asíncrono de E / S.

EDITAR

introducir descripción de la imagen aquí

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=189218&siteId=1
Recomendado
Clasificación