0%

Spring boot로 만든 jar를 수행 시 'There is insufficient memory for..' 에러

JVM 메모리 문제?

저번 회사에서 프로젝트를 진행하면서 AWS의 EC2에 두 개의 Spring-Boot로 만든 서비스를 운영하였다.
EC2의 자세한 스팩은 공개하기 힘들지만, 2개의 jar를 구동하니 하나가 자꾸 아래와 같은 메세지를 내면서 종료되었다.

1
2
3
4
5
6
7
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f5533c00000, 65536, 1) failed; error='메모리를 할당할 수 없습니다' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 65536 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /home/ec2-user/hs_err_pid3719.log
# [ timer expired, abort... ]

그래서 jvm 메모리 문제인 것 같아서 처음에는 아래와 같이 처리를 했었다.

java -jar -Xmx1024m –Xms1024m SomePro.jar

이렇게 해도 계속 죽는게 문제였다.
그래서 몇 가지 검색을 한 결과 아래와 같은 방법으로 해결하였다.

java -XX:MaxMetaspaceSize=512m -XX:MetaspaceSize=256m -jar SomePro.jar

이것에 대한 내용은 여기 를 참고!