1. GC 확인
- jstat 를 통하여 gc 상태를 점검한다. JDK 에 기본적으로 포함되어 있으며, 위치는 <JAVA_HOME>/bin/jstat 이다.
- jstat -gc -h20 -t 3000 3000
- -h20 : 20라인마다 header 찍음
- -t : time stamp 프린트(JVM 이 스타트 된 이후의 시간)
- 2546: 프로세스 id
- 3000 : interval (ms 단위)
- 3000 : count
- jstat 를 통하여 full gc 주기를 확인한다. 자주 gc 가 일어나면 CPU를 자주 점유하게 되고, 애플리케이션의 STW 를 일으키게 된다.
YGCT/YGC = Minor GC 처리시간
FGCT/FGC = Full GC 처리시간
Minor GC의 처리 시간이 빠르다(50ms내외).
Minor GC 주기가 빈번하지 않다(10초 내외).
Full GC의 처리 시간이 빠르다(보통 1초 ~ 2초 이내).
Full GC 주기가 빈번하지 않다(10분에 1회).
2. Thread 확인
자바 스레드가 데드락에 걸려서 gc 가 되지 않는지 확인한다. gc 가 되지 않는 스레드는 애플리케이션의 성능을 저하시키는 원인이 된다.
- jvisualvm 을 이용하여 확인한다. jvisualvm 는 JDK 에 기본적으로 포함되어 있으며, 위치는 <JAVA_HOME>/bin/jvisualvm 이다.
- https://visualvm.github.io/
3. 최종확인
1단계와 2단계에서 해결이 되지 않을때는 APM 을 이용하여 점검하는것이 좋다. 오픈소스 APM 인 scouter 를 활용한다.
- scouter-paper : https://github.com/scouter-contrib/scouter-paper
- scouter client
'DevOps' 카테고리의 다른 글
i18n (국제화) 을 위한 weblate 사용법 (www.weblate.org) - 2편 설정 (0) | 2020.05.20 |
---|---|
i18n (국제화)을 위한 weblate 사용법 (www.weblate.org) - 1편 설치 (0) | 2020.05.10 |
AWS linux 에 docker-compose 설치 (0) | 2020.05.10 |
docker-compose 명령어 (0) | 2020.05.10 |
도커 명령어 (0) | 2020.03.12 |
도커 핸즈온 (DevOps) (0) | 2019.03.01 |
SVN 저장소 생성법 및 SVN 구동명령어 (1) | 2009.09.11 |
SVN (Subversion) svnserve.conf 파일 수정시 주의사항 (1) | 2008.12.29 |
댓글