본문 바로가기
매뉴얼

우분투(Ubuntu) 스왑 메모리 설정

by 기획자 김맥스 2024. 11. 9.
우분투(Ubuntu) 스왑(Swap) 메모리 설정

우분투(Ubuntu) 스왑 메모리를 만난 이유

워드프레스 홈페이지를 만들던 도중 홈페이지가 갑자기 안들어가지는 현상이 발생했다.

 

AWS Free Tier로 제공되는 t2.nano를 사용중이라 서버가 작은건 감안을 해도 아직 글을 많이 쓴것도 아니고 트래픽이 발생하는 것도 아닌데 서버가 자꾸 터지는게 이상했다.

 

여러방면으로 확인을 해보니 아무리봐도 메모리 부족인 것 같았다.  AWS t2.nano 는 무료 하드 용량 30Gb를 제공하지만 메모리는 1Gb로 매우 짜다. 워드프레스 플러그인 몇개 동작시키면 메모리가 버티지 못해 서버가 죽어버렸다.

 

서버가 작아도 이렇게 작은줄은 몰랐다 !! 돈을 내고 서버를 늘려야 하나 고민했다. 하지만 아직 수익이 나지도 않은 상태에서는 너무 위험했다.

 

회사 출근해서 개발자님에게 SOS를 요청했는데 의외로 간단하게 해결되었다. Swap 메모리라는 개념에 대해 알려주셨다.

 

스왑 메모리의 역할과 개념

  1. RAM 부족 시 보조 메모리 역할: RAM은 매우 빠르지만 용량이 한정되어 있습니다. 실행 중인 프로그램이 RAM을 모두 사용할 경우, 추가적인 메모리 공간이 필요해지면 시스템이 스왑 메모리를 사용하여 디스크 공간을 보조 메모리로 할당합니다.

  2. 디스크를 RAM처럼 사용: 디스크는 RAM보다 훨씬 느리지만, 스왑 메모리는 일시적으로 비활성화된 프로세스의 데이터를 디스크에 저장함으로써 RAM을 해방시킵니다. 이렇게 하면, RAM은 현재 실행 중인 중요한 프로그램에 더 많은 리소스를 할당할 수 있습니다.

간단히 말해 메모리가 부족하면 하드디스크 용량 일부를 할당해 메모리처럼 쓰는 것이다.

 

우분투(Ubuntu) 스왑 메모리 설정 방법

1. 스왑 파일 생성

1. 스왑 파일 크기 선택 스왑 파일의 크기를 미리 결정해야 한다. 예를 들어, 4GB의 스왑 파일을 생성하려면 다음 단계를 따라해보자

 

4GB 이하의 RAM을 사용하는 경우, 스왑 메모리는 RAM 크기의 2배 정도가 적합하다고 한다.

8GB 이상의 RAM 사용하는 경우, 스왑 메모리는 RAM 크기의 1 또는 이하로 설정해도 된다.

sudo fallocate -l 4G /swapfile

또는 fallocate 지원되지 않는 경우, dd 명령을 사용할 있다.

 

sudo dd if=/dev/zero of=/swapfile bs=1M count=4096

 

2. 스왑 파일 권한 설정 스왑 파일의 권한을 변경하여, 오직 root 사용자만 해당 파일을 읽고 있도록 설정

sudo chmod 600 /swapfile

 

3. 스왑 파일을 스왑 영역으로 설정

sudo mkswap /swapfile

 

4. 스왑 파일 활성화

sudo swapon /swapfile

 

5. 스왑 활성화 확인 스왑이 제대로 활성화되었는지 확인하려면 free -h 명령어를 사용하자

sudo free -h

 

정상적으로 스왑 메모리가 설정된 모습

이렇게만 셋팅하면 서버가 재부팅 되었을 시 스왑 메모리가 초기화 된다. 재부팅 시 자동으로 스왑이 활성화 되도록 처리 해주어야 한다.

2. 부팅 시 자동으로 스왑 활성화

스왑을 부팅할 자동으로 활성화하려면 /etc/fstab 파일에 스왑 파일을 추가해야 한다.

 

1. fstab 파일 수정

sudo nano /etc/fstab

 

fstab 파일을 열고 아래 라인을 추가

/swapfile none swap sw 0 0

 

저장 후 종료 (Nano에서는 Ctrl+X, Y, Enter)

이제 Ubuntu에서 스왑 파일을 설정하고 부팅 시마다 자동으로 활성화되도록 구성되었다.

 

안그래도 좁은 우리의 원룸을 조금은 쾌적하게 있게 되었다.

 

반응형