EC2 프리티어를 사용중 CI/CD를 위해 deploy-agent와 docker를 사용하는데 메모리가 부족한 현상이 일어났다.
swap file이란 메모리가 부족할 때 디스크 일부분을 메모리에서 사용하는 방법이다.
더 많은 메모리를 사용할 수 있다는 장점이 있지만, 디스크 공간이기 때문에 성능이 저하된다는 단점이 있다.
sudo dd if=/dev/zero of=/swapfile bs=128M count=16
dd -> 파일 관련 유닉스 명령어
/dev/zero -> 데이터 스토리지 초기화 관련파일
bs -> 블록 크기 지정
count -> 횟수
이렇게 총 2.1GB의 스왑파일 생성을 한다.
sudo chmod 600 /swapfile
sudo swapon /swapfile
/swapfile을 스왑 파티션으로 설정하고, 시스템 메모리 부족 상황에서 /swapfile을 스왑 공간으로 사용할 수 있게 설정한다.
/etc/fstab 파일에 한 줄을 추가한다.
/swapfile swap swap defaults 0 0
fstab은 부팅시에 마운트할 파일 시스템과 파티션을 설정하는 파일이다.
/swapfile을 스왑 파티션으로 설정하고, 부팅시 자동으로 마운트하도록 설정한다.
free 명령어를 통해 할당된 메모리를 확인할 수 있다.
이렇게 되면 시스템이 메모리 부족 상황에서 스왑 공간으로 사용된다.
참고