ECS OutOfMemoryError: Java heap space
상황
2021년 6월 27일 18:00 ~ 2021년 7월 11일 사이 G2Service Prod 작업에서 지속적인 OutOfMemoryError 관련 문제가 발생되어 무분별한 Auto Scaling 이벤트가 발생되었음.
- 문제점 : AutoScaling 이벤트 작업으로 운영되고 있으나, AutoScaling 작업 추가로 인해 Cost 비용이 낭비되는 부분
원인
JVM Heap Size 부족으로 인한 Java Object를 Heap에 할당하지 못하여 OutOfMemoryError 발생 (JVM Option 설정을 하지 않은 경우 발생)
- CPU 사용량 내역
- 부하 발생 관련 에러 내역
- Auto Scaling 이벤트 내역
- Auto Scaling Task 연결 후 JVM Heap 사용 내역 (1.8GB Commit)
- Auto Scaling 해제 후 CPU 사용량
- 기존 G2Service JVM Heap Size
JVM Heap (Min: 495MB, Max: 495MB)
JVM Non-Heap (Max: 1.2GB)
JVM Total (1.7GB)
- 동일증상 내역 (기간 : 21-06-13 ~ 07-11)
해결방안
ECS JVM Heap Option 설정
- ECS Task definition.json JVM Heap Option Parameters 설정
"entryPoint" : [
"java",
"-jar",
"-Xms1024m",
"-Xmx1024m",
"-Dspring.profiles.active=***",
"-Djasypt.encryptor.password=***",
"G2service.jar"
- JVM Option 적용 후 JVM Heap Size
JVM Heap (Min: 990MB, Max: 990MB)
JVM Non-Heap (Max: 1.2GB)
JVM Total (2.2GB)
모니터링
- 7.12일 15:10, JVM Option 적용 후 CPU 사용량
기존 클러스터 대비 안정적인 CPU 사용량을 보이고 있으며, 해당 에러 관련 AutoScaling 이벤트는 발생되지 않음.
- 7.13일 12:32, 네트워크 트래픽 증가로 AutoScaling 이벤트 발생
네트워크 InBound 트래픽 증가로 인해 Task 작업 부족으로 인한 이벤트 발생, 그 이후 서비스 사용량 안정적
참조 URL
- OutOfMemory 오류
- Heap, Memory Leak, OutOfMemoryError
- JVM 메모리의 이해와 케이스 스터디
- JAVA 메모리 구조와 JAVA OPTION 값 정리
- ECS JVM 인수 전달방법
Author And Source
이 문제에 관하여(ECS OutOfMemoryError: Java heap space), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@enosoup/ECS-OutOfMemoryError-Java-heap-space
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
JVM Heap Size 부족으로 인한 Java Object를 Heap에 할당하지 못하여 OutOfMemoryError 발생 (JVM Option 설정을 하지 않은 경우 발생)
- CPU 사용량 내역
- 부하 발생 관련 에러 내역
- Auto Scaling 이벤트 내역
- Auto Scaling Task 연결 후 JVM Heap 사용 내역 (1.8GB Commit)
- Auto Scaling 해제 후 CPU 사용량
- 기존 G2Service JVM Heap Size
JVM Heap (Min: 495MB, Max: 495MB)
JVM Non-Heap (Max: 1.2GB)
JVM Total (1.7GB)
- 동일증상 내역 (기간 : 21-06-13 ~ 07-11)
해결방안
ECS JVM Heap Option 설정
- ECS Task definition.json JVM Heap Option Parameters 설정
"entryPoint" : [
"java",
"-jar",
"-Xms1024m",
"-Xmx1024m",
"-Dspring.profiles.active=***",
"-Djasypt.encryptor.password=***",
"G2service.jar"
- JVM Option 적용 후 JVM Heap Size
JVM Heap (Min: 990MB, Max: 990MB)
JVM Non-Heap (Max: 1.2GB)
JVM Total (2.2GB)
모니터링
- 7.12일 15:10, JVM Option 적용 후 CPU 사용량
기존 클러스터 대비 안정적인 CPU 사용량을 보이고 있으며, 해당 에러 관련 AutoScaling 이벤트는 발생되지 않음.
- 7.13일 12:32, 네트워크 트래픽 증가로 AutoScaling 이벤트 발생
네트워크 InBound 트래픽 증가로 인해 Task 작업 부족으로 인한 이벤트 발생, 그 이후 서비스 사용량 안정적
참조 URL
- OutOfMemory 오류
- Heap, Memory Leak, OutOfMemoryError
- JVM 메모리의 이해와 케이스 스터디
- JAVA 메모리 구조와 JAVA OPTION 값 정리
- ECS JVM 인수 전달방법
Author And Source
이 문제에 관하여(ECS OutOfMemoryError: Java heap space), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@enosoup/ECS-OutOfMemoryError-Java-heap-space
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
"entryPoint" : [
"java",
"-jar",
"-Xms1024m",
"-Xmx1024m",
"-Dspring.profiles.active=***",
"-Djasypt.encryptor.password=***",
"G2service.jar"
JVM Heap (Min: 990MB, Max: 990MB)
JVM Non-Heap (Max: 1.2GB)
JVM Total (2.2GB)
- 7.12일 15:10, JVM Option 적용 후 CPU 사용량
기존 클러스터 대비 안정적인 CPU 사용량을 보이고 있으며, 해당 에러 관련 AutoScaling 이벤트는 발생되지 않음. - 7.13일 12:32, 네트워크 트래픽 증가로 AutoScaling 이벤트 발생
네트워크 InBound 트래픽 증가로 인해 Task 작업 부족으로 인한 이벤트 발생, 그 이후 서비스 사용량 안정적
참조 URL
- OutOfMemory 오류
- Heap, Memory Leak, OutOfMemoryError
- JVM 메모리의 이해와 케이스 스터디
- JAVA 메모리 구조와 JAVA OPTION 값 정리
- ECS JVM 인수 전달방법
Author And Source
이 문제에 관하여(ECS OutOfMemoryError: Java heap space), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@enosoup/ECS-OutOfMemoryError-Java-heap-space
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Author And Source
이 문제에 관하여(ECS OutOfMemoryError: Java heap space), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@enosoup/ECS-OutOfMemoryError-Java-heap-space저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)