Diagnóstico de bloqueos
Es posible utilizar muchos enfoques a la hora de determinar la causa de un bloqueo. El proceso normalmente implica aislar el problema comprobando la configuración del sistema y probando diversas opciones de diagnóstico.
Comprobación del entorno del sistema
Es posible que el sistema estuviera en un estado que ha provocado el bloqueo de la JVM. Por ejemplo, podría ser la falta de un recurso (como por ejemplo memoria o disco) o un problema de estabilidad. Compruebe el archivo de volcado Java, que contiene diversa información del sistema (tal como se describe en Utilización de volcados Java en la J9 Referencia de VM). El archivo de volcado Java le indica cómo encontrar información sobre recursos de memoria y disco. Los registros del sistema pueden ofrecer indicaciones sobre problemas del sistema.
Recopilación de información sobre procesos
Resulta útil averiguar exactamente qué estaba sucediendo que ha provocado que se produjera el bloqueo.
- Código JNI nativo.
- Código compilado JIT o AOT. Si tiene un problema con el código JIT o AOT, intente ejecutar sin el código JIT o AOT utilizando la opción -Xint.
- Código JVM.
- ltrace
- strace
Información sobre el entorno Java
Utilice el volcado Java para determinar qué estaba haciendo cada hebra y qué métodos Java™ se estaban ejecutando. Relacione las direcciones de función con las direcciones de biblioteca para determinar el origen del código que se ejecuta en diversos puntos.
- Había una escasez de espacio de almacenamiento dinámico de Java y si esto podría haber causado el bloqueo.
- El bloqueo se ha producido durante la recopilación de basura, lo que indica un posible error en la recopilación de basura. Consulte Datos de diagnóstico del recopilador de basura en la Referencia de máquina virtualJ9.
- El bloqueo se ha producido después de la recopilación de basura, lo que indica posibles daños en la memoria.
Para obtener más información sobre la gestión de memoria, consulte Gestión de memoria en la publicación J9 VM reference.