요즘 진행중인 프로젝트에서 서블릿을 만들 때 자바 대신 그루비를 사용한다. 헌데 코드가 조금 복잡해지면서 OutOfMemoryError: PermGen space 라는 오류가 자꾸 발생했다. 일단 저 오류가 뜨고나면 톰캣이 더이상 동작하지 않는 상태가 된다. 이 문제로 5일이나 삽질한 끝에 방금 전에 해결했다. 여 러가지 해결 책이 있겠지만, 일단 가장 쉬운 방법은 WEB-INF/lib 에서 mysql*.jar 를 삭제하는 것이다. 더불어 commons-logging*.jar도 삭제하자. 그러면 문제도 해결되고 애플리케이션 속도도 빨라진다. 그래도 해결이 안되고 계속 문제가 발생하면, 톰캣 실행옵션에 -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled 을 줘보자. 또는 -XX:MaxPermSize=256m도 효과가 있다고 한다. 나는 일단 jar파일들 삭제까지만 해서 문제가 해결되었다. 참고 : http://www.jroller.com/agileanswers/entry/preventing_java_s_java_lang |
