-
톰캣 과부하 시 확인사항개발공부 2022. 11. 10. 19:31
★ 톰캣 fullGC로 다운됐을때 톰캣 재시작 전 진행!! (재시작 하면 PID 달라짐)
과부하 시 어떤 곳에서 메모리를 많이 잡아먹는지 원인 분석을 위해 진행
① heap 메모리 파일 다운
#PID 확인 ps -ef | grep [톰캣명] # 마지막 숫자는 확인한 PID 입력 jmap -dump:live,format=b,file=test_dump_alive.bin [PID]
② sts 내 Memory Analyzer(메모리 분석기능)로 다운받은 파일 실행
- sts에 미리 설치
- 메모리 분석, 통계를 통해 어떤 class에서 무슨 작업을 통해서 메모리가 많이 차지하는지 파악
- Help → install new software
- http://download.eclipse.org/mat/1.2/update-site/ 입력
- Memory Analyzer 체크 후 설치
● STS Memory Analyzer 분석
- 참고링크 : https://gs.saro.me/dev?tn=460
- 참고링크 : https://spoqa.github.io/2012/02/06/eclipse-mat.html
- 참고링크 : https://donzbox.tistory.com/150
● GC로그파일 분석
# cd /usr/local/java/톰캣명/logs
- ftp 가서 정렬해서 파일 보면 같은날짜로 gc로그파일이 여러개 있는데 용량이 가장 큰 파일을 다운
- GC 로그 분석 사이트 : https://gceasy.io/
- 빨간 화살표가 fullGC부분으로 중간중간 메모리를 정리해주는데 제일 마지막 빨간화살표에서 제대로 메모리정리가 안되서 전산이 다운된것으로 추측
● 서버 메모리 확인
#현재 남아있는 메모리 확인 free -h #메모리 정리하는 명령어 sync && echo 3 > /proc/sys/vm/drop_caches
※ 매일 해당 2) 명령어 실행하도록 크론으로 등록 crontab -e