Estadísticas de tiempo de ejecución Java

Puede utilizar la variable de entorno HJV_JZOS_JVM_SMF_LOGGING JZOS para habilitar el registro cronológico de los recursos de gestión del sistema (SMF) que contienen estadísticas de tiempo de ejecución de Java™ .

De forma predeterminada, el registro de estadísticas de tiempo de ejecución Java está inhabilitado. Si esta variable de entorno se establece en true, el iniciador por lotes JZOS registra un gancho de conclusión de JVM para registrar un registro SMF que contiene estadísticas de rendimiento de tiempo de ejecución Java justo antes de que la JVM concluya.

También puede utilizar la variable de entorno HJV_JZOS_JVM_SMF_LOGGING_INTERVAL para habilitar el registro periódico de registros SMF. Otra variable de entorno, HJV_JZOS_JVM_SMF_THREADS, controla si los detalles de las hebras individuales se incluyen en estos registros SMF. Por último, la variable de entorno HJV_JZOS_JVM_SMF_THREADS_NATIVE_ID controla si se asigna la información de ID de hebra de sistema operativo nativo correcta en la sección de detalles de hebra individual. Para obtener más información sobre cómo configurar estas variables de entorno JZOS, consulte Variables de entorno JZOS.

El lanzador por lotes JZOS utiliza el tipo de registro SMF 121 para registrar estadísticas de rendimiento de tiempo de ejecución Java. Las correlaciones de registros se muestran en las tablas siguientes.

Sección de autodefinición/cabecera

Esta sección contiene los campos de cabecera de registro SMF comunes y los campos de triplete (desplazamiento a sección, longitud de sección o número de secciones) que localizan las otras secciones del registro.

Tabla 1. Correlaciones de registros para la sección de cabecera/autodefinición del registro SMF
Desplazamiento (decimal) Desplazamiento (hexadecimal) Nombre Longitud Formato Descripción
0 0 SMF121LEN 2 binario Longitud de registro (tamaño máximo de 32.756). Este campo y el campo siguiente (total de cuatro bytes) forman la palabra de descriptor de registro (RDW). Los dos primeros bytes (este campo) deben contener la longitud de registro lógico, incluido RDW.
2 2 SMF121SEG 2 binario Descriptor de segmento proporcionado por SMF. Inicialice con ceros.
4 4 SMF121FLG 1 binario Indicador del sistema. El significado de los bits cuando se establece es el siguiente:
  1. 0: reservado
  2. 1: los subtipos son válidos
  3. 2: reservado
  4. 3: MVS /SP Versión 4 y posteriores. Los bits 3, 4, 5 y 6 están activados. Una buena práctica es utilizar el tipo de registro 30 para obtener el nivel MVS de producto.
  5. 4: MVS /SP Versión 3. Los bits 4, 5 y 6 están activados
  6. 5: MVS /SP Versión 2. Los bits 5 y 6 están activados
  7. 6: VS2. El bit 6 está activado
  8. 7: reservado
5 5 SMF121RTY 1 binario Tipo de registro. Debe ser 121 decimal.
6 6 SMF121TME 4 binario Tiempo desde la medianoche, en centésimas de segundo, que el registro se ha movido al almacenamiento intermedio SMF.
10 A SMF121DTE 4 empaquetado Fecha en la que el registro se ha movido al almacenamiento intermedio SMF, con el formato 00aadddF o 0cyydddF . En este formato, c es 0 para 19xx y 1 para 20xx, yy es el año actual (0-99), ddd es el día actual (1-366) y F es el signo).
14 E SMF121SID 4 EBCDIC Identificación del sistema.
18 6 SMF121SSI 4 EBCDIC Identificación del subsistema.
22 16 SMF121STY 2 binario Subtipo de registro. Debe ser 1 decimal.
24 18 SMF121SDS_TRIPLETS 2 binario Número de tripletes (combinaciones de Offset/Longitud/Número).

Para la versión 1, hay 3 tripletas:

  • Entorno de ejecución Java
  • Recopilador de basura
  • Hebra

Para la versión 2, hay cuatro tresillos:

  • Entorno de ejecución Java
  • Recopilador de basura
  • Hebra
  • JES Información laboral
26 1A SMF121SDS_RSERVD 2 binario Reservado para tener en cuenta la alineación de palabra completa del campo siguiente.
28 1C SMF121SDS_OFFJRS 4 binario Desplazamiento a la sección Java Runtime.
32 20 SMF121SDS_LENJRS 2 binario Longitud de cada sección de Java Runtime.
34 22 SMF121SDS_NUMJRS 2 binario Número de secciones de Java Runtime. Sólo debe haber 1 sección de Java Runtime.
36 24 SMF121SDS_OFFGCS 4 binario Desplazamiento a la sección Recopilador de basura.
40 28 SMF121SDS_LENGCS 2 binario Longitud de cada sección de recopilador de basura.
42 2A SMF121SDS_NUMGCS 2 binario Número de secciones del recopilador de basura. Esto depende de cuántos recopiladores de basura estén activos en la máquina virtual Java.
44 2C SMF121SDS_OFFTS 4 binario Desplazamiento a la sección Hebra.
48 30 SMF121SDS_LENTS 2 binario Longitud de cada sección de hebra.
50 32 SMF121SDS_NUMTS 2 binario Número de secciones de hebras. Este número depende del número de hebras Java activas.
52 34   0   Fin de SMF121_1_Header_version 1
52 34 SMF121SDS_OFFJOB 4 binario Inicio de los cambios para 17.0.15.0Desplazamiento a la sección de trabajos de JESFin de los cambios para 17.0.15.0
56 38 SMF121SDS_LENJOB 2 binario Longitud de la sección de empleo JES
58 3A SMF121SDS_NUMJOB 2 binario Número de las secciones de trabajo JES. Tenga en cuenta que sólo hay una sección de empleo JES.
60 3C   0   Fin de SMF121_1_Header_version 2

Sección de tiempo de ejecución Java

Información de triplete: esta sección se encuentra en el registro utilizando los siguientes campos de triplete, que se encuentran en Sección de autodefinición/cabecera.

Tabla 2. Correlaciones de registros para la sección de tiempo de ejecución Java del registro SMF
Desplazamiento (decimal) Desplazamiento (hexadecimal) Nombre Longitud Formato Descripción
0 0 SMF121JRS_FDFLAGS 4 binario Distintivos de campo para indicar la adición de campos nuevos. El significado de los bits cuando se establece el byte de distintivo 1 es el siguiente:
  • 0: contiene campos de resumen de uso de CPU. Los campos incluyen SMF121JRS_APPCPU, SMF121JRS_SYSCPU, SMF121JRS_GCCPUy SMF121JRS_JITCPU.
  • 1-7: reservado
Los bytes de distintivo 2, 3 y 4 están reservados.
4 4 SMF121JRS_NAME 80 EBCDIC Nombre formateado que representa la máquina virtual Java en ejecución, con el formato pid@nombre_host. Recuperado de java.lang.management.RuntimeMXBean::getName(). Si el nombre tiene más de 80 caracteres, se trunca.
84 54 SMF121JRS_STRTTME 8 binario La hora aproximada a la que se inició la máquina virtual Java, en milisegundos. Recuperado de java.lang.management.RuntimeMXBean::getStartTime().
92 5C SMF121JRS_UPTIME 8 binario Tiempo de actividad de la máquina virtual Java en milisegundos. Recuperado de java.lang.management.RuntimeMXBean::getUptime().
100 64 SMF121JRS_GCMODE 40 EBCDIC La modalidad de recogida de basura actual como una serie legible por el usuario. Recuperado de com.ibm.lang.management.MemoryMXBean::getGCMode(). Si la serie tiene más de 40 caracteres, se trunca.
140 8C SMF121JRS_PEAKTHRD 4 binario Recuento máximo de hebras activas desde que se inició la máquina virtual Java o se restableció el recuento máximo. Recuperado de java.lang.management.ThreadMXBean::getPeakThreadCount().
144 90 SMF121JRS_CURRTHRD 4 binario Número actual de hebras activas, incluidas las hebras daemon y no daemon. Recuperado de java.lang.management.ThreadMXBean::getThreadCount().
148 94 SMF121JRS_APPCPU 8 binario Uso total de CPU para todas las hebras de aplicación en microsegundos. Recuperado de com.ibm.lang.management.JvmCpuMonitorInfo::getApplicationCpuTime(). Si la información de uso de CPU no está disponible, este campo contiene -1.
156 9C SMF121JRS_SYSCPU 8 binario Uso total de CPU de todas las hebras del sistema en microsegundos, que incluye GC, JIT y otras hebras de daemon de JVM. Recuperado de com.ibm.lang.management.JvmCpuMonitorInfo::getSystemJvmCpuTime(). Si la información de uso de CPU no está disponible, este campo contiene -1.
164 A4 SMF121JRS_GCCPU 8 binario Uso total de CPU de todas las hebras de GC en microsegundos. Se ha recuperado from com.ibm.lang.management.JvmCpuMonitorInfo::getGcCpuTime(). Si la información de uso de CPU no está disponible, este campo contiene -1.
172 CA SMF121JRS_JITCPU 8 binario Uso total de CPU de todas las hebras JIT en microsegundos. Se ha recuperado from com.ibm.lang.management.JvmCpuMonitorInfo::getJitCpuTime(). Si la información de uso de CPU no está disponible, este campo contiene -1.

Sección de recogida de basura

Información de triplete: esta sección se encuentra en el registro utilizando los siguientes campos de triplete, que se encuentran en Sección de autodefinición/cabecera.

Tabla 3. Correlaciones de registros para la sección del recopilador de basura del registro SMF
Desplazamiento (decimal) Desplazamiento (hexadecimal) Nombre Longitud Formato Descripción
0 0 SMF121GCS_FDFLAGS 4 binario Distintivos de campo para indicar la adición de campos nuevos, actualmente deben ser todos ceros.
4 4 SMF121GCS_NAME 40 EBCDIC Nombre del recopilador de basura. Recuperado de com.ibm.lang.management.GarbageCollectorMXBean::getName(). Si el nombre tiene más de 40 caracteres, se trunca.
44 2C SMF121GCS_COLLCNT 8 binario Número total de recopilaciones que se han producido. Recuperado de com.ibm.lang.management.GarbageCollectorMXBean::getCollectionCount().
52 34 SMF121GCS_COLLTME 8 binario El tiempo transcurrido de recopilación acumulada aproximado en milisegundos. Recuperado de com.ibm.lang.management.GarbageCollectorMXBean::getCollectionTime().
60 3C SMF121GCS_TMEMFREED 8 binario Cantidad total acumulada de memoria liberada, en bytes, por el recopilador de basura. Recuperado de com.ibm.lang.management.GarbageCollectorMXBean::getTotalMemoryFreed().
69 44 SMF121GCS_TCOMPACTS 8 binario El número total acumulado de compactaciones realizadas por el recopilador de basura. Recuperado de com.ibm.lang.management.GarbageCollectorMXBean::getTotalCompacts().
76 4C SMF121GCS_MEMUSED 8 binario Una instantánea de la cantidad de memoria de almacenamiento dinámico que utilizan los objetos que gestiona el recopilador de basura justo antes de que se registrara este registro SMF. Recuperado de com.ibm.lang.management.GarbageCollectorMXBean::getMemoryUsed().

Sección de hebra

Información de triplete: esta sección se encuentra en el registro utilizando los siguientes campos de triplete, que se encuentran en Sección de autodefinición/cabecera.

Tabla 4. Correlaciones de registros para la sección de hebras del registro SMF
Desplazamiento (decimal) Desplazamiento (hexadecimal) Nombre Longitud Formato Descripción
0 0 SMF121TS_FDFLAGS 4 binario Distintivos de campo para indicar la adición de campos nuevos, actualmente deben ser todos ceros.
4 4 SMF121TS_ID 8 binario ID de hebra Java. Recuperado de java.lang.management.ThreadInfo::getThreadId().
6 C SMF121TS_NAME 24 EBCDIC Nombre de hebra Java. Recuperado de java.lang.management.ThreadInfo::getThreadName(). Si el nombre tiene más de 24 caracteres, se trunca.
36 24 SMF121TS_CAT 8 EBCDIC

Categoría de hebra. Recuperado de com.ibm.lang.management.JvmCpuMonitorMXBean::getThreadCategory(long).

Las categorías de hebras posibles son las siguientes: APP, APP-U1, APP-U2, APP-U3, APP-U4, APP-U5, SYS, GC, JIT. OTROS, RM.

Si la información de categoría de hebra no está disponible, este campo contiene una serie vacía.

44 2C SMF121TS_CPU 8 binario Tiempo total de uso de CPU. Este campo tiene precisión de nanosegundos, pero es posible que no tenga precisión de nanosegundos. Recuperado de java.lang.management.ThreadMXBean::getThreadCpuTime(long). Si la información de uso de CPU no está disponible, este campo contiene -1.
52 34 SMF121TS_NATIVEID 8 binario El ID de hebra de SO nativo correspondiente. Si esta información no está disponible, el campo contiene -1.

Inicio de los cambios para 17.0.15.0Sección de trabajos JCLFin de los cambios para 17.0.15.0

Información de triplete: esta sección se encuentra en el registro utilizando los siguientes campos de triplete, que se encuentran en Sección de autodefinición/cabecera.

Tabla 5. Asignaciones de registro para la sección JCL Job del registro SMF
Desplazamiento (decimal) Desplazamiento (hexadecimal) Nombre Longitud Formato Descripción
0 0 SMF121JOB_JOBNAME 8 EBCDIC Nombre de trabajo
8 8 SMF121JOB_JOBID 8 EBCDIC ID de trabajo
16 10 SMF121JOB_STEPNAME 8 EBCDIC Nombre del paso de trabajo
24 18 SMF121JOB_STEPNUM 1 binario Número de paso del trabajo
25 19 SMF121JOB_JOBCORR 64 EBCDIC Correlacionador de empleos JES
89 59 SMF121JOB_JOBENTRY 4 binario Tiempo de entrada del lector JES en 1/100'S seg
93 5D SMF121JOB_JOBEDATE 4 binario Fecha de entrada del lector JES 0CYYDDDF