posted by 은이종 은이종 2016. 9. 6. 10:42

Java8부터 메타정보 관리 영역의 메모리 구조가 변경 됨에 따라 pre-java8 옵션을 더 이상 사용 할 수 없습니다.

하지만, 지금까지 pre-java8 옵션으로 설치되어 왔습니다.

 

As-is

-XX:MaxPermSize=256m

 

To-be

-XX:MaxMetaspaceSize=256m

 

 

Java8에 기존 설정 (-XX:MaxPermSize)을 적용하면 다행히도(?) 설정이 무시되고 기본으로 -XX:MaxMetaspaceSize=unlimited 설정됩니다.

MaxMetaspaceSize의 기본 값이 unlimited이기 때문에 어플 특성에 따른 native 메모리 누수 발생시 최악의 경우 아예 OS가 뻗을 수 있을 것 같습니다.

native메모리 누수가 없다고 100% 장담 할 수 없기 때문에 제한을 두어야 한다고 봅니다.

 

 

대응

l  설치 스크립트에 java8의 경우 -XX:MaxMetaspaceSize=256m 가 적용되게 변경

l  기존 Java8 탑재 Tomcat MaxMetaspaceSize 모니터링

n  MaxMetaspaceSize에 특이사항이 없는지 확인(너무 과도하게 점유하지 않는지)

n  각 서비스 WAS 옵션 변경

댓글을 달아 주세요