DevOps & SRE/Linux

[Linux] 리눅스 스왑 파티션 생성 및 삭제하기

반응형
AWS EC2 프리티어로 쓰다 보면 메모리가 1GiB라 자주 인스턴스가 중지되는 현상이 발생합니다.
이때 스왑 파티션을 할당해두면 RAM이 아닌 디스크 용량 일부를 가상 메모리 공간으로 할당해서 실제 메모리 공간이 부족하면 혼용해서 사용하게 됩니다.

다음은 스왑 설정하는 방법입니다.

Swap

스왑 파티션이란?

스왑 파티션은 메모리 (RAM)가 부족할 때, 추가적으로 실행되는 프로그램은 메모리가 아닌 스왑 파티션에서 실행.

메모리 공간이 부족할 때 프로그램이 실행 가능하도록 예비 공간의 역할을 수행.


권장되는 스왑 공간 크기

  • RAM ≤ 2GB일 경우: RAM * 2배
  • 2GB < RAM < 32GB 일 경우: 4GB + (RAM - 2GB)
  • RAM ≥ 32GB일 경우, RAM * 1배

샘플 서버 환경

참고로 아래 진행하는 환경은, EC2 t2 micro로, 1GB의 RAM의 환경에서 진행합니다.
(아래에 보시다시피, 스왑설정이 되어있지 않은 상태입니다!)

# swapon -s : 스왑 상태를 확인하는 명렁어

$ sudo swapon -s 

# free: 메모리 상태를 확인하는 명령어.

$ free

total        used        free      shared  buff/cache   available
Mem:        1002108      503372      163032         788      335704      348240
Swap:             0           0           0

스왑 파티션 생성하기

1. 루트 파일 시스템에 스왑파일 생성합니다.

$ sudo dd if=/dev/zero of=/swapfile bs=128M count=16

# 위의 내용은 128M씩 16번을 /dev/zero로 부터 읽어서 /swapfile에 저장하는 명령어 
# (참고로 128M * 16 = 2GB)

 

2. 스왑파일에 대한 권한을 부여합니다.

$ sudo chmod 600 /swapfile

# chomd: /swapfile에 owner에게 rw(읽기, 쓰기) 권한을 부여하는 명령어. (other, group 권한 x)

 

3. 스왑 영역 설정을 설정합니다.

$ sudo mkswap /swapfile

# mkswap [file]: 스왑 파티션을 생성하는 명령어.

 

4. 스왑 공간에 스왑 파일을 추가합니다.

$ sudo swapon /swapfile

# swapon [file]: 스왑파일을 활성화하는 명령어.

 

5. 스왑 공간을 확인해보겠습니다.

$ sudo swapon -s

Filename                                Type            Size    Used    Priority
/swapfile                               file            2097148 0       -2

# swapon -s : 스왑 상태를 확인하는 명렁어

$ free

total        used        free      shared  buff/cache   available
Mem:        1002108      503372      163032         788      335704      348240
Swap:       2097148           0     2097148

# free: 메모리 상태를 확인하는 명령어.

 

6. 부팅시, 스왑 파일을 활성화하도록 설정합니다.

$ sudo vim /etc/fstab  #/etc/fstab 파일을 열어

/swapfile swap swap defaults 0 0 # 내용을 추가한다.

# /etc/fstab: 리눅스에서 FileSystem 정보를 저장하고 있는 파일이며,
# 부팅시 마운트 정보를 가지고 있음.

# [파일시스템장치] [마운트포인트] [파일시스템 종류]    [옵션] [dump설정] [파일점검옵션]
#   /swapfile         swap           swap        default    0         0

반대로 스왑 파티션을 제거하는 방법

1. 할당된 스왑공간을 제거합니다.

$ sudo swapoff /swapfile

 

2. swapfile을 제거합니다.

$ sudo rm -rf /swapfile

 

 

3. 부팅시, 스왑 파일을 활성화하도록 설정한 것을 지웁니다.

$ sudo vim /etc/fstab

/swapfile swap swap defaults 0 0 # 내용을 지운다.

 

 

반응형

'DevOps & SRE > Linux' 카테고리의 다른 글

RedHat 계열 리눅스에서 default jdk 버전 변경 방법  (0) 2024.02.02