자바 런타임 통계
HJV_JZOS_JVM_SMF_LOGGING JZOS 환경 변수를 사용하여 Java™ 런타임 통계를 포함하는 시스템 관리 기능 (SMF) 레코드의 로깅을 사용할 수 있습니다.
기본적으로 자바 런타임 통계의 로깅은 사용 불가능합니다. 이 환경 변수가 true로 설정된 경우, JZOS 배치 실행 프로그램은 JVM 종료 후크를 등록하여 JVM이 종료되기 직전에 Java 런타임 성능 통계를 포함하는 SMF 레코드를 로깅합니다.
또한 HJV_JZOS_JVM_SMF_LOGGING_INTERVAL 환경 변수를 사용하여 SMF 레코드의 정기적인 로깅을 사용할 수도 있습니다. 다른 환경 변수 HJV_JZOS_JVM_SMF_THREADS은 개별 스레드의 세부사항이 이러한 SMF 레코드에 포함되는지 여부를 제어합니다. 마지막으로 HJV_JZOS_JVM_SMF_THREADS_NATIVE_ID 환경 변수는 개별 스레드 세부사항 섹션에서 올바른 기본 운영 체제 스레드 ID 정보가 지정되는지 여부를 제어합니다. JZOS 환경 변수 구성에 대한 자세한 정보는 JZOS 환경 변수를 참조하십시오.
JZOS 일괄처리 실행기는 SMF 레코드 유형 121을 사용하여 Java 런타임 성능 통계를 기록한다. 레코드 맵핑은 다음 테이블에 표시됩니다.
헤더/자체 정의 섹션
이 섹션에는 레코드의 다른 섹션을 찾는 공통 SMF 레코드 헤더 필드 및 삼중항 필드 (섹션, 섹션 길이 또는 섹션 수) 가 포함되어 있다.
| 오프셋 (소수점) | 오프셋 (16진) | 이름 | 길이 | 형식 | 설명 |
|---|---|---|---|---|---|
| 0 | 0 | SMF121LEN |
2 | 2진 | 레코드 길이 (최대 크기 32,756). 이 필드와 다음 필드 (총 4바이트) 는 레코드 디스크립터 단어 (RDW) 를 형성한다. 처음 두 바이트 (이 필드) 는 RDW를 포함하여 논리 레코드 길이를 포함해야 합니다. |
| 2 | 2 | SMF121SEG |
2 | 2진 | SMF 에서 제공하는 세그먼트 디스크립터입니다. 0으로 초기화한다. |
| 4 | 4 | SMF121FLG |
1 | 2진 | 시스템 표시기. 설정 시 비트의 의미는 다음과 같습니다.
|
| 5 | 5 | SMF121RTY |
1 | 2진 | 레코드 유형입니다. 이 값은 121개의 10진수입니다. |
| 6 | 6 | SMF121TME |
4 | 2진 | 자정 이후의 시간 (100분의 1초) 이후 레코드가 SMF 버퍼로 이동한 시간입니다. |
| 1,000만 | A | SMF121DTE |
4 | 팩형 | 레코드가 SMF 버퍼로 이동된 날짜 (00yydddF 또는 0cyydddF ) 입니다. 이 형식에서 c 는 19xx 의 경우 0이고 20xx의 경우 1, yy 는 현재 연도 (0-99), ddd 는 현재 일 (1-366), F 는 부호입니다. |
| 14 | E | SMF121SID |
4 | EBCDIC | 시스템 ID입니다. |
| 18 | 12 | SMF121SSI |
4 | EBCDIC | 서브시스템 ID. |
| 22 | 그림 16 | SMF121STY |
2 | 2진 | 레코드 하위 유형. 이 값은 10진수이어야 합니다. |
| 24 | 18 | SMF121SDS_TRIPLETS |
2 | 2진 | 삼중항의 수 (오프셋/길이/수 조합). 버전 1의 경우 세 쌍둥이가 있습니다:
버전 2의 경우 세 쌍둥이가 네 명입니다:
|
| 26 | 1A | SMF121SDS_RSERVD |
2 | 2진 | 다음 필드의 전체 단어 맞추기를 고려하도록 예약되어 있습니다. |
| 28 | 1C | SMF121SDS_OFFJRS |
4 | 2진 | 자바 런타임 섹션에 대한 오프셋. |
| 32 | 20 | SMF121SDS_LENJRS |
2 | 2진 | 각 자바 런타임 섹션의 길이입니다. |
| 34 | 22 | SMF121SDS_NUMJRS |
2 | 2진 | 자바 런타임 섹션 수. 자바 런타임 섹션은 하나만 있어야 합니다. |
| 36 | 24 | SMF121SDS_OFFGCS |
4 | 2진 | 가비지 콜렉터 섹션에 대한 오프셋입니다. |
| 40 | 28 | SMF121SDS_LENGCS |
2 | 2진 | 각 가비지 콜렉터 섹션의 길이입니다. |
| 42 | 2A | SMF121SDS_NUMGCS |
2 | 2진 | 가비지 콜렉터 섹션 수. 이는 Java VM 에서 얼마나 많은 가비지 콜렉터가 활성화되어 있는지에 따라 달라진다. |
| 44 | 2C | SMF121SDS_OFFTS |
4 | 2진 | 스레드 섹션에 대한 오프셋. |
| 48 | 6시간에서 30분 | SMF121SDS_LENTS |
2 | 2진 | 각 스레드 섹션의 길이. |
| 50 | 32 | SMF121SDS_NUMTS |
2 | 2진 | 스레드 섹션 수. 이 수는 활성 자바 스레드 수에 따라 다릅니다. |
| 52 | 34 | 0 | SMF121_1_Header_version 1 끝 | ||
| 52 | 34 | SMF121SDS_OFFJOB | 4 | 2진 | JES 작업 섹션으로 오프셋![]() |
| 56 | 38 | SMF121SDS_LENJOB | 2 | 2진 | JES 작업 섹션의 길이 |
| 58개 | 3A | SMF121SDS_NUMJOB | 2 | 2진 | JES 작업 섹션의 수입니다. JES 작업 섹션은 하나만 있다는 점에 유의하세요. |
| 60 | 3C | 0 | SMF121_1_Header_version 2 끝 |
Java 런타임 섹션
삼중항 정보: 이 섹션은 머리글/자체 정의 섹션에 있는 다음 삼중항 필드를 사용하여 레코드에 있습니다.
| 오프셋 (소수점) | 오프셋 (16진) | 이름 | 길이 | 형식 | 설명 |
|---|---|---|---|---|---|
| 0 | 0 | SMF121JRS_FDFLAGS |
4 | 2진 | 새 필드의 추가를 표시하는 필드 플래그입니다. 플래그 바이트 1이 설정될 때 비트의 의미는 다음과 같습니다.
|
| 4 | 4 | SMF121JRS_NAME |
80 | EBCDIC | 실행 중인 JVM (Java Virtual Machine) 을 나타내는 형식화된 이름 ( pid@hostname형식). java.lang.management.RuntimeMXBean::getName()에서 검색되었습니다. 이름이 80자를 초과하면 잘립니다. |
| 84 | 54 | SMF121JRS_STRTTME |
8 | 2진 | JVM (Java Virtual Machine) 이 시작된 대략적인 시간 (밀리초). java.lang.management.RuntimeMXBean::getStartTime()에서 검색되었습니다. |
| 92 | 5C | SMF121JRS_UPTIME |
8 | 2진 | JVM (Java Virtual Machine) 의 가동 시간 (밀리초). java.lang.management.RuntimeMXBean::getUptime()에서 검색되었습니다. |
| 100년 | 6,400 | SMF121JRS_GCMODE |
40 | EBCDIC | 사용자가 읽을 수 있는 문자열로 현재 가비지 콜렉션 모드입니다. com.ibm.lang.management.MemoryMXBean::getGCMode()에서 검색되었습니다. 문자열이 40자보다 길면 잘립니다. |
| 140 | 8C | SMF121JRS_PEAKTHRD |
4 | 2진 | JVM (Java Virtual Machine) 이 시작되었거나 피크 카운트가 재설정된 이후의 피크 라이브 스레드 수. java.lang.management.ThreadMXBean::getPeakThreadCount()에서 검색되었습니다. |
| 144 | 90 | SMF121JRS_CURRTHRD |
4 | 2진 | 디먼 및 비디먼 스레드를 포함하여 현재 활성 스레드 수입니다. java.lang.management.ThreadMXBean::getThreadCount()에서 검색되었습니다. |
| 148 | 94 | SMF121JRS_APPCPU |
8 | 2진 | 모든 애플리케이션 스레드의 총 CPU 사용량 (마이크로초). com.ibm.lang.management.JvmCpuMonitorInfo::getApplicationCpuTime()에서 검색되었습니다. CPU 사용 정보를 사용할 수 없는 경우 이 필드에는 -1가 포함됩니다. |
| 156 | 9C | SMF121JRS_SYSCPU |
8 | 2진 | GC, JIT및 기타 JVM 디먼 스레드를 포함하는 모든 시스템 스레드의 총 CPU 사용량 (마이크로초). com.ibm.lang.management.JvmCpuMonitorInfo::getSystemJvmCpuTime()에서 검색되었습니다. CPU 사용 정보를 사용할 수 없는 경우 이 필드에는 -1가 포함됩니다. |
| 164 | A4 | SMF121JRS_GCCPU |
8 | 2진 | 모든 GC 쓰레드의 총 CPU 사용량 (마이크로초). from
com.ibm.lang.management.JvmCpuMonitorInfo::getGcCpuTime()을 검색했습니다. CPU 사용 정보를 사용할 수 없는 경우 이 필드에는 -1가 포함됩니다. |
| 172 | AC | SMF121JRS_JITCPU |
8 | 2진 | 모든 JIT 스레드의 총 CPU 사용량 (마이크로초). from
com.ibm.lang.management.JvmCpuMonitorInfo::getJitCpuTime()을 검색했습니다. CPU 사용 정보를 사용할 수 없는 경우 이 필드에는 -1가 포함됩니다. |
가비지 컬렉터 섹션
삼중항 정보: 이 섹션은 머리글/자체 정의 섹션에 있는 다음 삼중항 필드를 사용하여 레코드에 있습니다.
| 오프셋 (소수점) | 오프셋 (16진) | 이름 | 길이 | 형식 | 설명 |
|---|---|---|---|---|---|
| 0 | 0 | SMF121GCS_FDFLAGS |
4 | 2진 | 새 필드의 추가를 표시하는 필드 플래그는 현재 모두 0이어야 합니다. |
| 4 | 4 | SMF121GCS_NAME |
40 | EBCDIC | 가비지 컬렉터 이름. com.ibm.lang.management.GarbageCollectorMXBean::getName()에서 검색되었습니다. 이름이 40자를 초과하면 잘립니다. |
| 44 | 2C | SMF121GCS_COLLCNT |
8 | 2진 | 발생한 총 콜렉션 수. com.ibm.lang.management.GarbageCollectorMXBean::getCollectionCount()에서 검색되었습니다. |
| 52 | 34 | SMF121GCS_COLLTME |
8 | 2진 | 대략적으로 누적된 콜렉션 경과 시간 (밀리초) 입니다. com.ibm.lang.management.GarbageCollectorMXBean::getCollectionTime()에서 검색되었습니다. |
| 60 | 3C | SMF121GCS_TMEMFREED |
8 | 2진 | 가비지 콜렉터에 의해 해제된 메모리의 누적 총계 (바이트) 입니다. com.ibm.lang.management.GarbageCollectorMXBean::getTotalMemoryFreed()에서 검색되었습니다. |
| 68 | 44 | SMF121GCS_TCOMPACTS |
8 | 2진 | 가비지 콜렉터가 수행한 누적 총 압축 수입니다. com.ibm.lang.management.GarbageCollectorMXBean::getTotalCompacts()에서 검색되었습니다. |
| 76 | 4C | SMF121GCS_MEMUSED |
8 | 2진 | 이 SMF 레코드가 기록되기 직전에 가비지 콜렉터가 관리하는 오브젝트에 사용되는 힙 메모리 양의 스냅샷입니다. com.ibm.lang.management.GarbageCollectorMXBean::getMemoryUsed()에서 검색되었습니다. |
스레드 섹션
삼중항 정보: 이 섹션은 머리글/자체 정의 섹션에 있는 다음 삼중항 필드를 사용하여 레코드에 있습니다.
| 오프셋 (소수점) | 오프셋 (16진) | 이름 | 길이 | 형식 | 설명 |
|---|---|---|---|---|---|
| 0 | 0 | SMF121TS_FDFLAGS |
4 | 2진 | 새 필드의 추가를 표시하는 필드 플래그는 현재 모두 0이어야 합니다. |
| 4 | 4 | SMF121TS_ID |
8 | 2진 | 자바 쓰레드 ID. java.lang.management.ThreadInfo::getThreadId()에서 검색되었습니다. |
| 12 | C | SMF121TS_NAME |
24 | EBCDIC | 자바 쓰레드 이름. java.lang.management.ThreadInfo::getThreadName()에서 검색되었습니다. 이름이 24자보다 긴 경우 잘립니다. |
| 36 | 24 | SMF121TS_CAT |
8 | EBCDIC | 스레드 범주. com.ibm.lang.management.JvmCpuMonitorMXBean::getThreadCategory(long)에서 검색되었습니다. 가능한 스레드 범주는 다음과 같습니다. APP, APP-U1, APP-U2, APP-U3, APP-U4, APP-U5, SYS, GC, JIT. 기타, RM. 스레드 카테고리 정보를 사용할 수 없는 경우 이 필드에는 비어 있는 문자열이 포함됩니다. |
| 44 | 2C | SMF121TS_CPU |
8 | 2진 | 총 CPU 사용 시간. 이 필드에는 나노초 정밀도가 있지만 나노초 정확도가 없을 수도 있습니다. java.lang.management.ThreadMXBean::getThreadCpuTime(long)에서 검색되었습니다. CPU 사용 정보를 사용할 수 없는 경우 이 필드에는 -1가 포함됩니다. |
| 52 | 34 | SMF121TS_NATIVEID |
8 | 2진 | 대응하는 네이티브 OS 쓰레드 ID. 이 정보를 사용할 수 없는 경우, 필드에 -1가 포함됩니다. |
JCL 작업 섹션
삼중항 정보: 이 섹션은 머리글/자체 정의 섹션에 있는 다음 삼중항 필드를 사용하여 레코드에 있습니다.
| 오프셋 (소수점) | 오프셋 (16진) | 이름 | 길이 | 형식 | 설명 |
|---|---|---|---|---|---|
| 0 | 0 | SMF121JOB_JOBNAME | 8 | EBCDIC | 작업 이름 |
| 8 | 8 | SMF121JOB_JOBID | 8 | EBCDIC | 작업 ID |
| 그림 16 | 1,000만 | SMF121JOB_STEPNAME | 8 | EBCDIC | 작업 단계 이름 |
| 24 | 18 | SMF121JOB_STEPNUM | 1 | 2진 | 작업 단계 번호 |
| 25 | 19일 | SMF121JOB_JOBCORR | 6,400 | EBCDIC | JES 작업 상관관계자 |
| 89 | 59 | SMF121JOB_JOBENTRY | 4 | 2진 | 1/100초 단위의 JES 리더 입력 시간 |
| 93 | 5D | SMF121JOB_JOBEDATE | 4 | 2진 | JES 리더 입력 날짜 0CYYDDDF |