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.
| 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:
|
| 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:
Per la versione 2, ci sono quattro terzine:
|
| 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 | Offset alla sezione lavori JES![]() |
| 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.
| 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:
|
| 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.
| 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.
| 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. |
Sezione Lavori JCL
Informazioni sulla tripletta: questa sezione si trova sul record utilizzando i seguenti campi della tripletta, che si trovano in Intestazione / sezione a definizione automatica.
| 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 |