[JVM] CMS Collector - PERM 튜닝

2021. 12. 16. 15:08 JAVA/JVM

CMS 는 Default로 PERM 제너레이션을 처리하지 않는다.
때문에 PERM 영역이 가득차면 CMS는 Full GC를 수행한다.

-XX:CMSPermGenSweepingEnabled ( Default : false )
-XX:CMSInitiatingPermOccupancyFraction=N ( Default : 80% )
-XX:+CMSClassUnloadingEnabled ( Default : true )

CMSPermGenSweepingEnabled 
=> PERM 이 CMS의 스레드에 의해 처리되도록 지정한다

CMSInitiatingPermOccupancyFraction = N
=> PERM의 N%가 가득 찼을 때, PERM 영역을 처리하는 스레드를 실행시킨다. 

CMSClassUnloadingEnabled
=> 항상 같이 사용할 것! 클래스 메타 데이터 회수 여부
PERM 을 청소하는 이유가, 대부분이 클래스 메타 데이터 때문