[ubuntu 22.04 server] 스왑메모리 설정 (swap memory) (feat. rpi4)

yes 2023.05.25 18:48:58

[ubuntu 22.04 server] 스왑메모리 설정 (swap memory) (feat. rpi4)

 

- rpi4, 4G ram 을 사용중인데, 평상시 70% 이상을 상회하는 램 사용율을 보여주고 있습니다.

그래서, 스왑 메모리를 설정 합니다.

image.png.jpg

- 책상속에 사용안하는 usb memory stick, 2G 가 있네요. 이걸 스왑 메모리로 사용하겠습니다.


 

현재 스왑 상태를 확인해 봅니다.

 

sudo swapon --show

내용이 나오지 않습니다. (스왑메모리를 사용하지 않기 때문이죠)

 

 

free -h

메모리 상태를 살펴 봅니다.

 

 

image.png.jpg

 

 

 

 

새로운 명령어 df (disk free) 를 사용해 보겠습니다. (사용가능 공간을 표시해 줍니다.)

df -h

 

image.png.jpg

 

 

새로운 usb memory stick, 2G 를 장착해 봅니다. sdc (sdc1) 으로 잡히네요.

 

image.png.jpg

 

 

 

 

sdc 를 포멧합니다.

sudo mkfs.ext4 /dev/sdc

 

image.png.jpg

 

 

 

스왑메모리로 사용할 공간 디렉토리를 만듭니다.

그리고, 마운트 합니다.

sudo mkdir /vo3

sudo mount /dev/sdc /vo3

lsblk

 

image.png.jpg

 

 

 

 

마운트 된것이 확인 되었으면, 스왑메모리로 할당을 해줘야 합니다.

sudo fallocate -l 1.5G /vo3/swapfile

sdc 용량이 1.9G 로 표시되는데, fallocate 1.9G 로 하면 부족하다고 나옵니다. 그래서 1.5G 로 설정했습니다.

(하지만, 실제 사용량 및 할당량을 보면, 1.9G 파티션 전체를 스왑메모리로 사용하는듯 합니다.)

 

image.png.jpg

 

 

스왑 용량을 크게 입력했더니, 계속 에러가 발생합니다.

 

image.png.jpg

 

 

 

스왑폴더의 속성을 변경해 줍니다.

sudo chmod 600 /vo3/swapfile

mkswap 명령어를 사용해서 세팅을 한 후, swapon 을 해줘야 합니다.

sudo mkswap /vo3/swapfile
sudo swapon /vo3/swapfile

sudo swapon --show

free -h

image.png.jpg

 

 

 

 

실제 사용예 입니다.

swap total 이 1.78G 로 잡혀있습니다.

스왑메모리 사용량은 매일 매일 증가되고 있습니다. (사진은 둘째날)

 

image.png.jpg

 

 

둘째날 스왑메모리는 증가하고, 원래 메모리는 감사했습니다. (MEM ; 72% -> 66%)

 

image.png.jpg

 

 

 

 

재부팅 하거나, 종료 후 다시 시작하면, 위에서 세팅했던 swap memory 설정이 모두 사라 집니다.

그래서, 영구적으로 사용할 수 있도록 해야 합니다. 

 

1. 우선 스왑메모리로 사용할 usb stick 을 영구 마운트 해야 합니다. ( /etc/fstab 에 기록)

단, 여러개 외부 저장 장치를 사용할 경우, 순서를 알아야 합니다. (본인은 3개 usb 메모리 사용, 그중 1개를 스왑메모리로 사용)

 

image.png.jpg

 

위 사진과 같이, 재부팅 하면, sda, sdb, sdc 로 '외부usb 장치' 순서가 정해 집니다.

(원래 32G 짜리 2개를 먼저 사용했고, 최근에 2G 짜리 메모리를 스왑 하려고 설치 했으나, 순서가 바뀌었네요.)

그래서, fstab 에도 수정을 해야 합니다.

 

sudo nano /etc/fstab

 

 

image.png.jpg

 

즉, sda 는 그대로, sdb 와 sdc 를 바꿔야 했습니다.

그리고, swap 으로 사용하려고 했던, sdb 를 마운트 하고, 스왑 설정을 합니다.

 

/dev/sda /volume1 ext4 defaults,noatime,nofail 0 0
/dev/sdb /vo3 ext4 defaults,noatime,nofail 0 0       #스왑으로 사용할 메모리스틱 마운트
/dev/sdc /volume2 ext4 defaults,noatime,nofail 0 0


/vo3/swapfile none swap defaults 0 0       #스왑설정

 

 

재부팅 후, 확인 해 봅니다.

free -h

lsblk

image.png.jpg

 

마운트도 잘 되었고, 스왑 설정도 잘 되어 있습니다.