ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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주기 줄어듬


    visualkhh@gmail.com

    여러분들은 삽질 하지마세요~~


    댓글

Designed by Tistory.