DevJong12

[Tomcat] JVM설정 옵션 "PermSize", "MetaspaceSize" 본문

Java,Spring/Java

[Tomcat] JVM설정 옵션 "PermSize", "MetaspaceSize"

Jong12 2022. 5. 30. 10:43
728x90

개발완료된 고객사 서버를 이관받아서 보던중, "MaxPermSize"가 반영이 된 고객사가 존재 하였다.

 

나도 상급자한테 오류내용에 대해 물어보다가 설정과 관련된 오류중에 해당오류를 발견해주셔서 설정이 되어 있는 점을 알게 되었다.

 

해당 고객사 사양은 JDK1.8, Tomcat9 

필요가 없는 옵션인데 설정이 된채로 개발당시 적용을 하고 이관을 했던 것 같다.

 

필요가 없는 이유에 대해서 서술을 하고자한다


먼저 필요없는 이유를 알려면 Java 버전에 따른 구성을 알아야 한다.

 

좋은 이미지를 올려준 사이트가 있어서 이미지를 가져온다.

참고 주소 : https://blog.voidmainvoid.net/184

Java 7 HotSpot JVM 구조

Java  8 HotSpot JVM 구조

 

메모리에 대한 구조자체가 다르다.

Java7의 경우 Perm의 장소가 있지만 8에 들어오면서 Perm공간이 사라지고 MetaSpace가 생겼다.

 

-XX:MaxPermSize=size, XX:PermSize=size의 옵션의 경우에는 Java7이전에서는 실제 Perm공간이 있기에 설정을 해도 상관이 없다

 

하지만 8에 들어오면서 공간이 사라졌기 때문에 지원을 하지 않으며 오류로그가 발생한다.

 

굳이 변경을 하고자 한다면

-XX:MaxMetaspaceSize, XX:MetaspaceSize로 변경해야 하지 않나 싶다.

참고로 Default MetaspaceSize는 None이며, Metaspace는 필요에 다라 자동적으로 증가하기 떄문에 크게 주의할 필요는 없다.

 

 

728x90
Comments