
EC2 스펙이 매우 낮은 경우 가끔 빌드를 하거나 테스트를 수행할 때 메모리 부족으로 인하여 EC2가 먹통이 되는 현상이 자주 일어나는데, 이럴 땐 스왑 메모리 설정을 해주어 사용할 수 있는 메모리를 늘려줄 수 있다. 개인적으로는 사이드 프로젝트를 배포할 때 EC2 인스턴스를 생성하고 필수적으로 해주는 설정이다.
스왑메모리란?
스왑메모리는 컴퓨터 시스템에서 물리적인 RAM이 부족할 때, 디스크의 일부를 임시 메모리 공간으로 사용하는 기능을 말한다.
주로 운영 체제의 가상 메모리 관리에서 중요한 역할을 한다.
- 스왑 메모리는 RAM이 부족할 경우 동작한다. 시스템이 실행 중인 프로그램이나 프로세스가 사용할 수 있는 물리적인 RAM이 부족하면, 덜 자주 사용되는 데이터를 디스크의 스왑 공간으로 옮긴다. 이렇게 하면 RAM이 더 중요한 작업에 사용될 수 있다.
- 스왑 공간은 보통 디스크의 특정 영역에 설정된다. 이는 전용 스왑 파티션일 수도 있고, 파일 시스템 내의 스왑 파일일 수도 있다.
- 메모리 페이지가 RAM에서 스왑 공간으로 옮겨지는 작업을 페이지 아웃이라고 한다. 스왑 공간에 있던 데이터를 다시 RAM으로 가져오는 작업은 페이지 인 이라고 한다.
디스크의 속도는 RAM보다 훨씬 느리기 때문에, 스왑 메모리를 자주 사용하는 시스템은 성능이 크게 저하될 수 있다. 반면에 스왑 메모리를 사용하면 RAM이 부족한 상황에서도 시스템이 멈추지 않고 동작을 계속할 수 있다.
스왑메모리 설정 방법
아래의 명령어를 EC2에서 순차적으로 실행하면 스왑 메모리 설정을 할 수 있다.
# swap 파일을 생성해준다. (메모리 상태 확인 시 swap이 있었지만 디렉토리 파일은 만들어줘야한다.)
$ sudo mkdir /var/spool/swap
$ sudo touch /var/spool/swap/swapfile
$ sudo dd if=/dev/zero of=/var/spool/swap/swapfile count=2048000 bs=1024
# swap 파일을 설정한다.
$ sudo chmod 600 /var/spool/swap/swapfile
$ sudo mkswap /var/spool/swap/swapfile
$ sudo swapon /var/spool/swap/swapfile
# swap 파일을 등록한다.
$ sudo vi /etc/fstab
# 파일이 열리면 해당 파일 아래쪽에 하단 내용 입력 후 저장
# 입력 할 수 있도록 하는 명령어 -> i
# 파일 수정 후 저장하는 명령어-> esc키 누른 후 :wq 입력 후 엔터를 눌러 저장
$ /var/spool/swap/swapfile swap swap defaults 0 0
# 메모리 상태 확인
$ free -h
free -h 명령어 실행 시 아래와 같이 Swap 부분에 스왑 메모리가 설정된 것이 확인되면 설정이 잘 된 것이다.

'개발 > DevOps' 카테고리의 다른 글
Jenkins Pipeline Script로 슬랙에 배포 알림 메세지 보내기(2) - 스크립트 작성 (8) | 2024.09.01 |
---|---|
Jenkins Pipeline Script로 슬랙에 배포 알림 메세지 보내기(1) - 토큰발급, 플러그인 설치 및 설정 (0) | 2024.08.19 |
개발을 하며 만났던 문제들과 해결 과정, 공부한 내용 등을 기록합니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!