반응형
분석을 위한 명령어들
모두 JDK 설치되어 있으면 실행을 위해 별도 설치할 것은 없음
스레드 덤프 생성
jstack -l <pid> > <path>
# jstack -l 3435 > /home/user/jstack.txt
정확한 원인 분석을 원한다면 5초 정도 간격으로 5회 정도 생성 필요 (스레드 상태 변화 확인을 위해)
힙덤프 생성
힙덤프 생성 중 Stop the world 되기 때문에 주의 (시간은 오래걸려도 수초내일 듯하다)
jcmd <pid> GC.heap_dump <path>
# jcmd 3435 GC.heap_dump /home/user/heap_dump.hprof
클래스 로드 현황 확인
명령 실행 시 Stop the world 되기 때문에 주의
jcmd <pid> GC.class_stats
# -csv=true 옵션을 추가하면 csv형태로 출력
JVM에 -XX:+UnlockDiagnosticVMOptions
옵션 추가되어있어야 가능함
메모리 현황 확인 (힙, 메타스페이스 포함)
jstat -gc <pid>
# 반복 출력 : jstat -gc <pid> <interval(mills)>
[출력 항목의 의미]
- S0C: Current survivor space 0 capacity (kB).
- S1C: Current survivor space 1 capacity (kB).
- S0U: Survivor space 0 utilization (kB).
- S1U: Survivor space 1 utilization (kB).
- EC: Current eden space capacity (kB).
- EU: Eden space utilization (kB).
- OC: Current old space capacity (kB).
- OU: Old space utilization (kB).
- MC: Metaspace capacity (kB).
- MU: Metacspace utilization (kB).
- CCSC: Compressed class space capacity (kB).
- CCSU: Compressed class space used (kB).
- YGC: Number of young generation garbage collection events.
- YGCT: Young generation garbage collection time.
- FGC: Number of full GC events.
- FGCT: Full garbage collection time.
- GCT: Total garbage collection time.
반응형
'개발 > 자바' 카테고리의 다른 글
JPA N+1 문제와 해결 방법 (0) | 2022.09.16 |
---|---|
Java Metaspace에 대해서 (0) | 2020.10.22 |
sun.reflect.GeneratedMethodAccessor 클래스에 대해서 (0) | 2020.10.13 |
자바 성능을 결정짓는 코딩 습관과 튜닝 이야기 (0) | 2020.06.09 |
Effective Java 3/E - 8장 메서드 요약정리 (0) | 2019.05.26 |