IT/실수하지말자

[Java] java.lang.OutOfMemoryError: Metaspace

Terriermon 2021. 11. 22. 11:17
java.lang.OutOfMemoryError: Metaspace

 

Spring을 실행시키는 데, 실행이 되지 않았다.

 

원인은 간단, 사용할 수 있는 MEMORY(RAM)이 없는 것이다.

 

JAVA를 실행시키기 위해서는 여유로운 메모리 공간이 있어야 된다.

 

해결은 간단하게 가동 중인 프로그램 수를 줄이면 된다.

 

https://www.nextree.co.kr/p3878/ 에서 오류 원인을 좀 더 파악할 수 있다.

 

Java 프로그래밍: Out Of Memory 오류

Java로 소프트웨어를 개발하는 사람이라면 누구나 한번쯤 Out Of Memory Error(이하 OOME)를 만나 보았을 것이다. OOME의 경우 Java의 다른 Error와 다르게 원인과 대응을 하기가 쉽지는 않다. 경험에 비추어

www.nextree.co.kr

 

 

그렇다면 Metaspace란 무엇인가?

https://sheerheart.tistory.com/entry/Java-Metaspace%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C

 

Java Metaspace에 대해서

Metaspace란 무엇일까 Metaspace는 JDK8 이전의 Perm 영역을 대체하는 것으로 클래스와 메소드의 메타데이터들이 저장되는 영역임 Metaspace는 native memory를 사용하기 때문에 힙 영역과는 별개의 영역에 할

sheerheart.tistory.com

 

JDK8 이전의 Perm 영역을 대체한 것으로, 클래스와 메소드의 메타데이터들이 저장되는 영역이다.

위 출처

 

Metasapce는 어떤 일을 하는가?

클래스는 필요 시점에 로딩 되는 데, 이 때 Metaspace에 클래스 정보가 저장된다.

 

즉, 소스 코드 양이 많아질수록 Metaspace도 많이 사용된다.