Statistiche di runtime Java

È possibile utilizzare la variabile di ambiente HJV_JZOS_JVM_SMF_LOGGING JZOS per abilitare la registrazione dei record SMF (system management facilities) che contengono le statistiche di runtime Java™ .

Per impostazione predefinita, la registrazione delle statistiche di runtime Java è disabilitata. Se questa variabile di ambiente è impostata su true, il programma di avvio batch JZOS registra un hook di arresto JVM per registrare un record SMF che contiene le statistiche delle prestazioni di runtime Java appena prima della chiusura della JVM.

È anche possibile utilizzare la variabile di ambiente HJV_JZOS_JVM_SMF_LOGGING_INTERVAL per abilitare la registrazione periodica dei record SMF. Un'altra variabile di ambiente, HJV_JZOS_JVM_SMF_THREADS, controlla se i dettagli per i singoli thread sono inclusi in questi record SMF. Infine, la variabile di ambiente HJV_JZOS_JVM_SMF_THREADS_NATIVE_ID controlla se le informazioni corrette sull'ID thread del sistema operativo nativo vengono assegnate nella singola sezione dei dettagli del thread. Per ulteriori informazioni sulla configurazione di queste variabili di ambiente JZOS, consultare Variabili di ambiente JZOS.

Il programma di avvio batch JZOS utilizza il tipo di record SMF 121 per registrare statistiche delle prestazioni di runtime Java. Le associazioni di record vengono mostrate nelle tabelle seguenti.

Intestazione / sezione a definizione automatica

Questa sezione contiene i campi di intestazione del record SMF comuni e i campi triplet (offset alla sezione, lunghezza della sezione o numero di sezioni) che individuano le altre sezioni sul record.

Tabella 1. Associazioni di record per la sezione di intestazione / definizione automatica del record SMF
Offset (decimale) Scostamento (esadecimale) Nome Lunghezza Formato Descrizione
0 0 SMF121LEN 2 binario Lunghezza record (dimensione massima 32.756). Questo campo e il campo successivo (totale di quattro byte) formano la parola descrittore record (RDW). I primi due byte (questo campo) devono contenere la lunghezza del record logico, incluso RDW.
2 2 SMF121SEG 2 binario Descrittore segmento fornito da SMF. Inizializza con zeri.
4 4 SMF121FLG 1 binario Indicatore di sistema. Il significato dei bit quando impostati è il seguente:
  1. 0: riservato
  2. 1: i sottotipi sono validi
  3. 2: riservato
  4. 3: MVS /SP Versione 4 e successive. I bit 3, 4, 5 e 6 sono on. Una buona pratica consiste nell'utilizzare il tipo di record 30 per ottenere il livello MVS del prodotto.
  5. 4: MVS /SP Versione 3. I bit 4, 5 e 6 sono su
  6. 5: MVS /SP Versione 2. I bit 5 e 6 sono su
  7. 6: VS2. Bit 6 è attivo
  8. 7: riservato
5 5 SMF121RTY 1 binario Tipo di record. Deve essere 121 decimale.
6 6 SMF121TME 4 binario L'ora dalla mezzanotte, in centesimi di secondo, in cui il record è stato spostato nel buffer SMF.
10 A SMF121DTE 4 packed La data in cui il record è stato spostato nel buffer SMF, nel formato 00yydddF o 0cyydddF . In questo formato, c è 0 per 19xx e 1 per 20xx, aa è l'anno corrente (0-99), ddd è il giorno corrente (1-366) e F è il simbolo).
14 E SMF121SID 4 EBCDIC Identificazione del sistema.
18 12 SMF121SSI 4 EBCDIC Identificazione del sottosistema.
22 16 SMF121STY 2 binario Sottotipo record. Deve essere 1 decimale.
24 18 SMF121SDS_TRIPLETS 2 binario Numero di triplette (combinazioni Offset/Lunghezza / Numero).

Per la versione 1, ci sono 3 terzine:

  • Java Runtime
  • Raccoglitore dati inutilizzati
  • Argomento

Per la versione 2, ci sono quattro terzine:

  • Java Runtime
  • Raccoglitore dati inutilizzati
  • Argomento
  • JES Informazioni sul lavoro
26 1A SMF121SDS_RSERVD 2 binario Riservato all'account per l'allineamento fullword del campo successivo.
28 1C SMF121SDS_OFFJRS 4 binario Offset per la sezione Java Runtime.
32 20 SMF121SDS_LENJRS 2 binario Lunghezza di ogni sezione Java Runtime.
34 22 SMF121SDS_NUMJRS 2 binario Numero di sezioni Java Runtime. Deve essere presente solo una sezione Java Runtime.
36 24 SMF121SDS_OFFGCS 4 binario Offset per la sezione Programma di raccolta dati inutilizzati.
40 28 SMF121SDS_LENGCS 2 binario Lunghezza di ogni sezione del programma di raccolta dati inutilizzati.
42 2A SMF121SDS_NUMGCS 2 binario Numero di sezioni del raccoglitore dati inutilizzati. Ciò dipende dal numero di raccoglitori dati inutilizzati attivi in Java VM.
44 2C SMF121SDS_OFFTS 4 binario Offset per la sezione Filettatura.
48 30 SMF121SDS_LENTS 2 binario Lunghezza di ogni sezione Thread.
50 32 SMF121SDS_NUMTS 2 binario Numero di sezioni thread. Questo valore dipende dal numero di sottoprocessi Java attivi.
52 34   0   Fine di SMF121_1_Header_version 1
52 34 SMF121SDS_OFFJOB 4 binario Inizio delle modifiche per 21.0.7.0Offset alla sezione lavori JESFine delle modifiche per 21.0.7.0
56 38 SMF121SDS_LENJOB 2 binario Lunghezza della sezione di lavoro JES
58 3A SMF121SDS_NUMJOB 2 binario Numero delle sezioni di lavoro JES. Si noti che esiste una sola sezione di lavoro JES.
60 3C   0   Fine di SMF121_1_Header_version 2

Sezione runtime Java

Informazioni sulla tripletta: questa sezione si trova sul record utilizzando i seguenti campi della tripletta, che si trovano in Intestazione / sezione a definizione automatica.

Tabella 2. Associazioni di record per la sezione di runtime Java del record SMF
Offset (decimale) Scostamento (esadecimale) Nome Lunghezza Formato Descrizione
0 0 SMF121JRS_FDFLAGS 4 binario Indicatori di campo per indicare l'aggiunta di nuovi campi. Il significato dei bit quando l'indicatore byte 1 è impostato è il seguente:
  • 0: contiene campi di riepilogo dell'utilizzo della CPU. I campi includono SMF121JRS_APPCPU, SMF121JRS_SYSCPU, SMF121JRS_GCCPUe SMF121JRS_JITCPU.
  • 1-7: riservato
Gli indicatori byte 2, 3 e 4 sono riservati.
4 4 SMF121JRS_NAME 80 EBCDIC Nome formattato che rappresenta la Java virtual machine in esecuzione, nel formato pid@hostname. Richiamato da java.lang.management.RuntimeMXBean::getName(). Se il nome è più lungo di 80 caratteri, viene troncato.
84 54 SMF121JRS_STRTTME 8 binario Il tempo approssimativo di avvio della JVM (Java virtual machine), in millisecondi. Richiamato da java.lang.management.RuntimeMXBean::getStartTime().
92 5C SMF121JRS_UPTIME 8 binario Tempo di attività della JVM (Java virtual machine) in millisecondi. Richiamato da java.lang.management.RuntimeMXBean::getUptime().
100 64 SMF121JRS_GCMODE 40 EBCDIC La modalità di raccolta dati inutilizzati corrente come stringa leggibile. Richiamato da com.ibm.lang.management.MemoryMXBean::getGCMode(). Se la stringa è più lunga di 40 caratteri, viene troncata.
140 8C SMF121JRS_PEAKTHRD 4 binario Il conteggio di thread attivi di picco dall'avvio della JVM (Java virtual machine) o il conteggio di picco è stato reimpostato. Richiamato da java.lang.management.ThreadMXBean::getPeakThreadCount().
144 90 SMF121JRS_CURRTHRD 4 binario Il numero corrente di thread attivi, inclusi i thread daemon e non daemon. Richiamato da java.lang.management.ThreadMXBean::getThreadCount().
148 94 SMF121JRS_APPCPU 8 binario Utilizzo CPU totale per tutti i thread dell'applicazione in microsecondi. Richiamato da com.ibm.lang.management.JvmCpuMonitorInfo::getApplicationCpuTime(). Se le informazioni sull'utilizzo della CPU non sono disponibili, questo campo contiene -1.
156 9C SMF121JRS_SYSCPU 8 binario L'utilizzo totale della CPU di tutti i thread di sistema in microsecondi, che include GC, JIT e altri thread del daemon JVM. Richiamato da com.ibm.lang.management.JvmCpuMonitorInfo::getSystemJvmCpuTime(). Se le informazioni sull'utilizzo della CPU non sono disponibili, questo campo contiene -1.
164 A4 SMF121JRS_GCCPU 8 binario Utilizzo CPU totale di tutti i thread GC in microsecondi. Richiamato from com.ibm.lang.management.JvmCpuMonitorInfo::getGcCpuTime(). Se le informazioni sull'utilizzo della CPU non sono disponibili, questo campo contiene -1.
172 CA SMF121JRS_JITCPU 8 binario Utilizzo CPU totale di tutti i thread JIT in microsecondi. Richiamato from com.ibm.lang.management.JvmCpuMonitorInfo::getJitCpuTime(). Se le informazioni sull'utilizzo della CPU non sono disponibili, questo campo contiene -1.

Sezione Programma di raccolta dati inutilizzati

Informazioni sulla tripletta: questa sezione si trova sul record utilizzando i seguenti campi della tripletta, che si trovano in Intestazione / sezione a definizione automatica.

Tabella 3. Associazioni di record per la sezione del raccoglitore dati inutilizzati del record SMF
Offset (decimale) Scostamento (esadecimale) Nome Lunghezza Formato Descrizione
0 0 SMF121GCS_FDFLAGS 4 binario Gli indicatori di campo per indicare l'aggiunta di nuovi campi, attualmente devono essere tutti zeri.
4 4 SMF121GCS_NAME 40 EBCDIC Nome raccoglitore dati inutilizzati. Richiamato da com.ibm.lang.management.GarbageCollectorMXBean::getName(). Se il nome è più lungo di 40 caratteri, viene troncato.
44 2C SMF121GCS_COLLCNT 8 binario Numero totale di raccolte che si sono verificate. Richiamato da com.ibm.lang.management.GarbageCollectorMXBean::getCollectionCount().
52 34 SMF121GCS_COLLTME 8 binario Il tempo trascorso della raccolta accumulato approssimativo in millisecondi. Richiamato da com.ibm.lang.management.GarbageCollectorMXBean::getCollectionTime().
60 3C SMF121GCS_TMEMFREED 8 binario La quantità totale cumulativa di memoria liberata, in byte, dal raccoglitore dati inutilizzati. Richiamato da com.ibm.lang.management.GarbageCollectorMXBean::getTotalMemoryFreed().
68 44 SMF121GCS_TCOMPACTS 8 binario Il numero totale cumulativo di compattazioni che sono state eseguite dal raccoglitore dati inutilizzati. Richiamato da com.ibm.lang.management.GarbageCollectorMXBean::getTotalCompacts().
76 4C SMF121GCS_MEMUSED 8 binario Un'istantanea della quantità di memoria heap utilizzata dagli oggetti che il raccoglitore dati inutilizzati gestisce appena prima della registrazione di questo record SMF. Richiamato da com.ibm.lang.management.GarbageCollectorMXBean::getMemoryUsed().

Sezione thread

Informazioni sulla tripletta: questa sezione si trova sul record utilizzando i seguenti campi della tripletta, che si trovano in Intestazione / sezione a definizione automatica.

Tabella 4. Associazioni di record per la sezione thread del record SMF
Offset (decimale) Scostamento (esadecimale) Nome Lunghezza Formato Descrizione
0 0 SMF121TS_FDFLAGS 4 binario Gli indicatori di campo per indicare l'aggiunta di nuovi campi, attualmente devono essere tutti zeri.
4 4 SMF121TS_ID 8 binario ID sottoprocesso Java. Richiamato da java.lang.management.ThreadInfo::getThreadId().
12 C SMF121TS_NAME 24 EBCDIC Nome sottoprocesso Java. Richiamato da java.lang.management.ThreadInfo::getThreadName(). Se il nome è più lungo di 24 caratteri, viene troncato.
36 24 SMF121TS_CAT 8 EBCDIC

Categoria thread. Richiamato da com.ibm.lang.management.JvmCpuMonitorMXBean::getThreadCategory(long).

Le categorie di thread possibili sono le seguenti: APP, APP-U1, APP-U2, APP-U3, APP-U4, APP-U5, SYS, GC, JIT. ALTRO, RM.

Se le informazioni sulla categoria del thread non sono disponibili, questo campo contiene una stringa vuota.

44 2C SMF121TS_CPU 8 binario Tempo di utilizzo CPU totale. Questo campo ha una precisione di nanosecondi ma potrebbe non avere una precisione di nanosecondi. Richiamato da java.lang.management.ThreadMXBean::getThreadCpuTime(long). Se le informazioni sull'utilizzo della CPU non sono disponibili, questo campo contiene -1.
52 34 SMF121TS_NATIVEID 8 binario L'ID thread SO nativo corrispondente. Se queste informazioni non sono disponibili, il campo contiene -1.

Inizio delle modifiche per 21.0.7.0Sezione Lavori JCLFine delle modifiche per 21.0.7.0

Informazioni sulla tripletta: questa sezione si trova sul record utilizzando i seguenti campi della tripletta, che si trovano in Intestazione / sezione a definizione automatica.

Tabella 5. Mappature dei record per la sezione JCL Job del record SMF
Offset (decimale) Scostamento (esadecimale) Nome Lunghezza Formato Descrizione
0 0 SMF121JOB_JOBNAME 8 EBCDIC Nome lavoro
8 8 SMF121JOB_JOBID 8 EBCDIC ID lavoro
16 10 SMF121JOB_STEPNAME 8 EBCDIC Nome della fase di lavoro
24 18 SMF121JOB_STEPNUM 1 binario Numero della fase di lavoro
25 19 SMF121JOB_JOBCORR 64 EBCDIC Correlatore di lavoro JES
89 59 SMF121JOB_JOBENTRY 4 binario Tempo di inserimento del lettore JES in 1/100'S sec
93 5D SMF121JOB_JOBEDATE 4 binario Data di iscrizione del lettore JES 0CYYDDDF