-
groovy engine 사용시 memory out...IT 2021. 2. 4. 15:33
최근에 groovy engine 을 이용해 hibernate dynamic query 기능을 만들어 사용하였습니다.
그런데~~! 두둥!!!!
서버가 몇일 있다보니 버벅 버벅 결국 뻗어버렸죠..
-----------
증상 : 메모리 부족으로 인한 weblogic 버벅이다 죽음
분석 : 4개 지사에서 사용중일때 -> 15일에 한번씩 죽던 weblogic
16개 지사 사용할때 -> 7일에 한번씩 weblogic 죽는상황
추론 : 순간적인 부하발생에 따른 문제가 아니라 사용율이 따른 누적피로도 에따른 문제로 의심
증거 : 7일간 돌아가던 weblogic Heap덤프 확인하니 groovy.reflection.ClassInfo등 GroovyClassLoader측에서 Heap메모리 절반 이상먹고 회수 안되는? 정보 확인
테스트환경 : 1시간 jmeter로 집중 부하(groovy template사용 부분)
확인 : 1. 자바에서 groovy 엔진을 로딩하여 사용할때는 groovy.all....*jar에있는 class등을 처음에 로딩하기때문에 주기적으로 호출 하면 버벅일수 없다는 구굴신의 답변 (메모리 반환 안되는건 아님)
2. 잦은 GC주기
조치 : 기능변경 (TemplateEngin)
GroovyTemplate 사용 하던걸 -> VelocityTemplate로 변경
AS-IS : Heap메모리 782MB
TO-BE: Heap 메모리 68.5MB 줄어듬
gc주기 줄어듬
여러분들은 삽질 하지마세요~~
'IT' 카테고리의 다른 글
하이버네이트 5.x 시작하기 (pdf) (0) 2021.02.04 비트코인 자동 매도,매수 프로그램 (coinone) (0) 2021.02.04 jenkins + sonarqube 연동 (0) 2021.02.04 jenkins + slack 연동 (0) 2021.02.04 html canvas 온라인 멀티 뇌파 게임.(websocket) (0) 2021.02.04