Linux: добавить swap-file

Автор: | 25/12/2018

На AWS EC2 AMI-образ Debian 9 идёт без активного swap.

При желании и необходимости – его можно легко добавить самому.

Создаём файл:

[simterm]

root@bttrm-stage-app-1:/home/admin# fallocate -l 1G /data/swapfile

[/simterm]

Задаём права доступа:

[simterm]

root@bttrm-stage-app-1:/home/admin# chmod 600 /data/swapfile

[/simterm]

Выполняем mkswap:

[simterm]

root@bttrm-stage-app-1:/home/admin# mkswap /data/swapfile 
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=64508b2d-cdd4-436e-9ee9-70ea8b1cc669

[/simterm]

Включаем swap:

[simterm]

root@bttrm-stage-app-1:/home/admin# swapon /data/swapfile

[/simterm]

Проверяем его:

[simterm]

root@bttrm-stage-app-1:/home/admin# swapon --show
NAME           TYPE  SIZE USED PRIO
/data/swapfile file 1024M   0B   -1

[/simterm]

Что бы увеличить размер файла подскачки – достаточно его отключить, и увеличить размер самого файла, например с помощью dd.

Отключаем swap:

[simterm]

root@bttrm-stage-app-1:/home/admin# swapoff -a

[/simterm]

Добавляем 1 гигабайт к размеру файла:

[simterm]

root@bttrm-stage-app-1:/home/admin# dd if=/dev/zero of=/data/swapfile bs=1M count=1024 oflag=append conv=notrunc
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.623727 s, 1.7 GB/s

[/simterm]

Выполняем mkswap ещё раз:

[simterm]

root@bttrm-stage-app-1:/home/admin# mkswap /data/swapfile
mkswap: /data/swapfile: warning: wiping old swap signature.
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=c44ab66e-a64f-403c-bdd0-59203499010e

[/simterm]

Подключаем его:

[simterm]

root@bttrm-stage-app-1:/home/admin# swapon /data/swapfile

[/simterm]

Проверяем:

[simterm]

root@bttrm-stage-app-1:/home/admin# swapon --show
NAME           TYPE SIZE USED PRIO
/data/swapfile file   2G   0B   -1

[/simterm]

И последним – обновляем /etc/fstab:

...
# swap
/data/swapfile none  swap  sw 0  0

Готово.