MaxPermSize
MaxPermSize How do you determine a good MaxPermSize? 에서 Matt 가 OOM(OutOfMemory) 에러에 시달리는데, -Xmx 사이즈를 아무리 늘려도 해결이 안됐었나 보다. 설명에 의하면 클래스의 메타 정보는 -Xmx 로 지정되는 메모리 영역이 아닌 MaxPermSize 로 지정되는 메모리 영역에 들어간다고 한다. 헌데, 요즘, Spring, iBatis, Hibernate 같은 리플렉션을 이용해서 클래스 메타 정보를 가져다 쓰는 프레임워크들이 많아지면서, MaxPermSize 를 기본값으로 놓고 사용하면 메모리가 부족해지는 현상이 일어나나 보다(나는 아직 겪어보지 못했다). -XX:MaxPermSize=256m 위와 같이 MaxPermSize를 지정하면 된다. 근데, 댓글들을 읽어보면 256m 은 좀 오바인것 같고, OOM 오류가 발생하면 테스트를 해가면서 세팅해야 할 것 같다. 기본 값은 JVM이 -client 옵션의 경우에는 32m -server 옵션일 경우에는 64m 이라고 한다. 또한, MaxPermSize는 -Xmx 로 지정한 메모리 용량과 별도로 할당된다. 즉, -Xmx가 256m 이고, -XX:MaxPermSize가 256m 이라면, 최대 512m이 할당될 수 있다는 것이다. MaxPermSize and how it relates to the overall heap 에 MaxPermSize에 대한 더 자세한 내용이 있다. JAVA(J2SE 1.4.1) 메모리 영역 구조 도 함 읽어보자. [출처] http://kwon37xi.egloos.com/2368729 # by 이종화 | 2006/07/17 21:07 | Web Server | 트랙백 | 덧글( 0 ) 트랙백 주소 : http://ingenuity.egloos.com/tb/22...