리눅스 스왑(SWAP) 메모리 추가 설정 방법

리눅스

우분투나 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로 지정했습니다.

- 리눅스 스왑(SWAP) 메모리 추가 설정 방법

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 명령어로 스왑이 제대로 등록되었는지 확인합니다.

- 리눅스 스왑(SWAP) 메모리 추가 설정 방법

/swapfile   none    swap    sw    0   0

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

스왑 파일 삭제

swapoff swapfile

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

rm /swapfile

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

1 댓글. Leave new

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Fill out this field
Fill out this field
유효한 이메일 주소를 입력해주세요.

Linux 크론탭 Crontab 사용법
Linux 크론탭(Crontab) 사용법
크론탭(Crontab)은 리눅스에서 정해진 시간에 스크립트나 데몬 등을 실행하는 스케줄러(Scheduler) 기능입니다. 특정 시간, 요일에 특정한 작업을 실행해야 하거나 반복 작업을 할…
우분투 컴퓨터 이름 Hostname 변경하는 방법
우분투 컴퓨터 이름 hostname 변경하는 방법
우분투에서 터미널을 열거나 네트워크 공유를 사용해야할 때 표시되는 컴퓨터 이름은 hostname이라고 불리며 hostname을 변경하면 우분투에 표시되는 컴퓨터 이름을 지정할 수…