JVM Cannot Allocate memory

2021. 3. 23. 21:24자바

반응형

스프링부트 메모리 DB(H2) 사용하던중에 로컬에서는 잘 되던게

서버에서 기동시 JVM Cannot Allocate memory 에러가 발생했다

 

이유는

* 시스템 물리적 RAM 또는 스왑 공간 부족

* 프로세스 크기 제한 도달

 

해결법

* 시스템 메모리 로드 줄이기

* 물리적 RAM 또는 스왑 공간 늘리기

* 스웹 백킹 저장소가 가득 차 있는지 확인

* 64비트 OS에서 64비트 Java 사용

* Java 힙 크기 줄이기(-Xmx / -Xms)

* Java 스레드 수 줄이기

* Java 스레드 스택 크기 줄이기(-Xss)

* -XX:ReservedCodeCashSize= 를 사용하여 더 큰 코드 캐시 설정

 

Swap 파티셔닝

 

* swap 공간 확인

free -h

* swap 파일 생성, 2G 메모리 할당

touch /var/spool/swap/swapfile

dd if=/dev/zero of=/var/spool/swap/swapfile count=2048000 bs=1024

*권한 부여

chmod 600 /var/spool/swap/swapfile

*파일 포맷을 swap으로 변환하고, swap file로 등록

mkswap /var/spool/swap/swapfile

swapon /var/spool/swap/swapfile

*파일시스템 테이블에 등록

vim /etc/fstab

#swap 추가

/var/spool/swap/swapfile none swap defaults 0 0

swap 추가

* swap 확인

swap 확인

 

참고

velog.io/@adam2/JVM-Cannot-allocate-memory-%EC%97%90%EB%9F%AC

'자바' 카테고리의 다른 글

NICE API JAVA 가이드  (0) 2022.11.22
./gradlew permission denied  (0) 2021.03.24
JSTL Ojbect check type  (0) 2018.10.26
Spring @ResponseBody charset=UTF-8  (0) 2018.10.02
tomcat link folder  (0) 2018.09.18