일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- ReactJS
- jsp
- Spring
- tool
- javascript
- linux
- redis
- Gradle
- php
- Oracle
- devops
- db
- java
- 요리
- Web Server
- springboot
- jenkins
- laravel
- ubuntu
- AWS
- 맛집
- JVM
- elasticsearch
- Spring Boot
- Git
- MySQL
- Spring Batch
- it
- IntelliJ
- Design Patterns
Archives
- Today
- Total
아무거나
JDK8 에서 Perm 영역 삭제와 Metaspace 영역의 추가 본문
반응형
시작에 앞서
먼저 Java8 부터 삭제되는 영역인 Permanent Generation 부터 알아보자면 Class 혹은 Method Code 가 저장되는 영역
이다. 줄여서 PermGen 이라고 하며, Heap 영역에 속한다.
PermGen 에는 로드된 클래스의 정보, 정적 변수, 상수 정보 등 변하지 않을 것이라고 어느 정도 보증되는 데이터가 저장된다고 한다.
PermGen -> Metaspace 영역으로 변경된 이유
PermGen 은 메모리가 제한되기 때문에 OOM(=OutOfMemoryError) 이 발생하게 된다. 그래서 해당 문제를 해결하기 위해 Native 메모리를 사용하는 Metaspace 로 변경되었으며 Metaspace 영역은 Native 메모리를 이용함으로써 개발자는 영역 확보의 상한을 크게 의삭할 필요가 없어지게 된다.
PermGen VS Metaspace
Java 7 | Java 8 | |
---|---|---|
Class 메타 데이터 | 저장 | 저장 |
Method 메타 데이터 | 저장 | 저장 |
Static Objecvt 변수, 상수 | 저장 | Heap 영역으로 이동 |
메모리 튜닝 | Heap, Perm 영역 튜닝 | Heap 튜닝, Native 영역은 OS가 동적 조정 |
메모리 옵션 | -XX:PermSize, -XX:MaxPermSize | -XX:MetaspaceSize, -XX:MaxMetaspaceSize |
참고
- https://johngrib.github.io
- https://blog.voidmainvoid.net
반응형
'Java & Kotlin > Java' 카테고리의 다른 글
[Spring Actuator] Example 2편 - 각 Info Endpoint 설명 및 Custom Info Endpoint 생성 설명 (0) | 2023.11.26 |
---|---|
Redis 성능 개선을 위한 GZIP 압축 로직을 적용시 Native OOM 이슈에 대한 분석 (0) | 2023.07.26 |
JVM Heap 모니터링 및 Heap Dump 분석 (0) | 2023.03.09 |
Setter 사용을 지양하자. (0) | 2022.11.26 |
Spring Batch 6편 - Chunk-Oriented Processing (0) | 2022.11.06 |
Comments