Создайте раздел linux swap

Раздел подкачки в Linux (SWAP раздел)

Раздел подкачки в Linux или SWAP раздел позволяет использовать жесткий диск для сохранения информации, которая должна сохраняться в оперативной памяти и при этом в оперативную память не помещается.

Данные, которые должны попадать в RAM при ее нехватке будут занимать пространство выделенное под SWAP.

Время обращения к данным, которые размещены в разделе подкачки, и время получения ответа несколько увеличится, но присутствие раздела позволит избежать системных сбоев.

Операционная система распознает, что скорость работы с данными в разделе подкачки ниже и будет задействовать его для более старых данных, храня те, к которым обращения происходят чаще всего непосредственно в RAM.

SWAP раздел будет использоваться системой при нехватке оперативной памяти и в качестве оперативной памяти

раздел подкачки в Linux

Раздел подкачки в Linux — частое решение в ситуациях, когда на сервере скриптам периодически не хватает оперативной памяти и возникают ситуации OOM.

Какой объем выделить под SWAP раздел

Обычно для раздела, который будет использоваться в качестве оперативной памяти в дополнение к системной RAM выделяется столько же места, сколько имеется RAM или вдвое больше.

Однако никаких правил нет и реальное значение подбирается экспериментально.

Если на сервере 8 Гб RAM — под раздел подкачки можно выделить 8 Гб.

И дальше смотреть за потреблением. При необходимости увеличивать SWAP.

Как проверить подключен ли SWAP

Использует ли система SWAP можно понять по выводу free -m

Первая строка в выводе показывает данные по оперативной памяти, вторая по SWAP

Раздел подкачки

В примере машине доступен 1 Гб оперативной памяти, SWAP не подключен, он этом говорят значения ‘0 0 0

Создание раздела подкачки или SWAP раздела в Linux

В Linux чаще используется понятие именно раздела под SWAP, но есть также SWAP файлы — с ними обычно работают в Windows.

В рамках данного материала рассмотрим только создание раздела подкачки (отдельной партиции под SWAP).

Чтобы приступить нужен отдельный неиспользуемый диск подключенный к серверу. Или можно выделить партицию на используемом диске если на нём есть неразмеченное пространство.

В примере будем использовать партицию, которую создадим при помощи fdisk. Для неё установим необходимый для SWAP тип раздела.

Просматриваем список подключенных дисков:

Находим в выводе устройство, размер которого совпадает с диском или партицией, который/ую хотим использовать, в примере это /dev/vdc

Command (m for help): p

Disk /dev/vdc: 5368 MB, 5368709120 bytes
16 heads, 63 sectors/track, 10402 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x27e517f5

Device Boot Start End Blocks Id System

Создаем новый раздел (ключ n в fdisk — new)

Читайте также:  Как устранить ошибки линукс

Command (m for help): n

Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended

Select (default p): p

Номер партиции, а также начало и конец секторов оставляем по-умолчанию

Partition number (1-4, default 1): 1
First sector (2048-10485759, default 2048):
Using default value 2048
Last sector, +sectors or +size (2048-10485759, default 10485759):
Using default value 10485759

Самое важное — выбираем тип раздела

Command (m for help): t
Selected partition 1

Большая буква L выведет все варианты, из них потребуется идентификатор, которому соответствует тип Linux swap. Код может быть 82, 19 или другой.

Пример типов партиции:

партиция типа linux swap

Сейчас выделена партиция /dev/vdc1 объемом 5 Гб.

Это подходящий объем для сервера, который обслуживает веб-проект.

Ключ p fdisk позволяет просмотреть получившуюся разметку диска.

Command (m for help): p

Disk /dev/vdc: 5368 MB, 5368709120 bytes
9 heads, 40 sectors/track, 29127 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x27e517f5

Device Boot Start End Blocks Id System
/dev/vdc1 2048 10485759 5241856 82 Linux swap / Solaris

После ввода w просмотренная на предыдущем шаге таблица разделов запишется на диск.

! Важно проверить что имя диска верное и работа производится именно с пустым диском. Запись изменений на системный диск повлечёт потерю данных

Command (m for help): w

Изменения записаны, партиция почти готова для подключения в качестве раздела подкачки.

Раздел подкачки и mkswap

mkswap утилита, непосредственно создающая раздел подкачки, принимает имя раздела

Setting up swapspace version 1, size = 5241852 KiB
no label, UUID=2f7a89e2-4bc3-4fa2-a442-b0e587d752d1

В последней строке выводится уникальный идентификатор UUID.

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

После ключа -U указываем идентификатор

swapon -U 2f7a89e2-4bc3-4fa2-a442-b0e587d752d1

Посмотреть все разделы, выделенные под SWAP можно командой swapon с ключом -s, таких разделов при желании можно сделать неограниченно много.

Filename Type Size Used Priority
/dev/vdc1 partition 5241852 0 -1

Можно повторно выполнить free -m, система покажет что теперь доступен SWAP раздел размером 5 Гб.

swap раздел

Система тестовая и нагрузки на оперативную память нет, поэтому в колонке used для SWAP значение 0. В реальной системе при определенном потреблении памяти раздел подкачки начинал бы задействовать.

Момент, в который система начинает сбрасывать данные в SWAP определяется параметром swappiness.

Добавление раздела подкачки в автозагрузку

Чтобы раздел подкачки монтировался автоматически после каждой перезагрузки системы необходимо добавить правило в /etc/fstab

Последней строкой в файл дописываем

UUID=2f7a89e2-4bc3-4fa2-a442-b0e587d752d1 none swap sw 0 0

Идентификатор относится только к тому устройству, которое было создано ранее и размечено как swap. Вместо него можно использовать имя партиции — в примере это /dev/vdc1

Монтирование будет выполняться каждый раз при старте системы. Вручную перечитать содержимое /etc/fstab можно выполнив mount -a.

Это выполнять mount -a после каждого редактирования /etc/fstab. В случае ошибок в синтаксисе файла информация выведется в консоль.

Желательно затем также для проверки перезагружать сервер.

SWAP раздел не будет отображаться среди примонтированных в выводе mount и df -h, это нормальная ситуация.

Итог

Раздел подкачки для сервера добавлен и используется системой.

Кроме раздела подкачки можно подключить SWAP файл, это альтернативный вариант.

Читайте также:  Java linux no sound

Такой способ подходит когда нет свободного диска или неразмеченного пространства, но есть запас по месту на системном диске.

Источник

Создание SWAP в ОС Linux (Ubuntu, Debian, CentOS, AlmaLinux) и FreeBSD на виртуализации KVM

url image

Операционная система делит свою оперативную память на так называемые страницы (кусочки), и иногда возникают ситуации, когда часть данных из оперативной памяти необходимо освободить. Сделать это можно с помощью специального механизма, который позволяет перенести часть данных из оперативной памяти на HDD или SSD накопитель, а точнее на специально сконфигурированный для этого раздел на диске. Этот процесс называется swapping (своппинг). В большинстве случаев своппинг используется, когда оперативная память переполнена и для дальнейшей работы операционной системы необходимо ее освободить. В данной статье рассмотрим, как создать специальный раздел на диске (SWAP (своп), или виртуальное пространство подкачки, или файл подкачки), как проверить его работу, а также как сделать так, чтобы после перезагрузки данный раздел подключался автоматически.

Все действия выполняются пользователем root, либо привилегированным пользователем с помощью sudo. Рекомендуем использовать объём для SWAP максимум в два раза больше, чем реальный размер оперативной памяти. На практике обычно достаточно 50-100% от размера ОЗУ. Если для работы вам необходимо увеличить объем ОЗУ на сервере — лучше увеличить его, так как SWAP работает намного медленнее, чем ОЗУ (а в случаях с дисками SSD и NVMe ещё и сокращает время их жизни), и использование SWAP вместо ОЗУ приведёт к потерям скорости.

Linux (Ubuntu, Debian, CentOS, AlmaLinux)

Данная инструкция подходит для операционных систем Ubuntu 18.04, Ubuntu 20.04, Ubuntu 22.04, Debian 10, Debian 11, CentOS 7, AlmaLinux 8, AlmaLinux 9, и других.

Добавление SWAP

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

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

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

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 обязательно нужно проверить, есть ли свободное место на диске:

Смотрим вывод и видим, что на диске свободно 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
# 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, устанавливаем права на него:

-rw------- 1 root root 2147483648 Dec 18 19:05 /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes) no label, UUID=38e12a0a-58ea-4bc5-b0f9-58a29a1dd8db
# 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 включался при загрузке, нужно добавить его в /etc/fstab . Добавляем в конец файла /etc/fstab строку:

/swapfile none swap sw 0 0
      /dev/vda2 / ext4 errors=remount-ro 0 1 /swapfile none swap sw 0 0

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

Читайте также:  Networking with red hat linux

Изменение SWAP

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

Видим, что у нас в /swapfile 256 МБ, а нам нужно 2 ГБ. Как уже писали ранее, проверяем, что на накопителе есть свободное место с помощью команды df -h . Далее выключаем имеющийся файл подкачки /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
# swapon --show # cat /etc/fstab

FreeBSD

Добавление SWAP

В ОС FreeBSD 12 и FreeBSD 13 SWAP добавляется иначе. Для начала необходимо проверить, есть ли в системе SWAP. Это можно сделать с помощью команд:

(если в выводе не будет строки SWAP, то файла подкачки нет). Обязательно проверяем наличие свободного дискового пространства:

Если места недостаточно, либо если после добавления SWAP его останется меньше 5% — нужно очистить место на сервере либо увеличить размер дискового пространства. Создаём файл для SWAP:

# dd if=/dev/zero of=/swapfile bs=1m count=2048
2048+0 records in 2048+0 records out 2147483648 bytes transferred in 5.780501 secs (371504758 bytes/sec)

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

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

-rw------- 1 root wheel 2147483648 Dec 18 21:36 /swapfile

Пользователь root, группа wheel (для FreeBSD это нормально), права rw для пользователя. Включаем SWAP:

Device 1K-blocks Used Avail Capacity /dev/md42 2097152 0 2097152 0%
Swap: 2048M Total, 2048M Free

Автоматическое подключение SWAP после перезагрузки

Осталось сделать так, чтобы SWAP подключался после перезагрузки системы. Для этого в конец файла /etc/fstab нужно добавить строку:

md42 none swap sw,file=/root/swap1 0 0
Swap: 2048M Total, 2048M Free

Источник

Оцените статью
Adblock
detector