ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • OOM 및 CPU 증가 시 모니터링 방법
    잡따꾸리 2020. 1. 30. 15:25

    1.HeapDump file 분석 

     

    1. java pid 조회 후 heapdump file 생성 

    경로 : /JAVA_HOME/bin 

    jmap -dump:format=b,file=heapdump.hprof pid 

     

    2. heapDump 분석 툴 Eclipse MAT(Memory Analyzer)  실행

    힙 메모리 상황을 파악해 메모리 누수 현상과 필요없는 메모리 할당을 감지 할 수 있도록 도움을 주는 툴 

    가장 많이 사용했던 기능은 Leak Suspects Report, Dominator tree 이며, 메모리를 가장 많이 차지하고 있는 객체에 대한 정보를 제공해 줌. 

    open heap dump → file 업로드 하면 아래 Leack Suspect Report 를 선택.

     

    Leack Suspect 는 가장 큰 용량을 차지하고 있는 객체들을 좀 더 세분화 된 도표로 보여주고, Details에 자세한 정보가 표기되어 있다. 

    Dominator Tree는 현재 덤프 된 메모리 스냅 샷 중 가장 큰 용량을 차지하고 있는 객체 순으로 보여주고, Thread Details 를 확인 할 수 있다. 

     

    2. Visual VM 을 이용한 JVM 모니터링 

    오픈소스 기반, JVM 모니터링 GUI 툴 , 여러개의 VM 모니터링과 profiling 가능 

    jdk 1.7 이상의 경우 JAVA_HOME/bin 밑에 포함되어 있음. 

     

    전체 VM에 대한 Thread 개수, Class개수와 CPU, JVM 메모리에 상황을 모니터링

     

    Thread 화면에서는 time frame에 따른 Thread와 어떤 상태인지 모니터링이 가능하다.  그리고, 마우스 우 클릭 버튼을 이용해서 heapdump 와 threaddump를 저장해주어 볼 수 있다. 

     

    local 에서는 쉽게 띄워서 사용가능하지만, Remote 서버에서는 별도의 작업이 필요. 

    1. JVM 옵션에 아래와 같은 내용 추가  (JMX 설정) 

    -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8500 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder

     

    2. visualvm 내 remote host address 추가 (8500 포트 넣지 않아도 적용 가능) 

     

    '잡따꾸리' 카테고리의 다른 글

    ExecuterService.newFixedThreadPool의 메모리 릭 위험  (0) 2020.04.23
Designed by Tistory.