Herramientas y datos de diagnóstico
La máquina virtual (VM) J9 genera diversos tipos de información de diagnóstico para el análisis. Se puede utilizar una gama de herramientas para posteriormente la información y para ayudar para la determinación de problemas.
Parte de la información de diagnóstico está dirigida a áreas específicas del entorno de ejecución de Java™ . Por ejemplo, un volcado de almacenamiento dinámico proporciona información útil sobre las instancias de clase y de objetos en el almacenamiento dinámico Java, mientras que el rastreo J9 está dirigido hacia problemas de VM más generales.
- La máquina virtual Java (VM)
- Código nativo
- Aplicaciones Java
- Un sistema operativo o un recurso del sistema
- Un subsistema, como el código de la base de datos
- Hardware del sistema
Puede que necesite diferentes herramientas y diferente información de diagnóstico para resolver los problemas de cada área. Las herramientas descritas aquí son las que se crean en la VM J9 o las que están disponibles para utilizarse con la VM J9. La mayoría de estas herramientas son entre plataformas. Muchas otras herramientas son suministradas por proveedores de software del sistema o de hardware, como los depuradores del sistema.
Resumen de información de diagnóstico
Una VM J9 en ejecución incluye mecanismos para producir diferentes tipos de datos de diagnóstico al producirse sucesos diferentes. En general, la producción de estos datos se produce en condiciones predeterminadas, pero se puede controlar iniciando la VM con opciones específicas (por ejemplo, -Xdump). Las versiones anteriores de la VM controlaban la producción de información de diagnóstico a través del uso de variables de entorno. Puede seguir utilizando estas variables de entorno pero no son el mecanismo preferido.
El formato de la información de diagnóstico producida es específico de la VM J9 y podría cambiar entre releases.
- Archivo de volcado Java
- El archivo de volcado Java a veces se conoce como Javacore, o volcado de hebras en algunas máquinas virtuales. Este archivo de volcado está en un formato legible producido de forma predeterminada cuando la VM termina inesperadamente debido a una señal del sistema operativo, una excepción OutOfMemoryError o cuando el usuario especifica una combinación de claves reservada. Por ejemplo, Ctrl-Break en Windows genera un archivo de volcado Java. También puede generar un archivo de volcado Java llamando a un método desde la API de volcado, por ejemplo com.ibm.jvm.Dump.JavaDump(), desde dentro de la aplicación. Un archivo de volcado Java resume el estado de la máquina virtual en el instante en que se ha producido la señal. Gran parte del contenido del archivo de volcado Java es específico de la máquina virtual J9 . Consulte Volcado de Java para obtener más detalles.
- Archivo de volcado de almacenamiento dinámico
- La VM puede generar un archivo de volcado de almacenamiento dinámico a petición del usuario, llamando a com.ibm.jvm.Dump.HeapDump() desde dentro de la aplicación o, de forma predeterminada, cuando la VM termina debido a una excepción OutOfMemoryError. Puede especificar un control más preciso de la temporización de la creación de un archivo de volcado de almacenamiento dinámico con la opción -Xdump:heap. Por ejemplo, puede solicitar un archivo de volcado de almacenamiento dinámico después de que se haya producido un determinado número de recopilaciones de basura completas. El formato de Heapdump predeterminado (archivos phd) no es legible y debe ser procesado utilizando herramientas disponibles como Memory Analyzer. Consulte Utilización de Heapdump para obtener más detalles.
- Archivo de volcado del sistema
- Los archivos de volcado del sistema son archivos específicos de la plataforma que contienen información sobre los procesos activos, las hebras y la memoria del sistema. Estos archivos también se conocen como volcados de núcleo en plataformas Linux® . Los archivos de volcado del sistema suelen ser grandes. De forma predeterminada, los archivos de volcado del sistema los produce la VM solo cuando la VM falla de manera inesperada debido a un error de protección general (GPF) o un error principal de la VM o del sistema. También puede solicitar un archivo de volcado del sistema utilizando la API de volcado. Por ejemplo, puede llamar al método com.ibm.jvm.Dump.SystemDump() desde la aplicación. Puede utilizar la opción -Xdump:system para generar archivos de volcado del sistema cuando se producen otros sucesos.
- Archivo de volcado JIT
- Cuando se produce un suceso anormal o de error de protección general (GPF), el compilador Just-In-Time (JIT) genera un pequeño archivo de volcado binario de datos de diagnóstico que pueden ayudar a resolver problemas. Para obtener más información sobre la ubicación de este archivo, consulte Ubicación de archivo.
- Datos de recopilación de basura
- Una VM iniciada con la opción -verbose:gc genera salida en formato XML que se puede utilizar para analizar problemas en el propio recopilador de basura o problemas en el diseño de aplicaciones de usuario. Otras opciones diversas afectan a la naturaleza y la cantidad de la información de diagnóstico del recopilador de basura producida. Para obtener más información, consulte Datos de diagnóstico del recopilador de basura.
- Rastrear datos
- El rastreo de J9 permite que se registren los puntos de ejecución en el código Java y el código interno de la máquina virtual. La opción -Xtrace permite controlar el número y las áreas de los puntos de rastreo, así como el tamaño y la naturaleza de los almacenamientos intermedios de rastreo mantenidos. Los almacenamientos intermedios de rastreo del momento de error también están disponibles en un archivo de volcado del sistema y hay herramientas disponibles para extraerlos del archivo. Normalmente, los datos de rastreo se escriben en un archivo en un formato codificado y, a continuación, un formateador de rastreo convierte los datos a un formato legible. Sin embargo, si se van a producir cantidades pequeñas de rastreo y el rendimiento no es un problema, el rastreo se puede direccionar a STDERR y se formateará previamente. Para obtener más información, consulte Rastreo de aplicaciones Java.
- Otros datos
- Hay disponibles opciones especiales para producir información de diagnóstico relacionada con los siguientes componentes de J9:
- El JIT (consulte Diagnóstico de un problema JIT o AOT)
- Carga de clases (consulte Diagnóstico de problemas de carga de clases)
- Clases compartidas (consulte Diagnosing problems with class data sharing en la documentación de usuario de OpenJ9 )
Resumen de las herramientas entre plataformas
- Herramientas de IBM® Monitoring and Diagnostic
- IBM Monitoring and Diagnostic Tools son un conjunto de herramientas basadas en la GUI para supervisar aplicaciones y analizar datos de diagnóstico. Estas herramientas están diseñadas para hacer que las tareas de diagnóstico sean lo más rápidas y fáciles posible. Para obtener más información sobre las herramientas, consulte la documentación de IBM Monitoring and Diagnostic tools .
- Visor de volcados entre plataformas
- El visor de volcados entre sistemas, jdmpview, utiliza los archivos de volcados que el sistema operativo genera para resolver los datos que son relevantes en la máquina virtual J9. El visor de volcados conoce la VM y puede utilizarse para analizar sus funciones internas. Es una herramienta muy útil para depurar terminaciones inesperadas de la VM. Dado que el visor de volcado es para multi plataformas, se puede analizar un volcado desde cualquier sistema, sin tener conocimientos del depurador del sistema. Para obtener más información, consulte Visor de volcado.
- Herramientas JVMTI
- JVMTI (JVM Tool Interface) es una interfaz de programación para que la utilicen las herramientas, sustituyendo JVMPI (Java Virtual Machine Profiler Interface) y JVMDI (Java Virtual Machine Debug Interface). Para obtener información sobre JVMTI, consulte Java Virtual Machine Tool Interface.
- Herramientas JPDA
- JPDA (Java Platform Debugging Architecture) es un estándar común para depurar una máquina virtual Java. J9 es totalmente compatible con JPDA. Cualquier depurador JPDA puede estar conectado a la VM J9. Como se trata de depuradores, las herramientas JPDA son ideales para rastrear problemas de aplicación que presenten condiciones que se puedan repetir, como fugas de memoria en aplicaciones, o bloqueos. Un ejemplo de una herramienta JPDA es el depurador que se empaqueta con Eclipse para Java.
- DTFJ
- La infraestructura de herramientas de diagnóstico para Java (DTFJ) es una interfaz de programación de aplicaciones (API) Java que se utiliza para dar soporte a la creación de herramientas de diagnóstico Java. DTFJ puede examinar un archivo de volcado del sistema para analizar la estructura interna de la máquina virtual Java. DTFJ se implementa en código Java puro, y las herramientas escritas utilizando DTFJ pueden ser multiplataforma. Por lo tanto, es posible analizar un archivo de volcado tomado de una máquina en otra máquina remota y más apropiada. Por ejemplo, un archivo de volcado producido en una máquina z/OS® se puede analizar en un Thinkpad de Windows. Para obtener más información, consulte Utilización de la infraestructura de herramientas de diagnóstico para Java.
- Formato de rastreo
- El rastreo es una herramienta de diagnóstico clave. La VM J9 incorpora un alto grado de flexibilidad para determinar qué se rastrea y cuándo se rastrea. Esta flexibilidad permite personalizar el rastreo para que tenga un efecto relativamente pequeño en el rendimiento. La máquina virtual J9 también contiene muchos puntos de rastreo incorporados. En este release, el rastreo máximo está habilitado de forma predeterminada para unos pocos puntos de rastreo de nivel 1 y puntos de rastreo de excepción. Las opciones de la línea de mandatos permiten establecer exactamente lo que se va a rastrear y especificar adónde va a ir la salida de rastreo. Generalmente, la salida de rastreo está en un formato codificado y requiere un formateador de rastreo para visualizarse correctamente.