Размер для SWAP
Ниже приведены рекомендации по размерам для SWAP в зависимости от ситуации.
| ОЗУ | SWAP | SWAP (если гибернация) |
|---|---|---|
| 2ГБ или меньше | ОЗУ * 2 | ОЗУ * 3 |
| от 2ГБ до 8ГБ | ОЗУ | ОЗУ * 2 |
| от 8ГБ до 64ГБ | меньше 4ГБ | 1.5 от объёма ОЗУ |
| больше 64ГБ | меньше 4ГБ | не рекомендуется использовать гибернацию |
Во время гибернации перед тем как заснуть ваш компьютер перемещает данные с ОЗУ в SWAP. Ну а когда вы его включаете после гибернации то наоборот со SWAP в ОЗУ. Поэтому мы видим что в колонке с гибернацией SWAP всегда больше чем ОЗУ.
Создание раздела SWAP
Для создания раздела SWAP мы будем использовать уже нам знакомую утилиту parted, о которой я писал ранее.
Для начала выбираем диск, на котором нужно создать раздел со SWAP. Для примера создадим SWAP раздел размером 4ГБ на диске /dev/sdd.
Просмотр всех дисков в ОС
sudo parted -l
Запись Error: /dev/sdd: unrecognised disk label намекает как раз на то что это новый диск.
Создаём таблицу разделов gpt на диске sdd
sudo parted /dev/sdd mklabel gpt
sudo parted /dev/sdd p
Partition Table: gpt
Создаём сам SWAP раздел на диске sdd
sudo parted /dev/sdd mkpart swap-part linux-swap 1MiB 4GiB
sudo parted /dev/sdd p
Если вы не поняли, что за что отвечает можно посмотреть видео в низу или вызвать parted в интерактивном режиме parted /dev/sdd mkpart.
Если вы собираетесь это делать в скрипте не забываем о udevadm settle, о нём я писал тут.
Форматируем SWAP раздел
Если обычный раздел мы форматируем, используя mkfs то в ситуации со SWAP придётся использовать mkswap.
sudo mkswap /dev/sdd1
В выводе нам сразу предоставят UUID раздела, мелочь конечно, но приятно.
UUID=4a0c82fc-849f-444f-bc8d-52748ffa88e1
Активация SWAP раздела
На данный момент мы только создали этот SWAP раздел, но наша система его еще не использует. Этим мы и займёмся в этой главе.
Для активации используется команда swapon, а для деактивации - swapoff.
Временная активация
Под временной активацией понимается что вы активируете SWAP только для активной ОС, т.е. если ваш компьютер перезагружается созданный вами SWAP снова становится неактивным (по аналогии с mount).
Приступим к активации:
sudo free
Swap: 2129916 0 2129916
sudo swapon /dev/sdd1
sudo free
Swap: 6323192 0 6323192
Если есть желание проверить что активация действительно временная можно перезагрузить компьютер и снова выполнить free (показывает информации по виртуальной памяти).
Постоянная активация
Теперь сделаем всё по уму, так как надо. Для того чтобы у нас не сбрасывалась активация делаем запись в fstab как мы уже это делали в статье ранее про parted.
sudo vim /etc/fstab
UUID=4a0c82fc-849f-444f-bc8d-52748ffa88e1 swap swap defaults 0 0
sudo systemctl daemon-reload
sudo swapon -a
Последняя команда сделает активацию всех записей в /etc/fstab с меткой swap. UUID раздела нам вывела команда mkswap, но если вы её потеряли не беда выполняем команду:
sudo lsblk --fs /dev/sdd1
Теперь при загрузке ОС активация SWAP будет проходить автоматически.
Второе значение стоит swap, хотя если выполнить команду man fstab там написано, что для SWAP можно и none. Но RedHat не рекомендует так делать так как становится труднее debug.
Приоритет SWAP раздела
Если мы выполним команду swapon то мы увидим что у нас несколько SWAP разделов и у них есть приоритетность (поле PRIO). В данном случае первым стоит раздел, который был создан при установке ОС.
sudo swapon
NAME TYPE SIZE USED PRIO
/dev/dm-1 partition 2G 0B -2
/dev/sdd1 partition 4G 0B -3
Представим ситуации что я хочу, чтобы сперва страницы памяти перемещались на раздел /dev/sdd1. Для этого в файле /etc/fstab вместо defaults я могу прописать pri=1, или дописать к defaults.
sudo vim /etc/fstab
UUID=4a0c82fc-849f-444f-bc8d-52748ffa88e1 swap swap defaults,pri=1 0 0
sudo systemctl daemon-reload
sudo swapoff /dev/sdd1
sudo swapon -a
Или если используете команду swapon:
sudo swapon /dev/sdd1 -p 1
sudo swapon -a
Видео


Комментарии