아틴
Atin
아틴
전체 방문자
오늘
어제
  • 분류 전체보기 (460)
    • Devlopment (246)
      • 정리 글 (20)
      • MicroServices (0)
      • Reactive, Concurrenc.. (12)
      • Java (44)
      • Spring (20)
      • C,C++,Ruby,Python (52)
      • Mobile (39)
      • Web (35)
      • Tip & Info (14)
      • Unit Test (7)
    • Infra (44)
      • OS (21)
      • RDBMS (13)
      • NoSQL&Cache (5)
      • AWS (4)
    • Computer Science (11)
    • Etc (156)

블로그 메뉴

  • Home
  • Guestbook

공지사항

인기 글

태그

  • 정읍
  • 전라도
  • 해킨토시
  • 아이폰
  • 여행
  • 던젼 앤 드래곤즈
  • 안드로이드
  • 자바
  • CSS
  • Java
  • mysql
  • TRPG
  • Ruby on Rails
  • jsp
  • Android
  • Python
  • javascript
  • C
  • Dungeons & Dragons
  • Linux

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
아틴

Atin

Tomcat & Java의 memory leak 분석
Devlopment/Java

Tomcat & Java의 memory leak 분석

2012. 7. 17. 18:18
반응형

쓰레드풀에서 생기는 메모리 릭 분석을 하다보니 또 포스팅하게 되었다.

생각해보면 학부 이후 Java 개발을 시작한 2008년도부터 늘 걱정되는 부분이다. JVM 덕분에 메모리 관리를 하지 않아도 되서 자바가 편하지만, 반대로 메모리 문제가 생기면 정말 짜증나게 하는 것이 또 자바이다.


 가끔은 내가 왜 C/C++만을 하지 않았을까 하는 후회가 들 때도 있다. C/C++을 이용하여 Visual Studio에서 개발하는 것이 그립기도 하고 순수 MFC 개발자가 부러울 때가 종종 있다. 잡설은 집어치우겠다..



메모리 릭 현상을 분석하다가 로그의 한계가 드러났다.

자세하게 분석을 해봐야겠다고 판단하였고 다시 한번 Eclipse MAT(http://www.eclipse.org/mat/)을 사용해봐야겠다고 판단되었다. Eclipse MAT은 Java Head Dump의 분석 툴로서 무료 소프트웨어 중에서는 제일 좋다고 여겨진다. 아쉽게도 잘 나와있는 설명서를 찾을 수가 없어서 사용해보면서 종종 익히는 중이다.


Eclipse MAT을 처음 사용해 본 것은 안드로이드 앱을 개발할 당시에 죽는 문제를 해결하기 위해서였다. 웹에서도 쓰이는지 몰랐는데, 톰캣의 Head Dump를 떠서 분석을 할 수 있었다.


[1]을 참고해서 톰캣에 Head Dump를 생성하였다.


Tomcat Memory Dump 생성 명령어

jmap -dump:format=b,file=파일명 톰캣PID


Tomcat PID 분석법

1. jps-v

2. tasklist /FI "WINDOWTITLE eq Tomcat"



[그림1. Tomcat PID 확인법]



[그림2. Tomcat Memory Dump 생성]



Memory Dump파일을 생성했다면, 그 이후로는 Eclipse MAT을 실행시켜서 덤프 파일을 분석하면 된다.



[그림3. Eclipse MAT에서 Memory Dump 파일 분석]






Reference

[1] RayG (http://rayg.tistory.com/49)




반응형

'Devlopment > Java' 카테고리의 다른 글

Java Network Framework, Netty  (0) 2013.04.23
JBoss 설치 및 연동  (0) 2013.04.19
Mavn 및 플러그인 설치  (0) 2013.04.19
Java 이전 버전을 받을 수 있는 URL  (0) 2013.03.28
Java 실행  (0) 2013.01.31
Tomcat 및 Java ThreadPool에서 memory leak 현상  (3) 2012.07.12
자바 기본 메소드의 구현  (0) 2012.06.20
MyBatis NumberFormatException 문제  (0) 2012.05.26
Java간의 통신  (1) 2012.05.10
Netty서버에서 1024이상 받지 못하는 문제의 해결법  (0) 2012.04.15
    'Devlopment/Java' 카테고리의 다른 글
    • Java 이전 버전을 받을 수 있는 URL
    • Java 실행
    • Tomcat 및 Java ThreadPool에서 memory leak 현상
    • 자바 기본 메소드의 구현
    아틴
    아틴

    티스토리툴바