[Java] Heap Memory 체크 (JSTAT)
2021. 3. 29. 17:30
반응형
JSTAT GC 메모리 관리
자바에서 메모리 관리의 효율성을 위해 제공하는 Tool
Young 영역
Eden 영역에는 신규 객체들이 보관되고, 100% 차게되면 사용하지 않는 객체는 제거되고, 사용되는 객체는 Survivor 0으로 승격(miner gc 수행), S0에서 사용하지 않는 객체 제거 및 사용되는 객체 Survivor 1영역으로 승격(miner gc 수행) 됨. 이 작업이 반복되면서 살아 남은 객체는 Old 영역으로 승격됨. (miner gc 수행 중에는 JVM STW 발생하지 않음)
Old 영역
Eden 영역에서 승격된 객체들이 보관되다가 Old 영역이 100% 되면 major gc 가 발생한다. JVM STW 가 되면서 Old 영역의 메모리를 정리하게 되는데, 이때 major gc 처리 시간을 줄이는 것이 중요함( 1초 미만을 권장하고, 시간에 따라 gc 튜닝이 필요할 수도 있음)
jstat gc memory check
- jstat 옵션
- gc: gc 힙의 통계 정보를 출력
- gccapacity: 힙의 용량 정보를 출력
- gcutil: gc 통계 정보를 출력
- gcnew: new 영역의 정보 출력
- gccause: gc 통계 정보와 gc 발생 원인 출력
- jstat 예시
- jstat [옵션] [PID] [반복 출력 시간]
- S0: S0 영역 사용율
- S1: S1 영역 사용율
- E: Eden 영역 사용율
- O: Old 영역 사용율
- CCS: compressed class space 영역 사용율
- YGC: young 영역 gc count
- FGC: full gc count(major gc)
- FGCT: full gc count time (소요 시간)
- GCT: gc 전체 소요시간 (ygct + fgct)
반응형
'Programming > Java' 카테고리의 다른 글
[Java Stream] anyMatch() vs filter().count > 0 성능 비교 (0) | 2023.06.12 |
---|---|
[Java] Collection sort (0) | 2016.01.07 |
[Java] GMT/UTC 날짜 변환 (1) | 2015.04.08 |
[오류]Setting property 'source' to 'org.eclipse.jst.jee.server:프로젝트명' did not find a matching property (0) | 2014.04.08 |
올바른 eqals() 사용법 (0) | 2014.02.07 |