Размер для 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
Видео
Комментарии