우분투나 CentOS등을 설치하면 기본 설정으로 설치된 메모리(RAM) 용량과 같은 스왑 파티션(Swap Partition)이 생성됩니다.

스왑 파티션은 디스크 용량 일부를 가상 메모리 공간으로 할당해 실제 메모리 공간이 부족하거나 어플리케이션에 따라 실제 메모리와 스왑 메모리를 혼용해서 사용하게 되는데요.

VULTR나 Linode 같은 VPS 호스팅에서 제공하는 이미지로 리눅스를 설치한 경우 스왑 파티션 생성이 생략되어 설치되는데 $5의 저렴한 플랜(Plan)을 사용하는 경우 물리 메모리가 1GB로 MariaDB 같은 데이터베이스를 조금만 사용해도 메모리가 꽉 차게 됩니다.

VULTR와 Linode는 SSD 디스크를 사용하기 때문에 450M/s 정도의 속도로 스왑 파티션을 사용할 수 있어 부족한 메모리를 어느정도 해소할 수 있습니다.

스왑 파티션 및 파일 확인

free -m
              total        used        free      shared  buff/cache   available
Mem:            989         119         295          13         574         708
Swap:             0           0           0

우선 스왑 파티션이 존재하는지 확인하기 위해 free -m 명령어를 입력해 Swap 파티션의 유무를 확인합니다. 위처럼 Swap 부분이 0으로 나온다면 스왑 파티션이 없다는 것입니다.

swapon -s

리눅스의 스왑 메모리는 파티션이 아닌 파일로 존재할 수도 있습니다. 위 명령어를 통해 스왑 파일이 지정되어 있는지도 확인합니다. 아무런 메시지가 출력되지 않는다면 스왑 파일이 없다는 것입니다.

스왑 파일 생성 및 시스템 등록

fallocate -l 2GB /swapfile

스왑 파티션을 구성해도 되지만 파티션 특성상 디스크 볼륨을 컨트롤 하기 때문에 잘못하면 자료가 몽땅 날라갈 수 있는 위험이 있어 취급하기 쉬운 파일 형태로 구성할 수 있습니다.

위 명령어를 통해 최상위 디렉토리에 사용하고 싶은 용량 크기 만큼 파일을 생성합니다. 필자는 2GB로 지정했습니다.

ll / 명령어로 파일이 생성되었는지 확인합니다.

chmod 600 /swapfile

파일을 시스템에서만 접근이 가능하게 위 명령어로 퍼미션을 설정합니다.

mkswap /swapfile

Setting up swapspace version 1, size = 1.9 GiB (1999994880 bytes)
no label, UUID=79c91d98-7346-4d2f-9786-037580267a14

mkswap /swapfile 명령어로 스왑 포맷 형태로 변환하면 위와 같은 결과를 볼 수 있습니다.

swapon /swapfile

스왑 파일을 시스템에 등록합니다.

free -m
              total        used        free      shared  buff/cache   available
Mem:            989         120         114          13         755         707
Swap:          1907           0        1907

다시 free -m 명령어로 스왑이 제대로 등록되었는지 확인합니다.

/swapfile   none    swap    sw    0   0

마지막으로 재부팅 후에도 시스템에서 스왑 파일을 사용할 수 있게 /etc/fstab 파일을 에디터로 열어 위 항목을 추가합니다.

스왑 파일 삭제

swapoff swapfile

만일 스왑 파일을 삭제하고 싶다면 스왑 사용을 비활성화 합니다.

rm /swapfile

스왑 파일을 삭제한 다음 부팅시 스왑 공간을 사용하지 않게 /etc/fstab에 등록한 항목을 삭제합니다.

1 Comment

  1. Avatar
    이상훈Reply

    해외 VPS 만들고 SWAP 이 없어서 의햐 했는데
    감사합니다. 도움 되었습니다.

Write A Comment