공유기에 OpenWrt를 설치하여 사용하다보면 메모리가 부족한 경우가 있다. 그래서 장착된 USB외장하드에 스왑파일을 생성하여 스왑메모리로 활용하는 방법에 대해 포스팅해본다.


1. 패키지 설치

우선 아래와 같이 패키지를 설치한다.

root@OpenWrt:/# opkg install swap-utils
Installing swap-utils (2.21.2-1) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/swap-utils_2.21.2-1_ar71xx.ipk.
Installing libblkid (2.21.2-1) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/libblkid_2.21.2-1_ar71xx.ipk.
Installing libuuid (2.21.2-1) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/libuuid_2.21.2-1_ar71xx.ipk.
Configuring libuuid.
Configuring libblkid.
Configuring swap-utils.
root@OpenWrt:/#


2. 스왑파일 생성

다음 명령어로 스왑파일을 생성한다. 이미 외장하드가 /mnt/usbdrive에 마운트된 상태를 전제로 한다. 당연히 /mnt/usbdrive 폴더 밑에 'swap'디렉터리는 아래 명령어 전에 생성해야 한다.

root@OpenWrt:/# dd if=/dev/zero of=/mnt/usbdrive/swap/swapfile count=100000
100000+0 records in
100000+0 records out
root@OpenWrt:/#

이 과정은 시간이 좀 걸린다. 1000블록당 512KB가 잡히는데, 100000블록은 51200KB가 잡히게 된다. 


3. 스왑공간 생성

다음과 같이 스왑공간을 생성한다.

root@OpenWrt:/# mkswap /mnt/usbdrive/swap/swapfile
Setting up swapspace version 1, size = 49996 KiB
no label, UUID=2b46f45f-1706-42dc-8285-59897a4fdd62
root@OpenWrt:/# 


4. 스왑메모리 사용

아래와 같이 스왑메모리를 올린다.

root@OpenWrt:/# swapon /mnt/usbdrive/swap/swapfile


5. 스왑메모리 확인

다음과 같이 스왑메모리가 제대로 잡혔는지 확인해 본다.

root@OpenWrt:/# free

totalusedfreesharedbuffers
Mem:6167220068416040608
-/+ buffers:1946042212
Swap:49996049996


6. 부팅시 자동 설정

공유기 부팅시 스왑메모리를 잡고 싶으면 다음과 같이 입력하여 파일을 편집한다.

root@OpenWrt:~# vi /etc/rc.local


아래와 같이 외장하드 마운트와 스왑메모리 사용 명령어를 추가해주면 부팅시 자동으로 수행된다.

# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

mount -t ext4 /dev/sda1 /mnt/usbdrive
swapon /mnt/usbdrive/swap/swapfile

exit 0


7. 스왑메모리 해제

스왑메모리 사용을 해제하려면 다음과 같이 입력한다.

root@OpenWrt:~# swapoff /mnt/usbdrive/swap/swapfile


그리고 free 명령으로 확인해 보면 스왑메모리가 해제되어 있음을 볼 수 있다.

root@OpenWrt:~# free

totalusedfreesharedbuffers
Mem:6167258252342001228
-/+ buffers:570244648
Swap:000


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by Life 스토리
TAG ,


티스토리 툴바