안녕하세요? 오랜만에 질문을 드립니다.
본론으로 들어가서,,
GlassFish에 WebApp WAR를 여러번 deploy (redeploy) 해야하는 상황에서
PermGen (Permanent Generation) Out Of Memory 에러가 발생합니다.
현재까지 파악한 원인은, WAS에서 redeploy 시 기존의 ClassLoader에서 사용한 PermGen 자원들이 해지가 되지 않아서 인데요.
-XX:MaxPermSize= 를 사용하여 redeploy 가능 횟수는 늘였지만, 영원한(?) 해결책은 되지 않는 군요.
WAR를 지속적으로 redeploy 해야하는 요구사항이 있는데, 이렇게 PermGen 에러가 해결되지 않으면 문제가 될 것 같습니다.
혹시, PermGen 에러를 해결하신 분(MaxPermSize 방식이 아닌, 완전한 해결..) 계시면
(서버 전문가님~ JVM 전문가님~)
도움 부탁드립니다 ~!
p.s : 지금까지 작업해본 내용 및 제약조건들을 기술해봅니다.
1. PermGen 메모리 GC관련 옵션들인
-XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled
-XX:+UseConcMarkSweepGC
등도 적용해보았으나 해결되지 않았습니다.
2. 메모리 릭이 발생하는 위치가 JVM(Sun HotSpot) -> WAS(GlassFish) -> WebApp (불특정) 의 과정 중에 있을 것으로 추정되는데
WAS의 update나 patch 에 의존하여 해결하거나, WebApp의 메모리 릭을 추적하는 방식으로는 완전한 해결이 어려운 상황입니다.
(WebApp는 어떤 것이든지 올 수 있기 때문입니다.)
다시 말해, 옵션이나 장치를 추가하여 어떠한 WAS나 WebApp를 사용하더라도 문제를 해결할 수 있는 근원적인 해결방안이 필요한 상황입니다.
--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면
ks...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면
ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면
http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.