[Ubuntu] swapfile 생성 및 삭제

 PC의 메모리는 일반적으로 8~32 GB 사이를 사용합니다.

메모리가 부족한 경우 메모리의 일부 내용을 디스크로 스왑(Swap)하게 됩니다.

Windows의 가상 메모리와 같이 디스크의 일부를 메모리처럼 사용하게 됩니다.

여기서는 스왑 중 스왑 파일을 생성하는 방법과 삭제 방법을 알아보겠습니다.

 

1. 스왑 파일/파티션 존재 여부 확인

스왑 파일 생성 전에 스왑 파일이나 스왑 파티션이 존재하는지 먼저 확인합니다.

sudo free -m

그리고 아래의 명령어를 입력해서 swap 관련한 내용이 보이지 않으면 스왑이 설정되지 않은 것입니다.

sudo swapon -s

만약 두 명령어 모두 swap 관련이 보이지 않으면 아래 명령어로 생성합니다.

 

2. 스왑 파일(swapfile) 생성

먼저 스왑 용도로 사용할 파일을 swapfile이라는 이름으로 생성합니다.

sudo fallocate -l 2G /swapfile

명령어의 2G는 2GB를 의미하며 원하는 용량을 입력하면 됩니다.

루트 디렉터리에 swapfile 파일이 생성됩니다.

swapfile

다음으로 생성된 파일의 권한을 수정합니다.

sudo chmod 600 /swapfile

이제 해당 파일이 스왑으로 동작하도록 만들어줍니다.

sudo mkswap /swapfile

아래와 같은 내용이 표시됩니다.

mkswap

마지막으로 아래 명령어를 입력해서 스왑을 활성화시킵니다.

sudo swapon /swapfile

이것으로 스왑이 생성되며 재부팅 이후에도 계속 사용하려면 /etc/fstab 파일을 수정합니다.

sudo nano /etc/fstab

파일 하단에 아래와 같은 내용을 추가하면 됩니다.

/swapfile swap swap defaults 0 0

재부팅 이후에도 swapfile이 정상적으로 동작하는지 확인하면 설정이 완료됩니다.

 

3. 스왑 파일(swapfile) 삭제

스왑 파일은 한 번 설정하면 굳이 삭제할 필요는 없지만 삭제 방법은 다음과 같습니다.

먼저 스왑을 비활성화합니다.

sudo swapoff -v /swapfile

스왑 파일을 생성할 때 /etc/fstab에 추가한 내용을 삭제합니다.

sudo nano /etc/fstab

아래의 추가한 라인을 삭제해줍니다.

/swapfile swap swap defaults 0 0

마지막으로 생성했던 swapfile을 삭제하면 비활성화가 완료됩니다.

sudo rm /swapfile

한 번 스왑을 설정하면 용량이 아주 부족하지 않은 한 굳이 삭제를 할 필요는 없습니다.

 

스왑 파일을 통해서 가용할 수 있는 메모리보다 더 많은 메모리를 사용할 수 있습니다.

속도는 메모리에 비해 느리지만 최근에는 SSD를 사용하기 때문에 이전보다는 더 나은 속도를 보여줍니다.

작업시 메모리가 부족한 경우 스왑파일 생성을 고려해보는 것도 좋습니다.


[swappiness 확인]

ubuntu@ip-172-31-35-3:~$ cat /proc/sys/vm/swappiness

60

ubuntu@ip-172-31-35-3:~$ sysctl vm.swappiness

vm.swappiness = 60

ubuntu@ip-172-31-35-3:~$ sysctl -a | grep swappiness


[swappiness 변경]

ubuntu@ip-172-31-35-3:~$ sudo sysctl vm.swappiness=50

vm.swappiness = 50

ubuntu@ip-172-31-35-3:~$ sudo sysctl -p (영구반영)

ubuntu@ip-172-31-35-3:~$ 


[swappiness 범위]

  • 값의 범위: 0 ~ 100 (기본값: 60)
설명
vm.swappiness = 0스왑 사용안함[1]
vm.swappiness = 1스왑 사용 최소화
vm.swappiness = 60기본값
vm.swappiness = 100적극적으로 스왑 사용
→ 메모리 여유가 충분할 때 성능향상을 위해 vm.swappiness = 10 정도를 권고하는 경우가 있음

댓글

이 블로그의 인기 게시물

[Django Install] 11. Install Python3 for Centos8/RedhatLinux8

[windows] filebeat 스케쥴링 테스트

[Django Install] 9.1 sc제일은행 nginx-django 연결