logo

[Java] 자바 메타스페이스(Metaspace)에 대해 알아보자.

language-logoJava

• Java 8부터 JVM 메모리 영역 중 Permanent Generation이 사라지고 Metaspace 영역이 생겼으며, 이는 클래스 로더가 로드한 클래스의 메타데이터가 저장되는 공간이다. Metaspace는 Heap 영역이 아닌 Native Memory 영역에 위치한다.
• Metaspace는 클래스가 로드되어 런타임이 준비될 때 할당되며, 클래스 로더가 언로드될 때 릴리즈된다. Metaspace 사이즈를 지정하는 파라미터로는 MaxMetaspaceSize와 CompressedClassSpaceSize가 있다.
• Metaspace 튜닝: Java 8 이상에서는 Metaspace를 튜닝할 수 있는 파라미터들이 존재하며, 이를 통해 초기/최소 Metaspace 크기, 최대 Metaspace 크기, Compressed Class Space 크기 등을 설정할 수 있다. 이를 확인하려면 `java -XX:+PrintFlagsFinal -version | grep` 명령어를 사용하면 된다.
• Metaspace 모니터링: Metaspace 사용량을 확인하기 위해 `jstat` 명령어를 사용하거나, Java 11부터는 `jcmd` 명령어를 통해 더욱 상세한 정보를 얻을 수 있다. 이를 통해 Metaspace의 가용량 중 활용량을 확인할 수 있다.

thumbnail
북마크
공유하기
신고하기
7분 분량
조회수 546
profile-imagejaemunbro
2년 전
Copyright © 2025. Codenary All Rights Reserved.