Skip to main content

Swap Memory


Swap Space 만들기

Swap file

sudo dd if=/dev/zero of=<swapfile> bs=<blockSize> count=<blockCount>
sudo chmod 600 <swapfile>
sudo mkswap <swapfile>

ZRAM

sudo modprobe zram [num_devices=<num>]
sudo zramctl <option> [<device>]
  • <option>
    • -f | --find: free device를 찾습니다.
    • -s | --size <size>: device size를 설정합니다.(압축 되기 전 크기)
    • -a | --algorithm <alg>: compression algorithm을 설정합니다.
zramctl
sudo mkswap <device>
info

udev를 사용하여 zram을 설정할 수 있습니다.

/etc/modules-load.d/zram.conf
zram
/etc/udev/rules.d/99-zram.rules
KERNEL=="zram0", ACTION=="add", ATTR{comp_algorithm}="lzo-rle", ATTR{disksize}="2G", RUN="/sbin/mkswap /dev/%k"
/etc/systemd/system/zram.service
[Unit]
Description=Swap with zram
After=multi-user.target

[Service]
RemainAfterExit=true
ExecStartPre=/sbin/mkswap /dev/zram0
ExecStart=/sbin/swapon -p 10 /dev/zram0
ExecStop=/sbin/swapoff /dev/zram0

[Install]
WantedBy=multi-user.target
sudo systemctl enable zram

Swap ON/OFF

sudo swapon <option> <spec>
  • <option>
    • -p | --priority <priority>
      • 0 ~ 32767 값을 설정 할 수 있습니다.
      • 큰 값일 수록 우선순위가 높습니다.
    • -s | --summary: swap 상태를 출력합니다.
sudo swapoff <spec>
/etc/fstab
<spec> none swap defaults[,<option>] 0 0
  • <option>
    • pri=<priority>: swap 우선순위

vm.swappiness