민서네집

Tomcat 7 서버 - hotdeploy 시 memory leak 방지 본문

Java

Tomcat 7 서버 - hotdeploy 시 memory leak 방지

브라이언7 2014. 10. 10. 09:35

war 파일을 /webapps 폴더에 갖다 놓으면(overwrite) 자동으로 배포가 되는데, 메모리가 조금씩 증가한다.


- Tomcat 7 을 사용 중인데,  /webapps 폴더war 파일을 지우면  deploy된 디렉터리까지 삭제되면 undeploy 됨. 그리고 다시 /webapps 폴더에 war 파일을 갖다 놓으면 다시 deploy 됨. 이렇게 하면 VmSize 는 증가 안하고, VmHWM 만 증가함. 그런데 war 파일을 overwrite 하면 VmHWM 도 증가하고, VmSize, VmData도 조금 증가함.


 

초기값

war 파일 삭제

war업로드

war (overwrite)

Tomcat 재기동

VmPeak

400296 kB

   400296 kB

 400296 kB

400620 kB

397464 kB

VmSize

399360 kB

   399360 kB

399360 kB

   399684 kB

394388 kB

VmLck

     0 kB

         0 kB

 0 kB

  0 kB

 0 kB

VmHWM

155004 kB

155004 kB

167068 kB

182432 kB

146268 kB

VmRSS

143188 kB

 143048 kB

166192 kB

 181496 kB

145900 kB

VmData

382420 kB

   382420 kB

382420 kB

   382744 kB

377448 kB

VmStk

88 kB

        88 kB

 88 kB

    88 kB

88 kB

VmExe

     4 kB

         4 kB

     4 kB

  4 kB

4 kB

VmLib

10508 kB

10508 kB

   10508 kB

10508 kB

10508 kB

VmPTE

424 kB

       424 kB

    436 kB

 464 kB

368 kB

Threads

30

29

31

32

20


혹시 Tomcat 설정을 바꿔보면 memory leak 을 방지할 수 있을까 해서 conf/context.xml 파일에서

<Context> 태그를 다음과 같이 수정했더니

<Context antiResourceLocking="true">

FTP로 업로드 한 파일이 반영이 아예 안됨.


그래서 원상 복구함.


Tomcat 서버의 Process의 PID 확인


$ ps -ef | grep {사용자명} | grep java


Tomcat 서버의 Process의 Memory 사용량 확인


$ cat /proc/{PID번호}/status


[참고] http://stackoverflow.com/questions/14873219/cannot-undeploy-a-web-app-completely-in-tomcat-7



Comments