Создание SWAP в ОС Linux (Ubuntu, Debian, CentOS, AlmaLinux)

В целом для всех операционных систем семейства Linux механизм добавления SWAP одинаковый. Проверяем, подключен ли SWAP: Если вывод пустой, то SWAP-а в системе нет. Если вывод выглядит примерно так: Значит, SWAP уже подключен. В нашем случае его размер равен 512 МБ. Также проверим наличие SWAP с помощью команды free: Вывод будет примерно таким: Здесь мы…


В целом для всех операционных систем семейства Linux механизм добавления SWAP одинаковый.

Проверяем, подключен ли SWAP:

swapon --show

Если вывод пустой, то SWAP-а в системе нет. Если вывод выглядит примерно так:

NAME  TYPE   SIZE    USED  PRIO
/swapfile          file       512M   0B        -2

Значит, SWAP уже подключен. В нашем случае его размер равен 512 МБ.

Также проверим наличие SWAP с помощью команды free:

free -h

Вывод будет примерно таким:

          total    used    free    shared  buff/cache   available

Mem:      1.9Gi    69Mi    1.7Gi   2.0Mi   128Mi         1.7Gi

Swap:     512Mi      0B    512Mi

Здесь мы видим, что SWAP есть и его размер 512МБ. В случае его отсутствия строки Swap не будет.

Перед созданием SWAP обязательно нужно проверить, есть ли свободное место на диске:

df -h

Смотрим вывод и видим, что на диске свободно 36 ГБ. Если на диске мало места, перед добавлением SWAP необходимо очистить его либо увеличить объём диска. Для работоспособности системы необходимо минимум 5% свободного дискового пространства (либо больше, в зависимости от особенностей ваших проектов). После добавления SWAP раздел подкачки будет занят, имейте это ввиду при расчётах оставшегося свободного места на диске.

Filesystem  Size     Used    Avail   Use% Mounted on
udev        966M 0          966M   0%     /dev
tmpfs       199M   596K   199M   1%     /run
/dev/vda2    40G     1.9G    36G     5%     /
tmpfs       994M 0          994M   0%     /dev/shm
tmpfs       5.0M 0          5.0M    0%     /run/lock
tmpfs       994M 0          994M   0%     /sys/fs/cgroup
tmpfs       199M 0          199M   0%     /run/user/0

Сначала рассмотрим случай, когда SWAP в системе нет. Создаём файл для SWAP размером 2 ГБ:

dd if=/dev/zero of=/swapfile bs=1M count=2048

Вывод будет таким:

2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 5.2341 s, 410 MB/s

Данная команда создаст файл /swapfile размером 2048 мегабайт. Нужно больше или меньше — можно увеличить или уменьшить значение count.

Чтобы никто не мог читать или править файл, кроме владельца — root, устанавливаем права на него:

chmod 600 /swapfile

Проверим, что права выставлены верно:

ls -la /swapfile

Вывод должен быть таким (rw для пользователя, владелец и группа root, размер 2 ГБ):

-rw------- 1 root root 2147483648 Dec 18 19:05 /swapfile

Форматируем файл под swap:

mkswap /swapfile

Вывод будет примерно таким:

Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=38e12a0a-58ea-4bc5-b0f9-58a29a1dd8db

Включаем SWAP:

swapon /swapfile

После проверим, что SWAP включен и его размер соответствует тому, что мы указывали:

free -m
            total    used     free   shared  buff/cache   available

Mem:        1977     113      65     2       1799         1691

Swap:       2047       0      2047
swapon --show
NAME  TYPE SIZE USED PRIO

/swapfile file   2G   0B   -2

Готово. Мы добавили SWAP в систему.

Автоматическое подключение SWAP после перезагрузки
Далее сделаем так, чтобы SWAP подключался автоматически после перезагрузки системы. Чтобы SWAP включался при загрузке, нужно добавить его в /etc/fstab.

Добавляем в конец файла /etc/fstab строку:

/swapfile    none    swap    sw   0  0 

Конец файла /etc/fstab будет выглядеть примерно так:

<file system>   <mount point>   <type>  <options>             <dump>  <pass>


/dev/vda2       /               ext4     errors=remount-ro     0       1

/swapfile       none            swap     sw                    0       0

После этого можно перезагрузить VDS и проверить наличие SWAP командой free -m.

Должно быть что-либо вида:

Swap:       2048       0    2048

Изменение SWAP
Рассмотрим случай, когда в системе уже есть SWAP, и нам нужно его изменить.

swapon --show
/swapfile file 256M   0B   -2

Видим, что у нас в /swapfile 256 МБ, а нам нужно 2 ГБ. Как уже писали ранее, проверяем, что на накопителе есть свободное место с помощью команды df -h.

Далее выключаем имеющийся файл подкачки /swapfile:

swapoff /swapfile

Проверяем с помощью swapon —show. Важно, что при отключении SWAP не должен использоваться системой. В противном случае можно отключить некоторые сервисы, которые потребляют ОЗУ, и после увеличения SWAP включить их обратно.

Меняем размер файла подкачки уже знакомой командой:

dd if=/dev/zero of=/swapfile bs=1M count=2048

Далее инструкция такая же, как и при добавлении SWAP, только в нашем случае /swapfile уже имеет правильные права. Просто проверим, что это так:

ls -la /swapfile
-rw------- 1 root root 2147483648 Dec 18 20:24 /swapfile

Помечаем /swapfile как файл подкачки:

mkswap /swapfile

И активируем SWAP:

swapon /swapfile

Проверяем, что SWAP увеличился, а также проверяем файл /etc/fstab:

swapon --show
cat /etc/fstab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *