Back End/AWS
[AWS] 메모리부족 해결하기
DevPing9_
2022. 2. 10. 12:54
* 모든 명령어는 ec2-linux ssh 환경에서 실행되었습니다.
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f5dbbe00000, 262144, 0) failed; error='메모리를 할당할 수 없습니다' (errno=12) 에러
저처럼 프리티어를 사용하시다보면, 위의 문구를 조우하게 되실 수 있다 ㅠ_ㅠ....
메모리가 부족하다는 건데... 걱정하지말자...!
SWAP 파일로 해결 할 수 있다!!
세상에 OS를 공부할 때 배운 메모리 스와핑을 내가 설정할 수 있다늬 !!! 씐난다 !!!
*SWAP 파일이란?
OS에 의해서 가상메모리로 사용되는 파일.
메모리가 부족할 경우 응용프로그램중 일부분을 임시 파일에 저장하여 사용.
* free -h 로 메모리 사용량 확인
(/proc/meminfo 에서 메모리정보를 가져와 보여준다)

... 31M 만 사용가능했니...?
# SWAP 파일 생성 및 적용
# 비어있는 파일을 만든다. (해당 파일이 만들어진 폴더는 /root 이다. 파일명은 swapfile로 되어있다.)
dd if=/dev/zero of=/root/swapfile bs=1k count=2000000 conv=excl
# 만든 빈 파일에 권한 설정을 해준다. (아무나 수정 못하게끔!!)
chmod 600 /root/swapfile
# 만든 빈 파일을 스왑파일로 설정한다.
mkswap /root/swapfile
# 스왑파일을 활성화 한다.
swapon /root/swapfile
* 권한설정
작성한 사용자만 스왑파일을 수정할 수 있도록 설정

* 스왑파일로 설정 (mkswap) & 설정 후 메모리 상태
SWAP 공간이 생겼다 ☆

# 재부팅 시 swap파일을 적용되도록 설정하기
위의 과정까지만 진행하고 reboot 명령어로 재부팅하면 swap 메모리 공간이 또 0으로 되어있다 ㅠㅠ...
* 파일 시스템 테이블에 등록하기 (fstab)
sudo vi /etc/fstab
/root/swapfile swap swap auto 0 0 을 추가 해준다.

# 재부팅 후 SWAP 메모리가 적용된 모습

# Reference
>> swap file 에 대한 자세한 포스팅
Linux Swap file 만들기
하드디스크 일부 영역을 메모리로 사용하는 것을 스왑(Swap) 이라고 한다. 과거, 메모리가 비싸던 시절에 흔하게 사용하던 방법이다. (요즘엔 사무용 PC도 고용량램을 사용하는 시대라서 스왑을
blog.lael.be
728x90