반응형
💥 Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
1️⃣ 원인
- JVM에서 애플리케이션이 가비지 콜렉션을 수행하는 데 너무 많은 시간을 소비한다는 신호를 보내는 방법이다.
(JVM이 GC를 수행하는데 총 시간의 98%이상을 소비하고 GC 후에 힙의 2%미만만 복구되는 경우 오류 발생)
- Map이나 ArrayList와 같은 자료구조를 사용할 때 많은 데이터를 자료구조에 넣으면 메모리 사용량이 많아져 오류가 발생할 수 있다.
2️⃣ 해결
▶ JVM option으로 heap limit제한을 없앤다
application단에서 메모리 부족으로 발생하는 java.lang.OutOfMemoryError: Java heap space.에러가 발생 할 수 있다.
XX:-UseGCOverheadLimit
▶ JVM option으로 메모리를 많이 사용하는 클래스에 메모리 할당 설정
java -Xmx1024m com.yourcompany.YourClass
* Intelli J 로 해당 문제 해결
# 기존
-Xms1024m
-Xmx2048m
# 변경
-Xms4096m
-Xmx4096m
반응형
최근댓글