В Ubuntu 24.04 своп-память играет важную роль в поддержании стабильности системы, когда заканчивается физическая оперативная память. Swap - это выделенная часть дискового пространства, которая действует как виртуальная память, позволяя системе выгружать менее часто используемые процессы из оперативной памяти. Это помогает освободить память для задач, которые больше всего в ней нуждаются, и предотвращает сбой или замедление системы при большой нагрузке. Добавляя пространство для обмена, Ubuntu 24.04 может обрабатывать более сложные рабочие нагрузки и более эффективно выполнять многозадачность даже на машинах с ограниченной оперативной памятью.

В этой статье объясняется, как добавить своп-память на Ubuntu 24.04. Вы настроите своп-память с использованием выделенного файла на хранилище сервера и будете использовать Vultr Block Storage в качестве выделенного объема свопа для увеличения доступной памяти сервера.

Предпосылки

  • Сервер с Ubuntu 24.04 в качестве ОС
  • Права пользователя: пользователь root или обычный пользователь с привилегиями sudo

Конвенции

1
2
# - данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo.
$ - данные команды должны выполняться от имени обычного пользователя.

Обновите систему

Свежая установка Ubuntu 24.04 требует обновления пакетов до последних доступных версий.

1
$ sudo apt update -y && sudo apt upgrade -y

Просмотр существующей памяти Swap

Память Swap доступна на серверах Ubuntu 24.04 по умолчанию, но с небольшим выделенным пространством на сервере. Выполните следующие действия, чтобы просмотреть существующую память обмена перед добавлением новой памяти на сервер.

Просмотр доступной памяти сервера, включая RAM и Swap, с помощью бесплатной утилиты free.

1
$ sudo free -h

Проверьте память Swap, доступную на вашем сервере, аналогичную выходу ниже.

1
2
3
total        used        free      shared  buff/cache   available
1. Mem:           955Mi       317Mi       201Mi       1.2Mi       598Mi       638Mi
1. Swap:          2.3Gi       268Ki       2.3Gi

На основе вышеупомянутого вывода сервер включает в себя объем памяти Swap 2 ГБ.

Создание Swap Memory

Swap-память - это выделенное пространство на запоминающем устройстве, таком как хранилище вашего сервера или объем хранилища блоков. Следуйте разделам ниже, чтобы создать память обмена, используя Swapfile или выделенный объем хранилища блоков Vultr на вашем сервере.

Создание Swap-памяти с помощью Swapfile в Ubuntu 24.04

Создайте новый Swapfile с определенным размером, таким как 2 ГБ, используя утилиту fallocate в корневом каталоге /.

1
$ sudo fallocate -l 2G /swapfile.img

Измените разрешения Swapfile, чтобы позволить только корневому пользователю читать и записывать изменения в файле.

1
$ sudo chmod 0600 /swapfile.img

Форматировать файл как swap с использованием mkswap.

1
$ sudo mkswap /swapfile.img

Проверьте новый размер плавающей памяти, информацию о метках и UUID, аналогичную следующему выводу.

1
2
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=2ed3e083-fac2-4571-bbdf-e9967aa1fc03

Создание памяти Swap с помощью Vultr Block

Перечислите устройства хранения, доступные на вашем сервере с помощью утилиты lsblk. Новый диск прикреплен как /dev/vdb и не имеет разделов.

1
$ lsblk

Результат:

1
2
3
4
5
6
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0     11:0    1 1024M  0 rom
vda    253:0    0   25G  0 disk
├─vda1 253:1    0  512M  0 part /boot/efi
└─vda2 253:2    0 24.5G  0 part /
vdb    253:16   0    2G  0 disk

Устройство Vultr Block Storage прикреплено как vdb на основе вышеупомянутого вывода с размером 40 ГБ.

Инициировать объем с помощью таблицы разделов GPT.

1
$ sudo parted -s /dev/vdb mklabel gpt

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

1
$ sudo parted -s /dev/vdb unit mib mkpart primary 0% 100%

Перечислите устройства хранения данных на сервере и убедитесь, что новая часть хранения блоков доступна.

1
$ lsblk

Результат:

1
2
3
4
5
6
7
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0     11:0    1 1024M  0 rom  
vda    253:0    0   25G  0 disk 
├─vda1 253:1    0  512M  0 part /boot/efi
└─vda2 253:2    0 24.5G  0 part /
vdb    253:16   0   40G  0 disk 
└─vdb1 253:17   0   40G  0 part 

Преобразуйте новый раздел хранилища блоков для замены.

1
$ sudo mkswap /dev/vdb1

Результат:

1
2
Setting up swapspace version 1, size = 40 GiB (42947571712 bytes)
no label, UUID=7b3b6fa6-b344-41bd-b25b-f8657caa36b4

Просмотрите информацию о ваших устройствах блокировки и убедитесь, что новый раздел обмена доступен.

1
$ blkid

Результат:

1
2
3
/dev/vda2: UUID="95e88749-c308-4c15-aca0-f47049d0c699" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="48874572-7e1f-4766-93e7-431038bd78f3"
/dev/vda1: UUID="D587-7645" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="96ca28e5-4696-482c-9359-24b87f2ea53e"
/dev/vdb1: UUID="ca230c16-b5a4-44e6-b5a8-930bb1f33fcf" TYPE="swap" PARTLABEL="primary" PARTUUID="7897c216-dc99-4e91-be17-abc1a0dba849"

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

Включить Swap Memory

Включите Swapfile в качестве своп-памяти с помощью утилиты swapon.

1
$ sudo swapon /swapfile.img

Просмотрите замену памяти сервера и убедитесь, что новый Swapfile активен.

1
$ sudo swapon -s

Результат:

1
2
3
Filename                                Type            Size            Used            Priority
/swapfile                               file            2457596         268             -2
/swapfile.img                           file            2097148         0               -3

Запустите следующую команду, чтобы включить раздел Vultr Block Storage swap в качестве оперативной памяти. Замените /dev/vdb1 фактическим путем раздела.

1
$ sudo swapon /dev/vdb1

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

1
$ sudo swapon -s

Результат:

1
2
3
4
Filename                                Type            Size            Used            Priority
/swapfile                               file            2457596         268             -2
/swapfile.img                           file            2097148         0               -3
/dev/vdb1                               partition       41940988        0               -4

Настройка таблицы файловой системы (fstab) для автоматической установки

Конфигурация таблицы файловой системы (fstab) определяет, как файловые системы монтируются на сервере. Следуйте приведенным ниже шагам для настройки fstab, чтобы включить автоматическое монтирование объемов оперативной памяти на вашем сервере во время загрузки.

Резервное копирование исходной конфигурации fstab на вашем сервере.

1
$ sudo cp /etc/fstab /etc/fstab.bak

Откройте файл конфигурации fstab с помощью текстового редактора, такого как nano.

1
$ sudo nano /etc/fstab

Добавить следующую конфигурацию Swapfile в конце файла.

1
/swapfile.img swap swap defaults 0 0

Сохраните и закройте файл.

Вышеуказанная конфигурация позволяет автоматически монтировать файл /swapfile.img. В пределах конфигурации:

  • swap: Включает тип файловой системы swap.
  • swap: Устанавливает точку свопа.
  • 0: Отключает резервные копии в файловой системе swap.
  • 0: Отключает проверку файловой системы на память обмена.
  • Добавьте блок-своп-раздел хранилища, используя его значение UUID для автоматического монтажа на объем.
1
UUID=ca230c16-b5a4-44e6-b5a8-930bb1f33fcf       swap    swap    sw      0       0

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

Настройка Swappiness

Значение Swappiness контролирует, как система переключается между основной памятью (ОЗУ) и обменивается памятью на вашем сервере на основе процента использования. Низкое значение минимизирует переход на диск, в то время как более высокое значение позволяет серверу использовать память свопа на основе следующих рейтингов:

  • 0: Позволяет системе избегать замены процессов из физической памяти.
  • 1-49: Включает замену с уменьшенным использованием, если основная память (ОЗУ) не на емкости.
  • 50: обмен балансами и кэширование памяти на сервере.
  • 51-99: Увеличивает замену основной памяти на замену памяти.
  • 100: Приоритетная замена на сервере и процессы непрерывно перемещаются из оперативной памяти в режим обмена.

Выполните шаги ниже, чтобы настроить значение смещения на вашем сервере.

Запустите следующую команду, чтобы изменить /etc/sysctl.conf с вашим значением смещения. Замените 50 на желаемый уровень подкачки.

1
$ echo "vm.swappiness = 50" | sudo tee -a /etc/sysctl.conf

Результат:

1
vm.swappiness = 50

Перезагрузите конфигурацию systctl, чтобы применить изменения конфигурации.

1
$ sudo sysctl -p

Тестирование Swap Memory

Просмотр всех доступных объемов свопов на вашем сервере.

1
$ sudo swapon -s

Результат:

1
2
3
4
Filename                                Type            Size            Used            Priority
/swapfile                               file            2457596         268             -2
/swapfile.img                           file            2097148         0               -3
/dev/vdb1                               partition       41940988        0               -4

Запустите следующую команду, чтобы активировать все неактивные объемы свопа в конфигурации /etc/fstab.

1
$ sudo swapon -a

Просмотр памяти вашего сервера и проверка количества оперативной памяти, активно используемой.

1
$ sudo free -h

Результат:

1
2
3
               total        used        free      shared  buff/cache   available
Mem:           955Mi       348Mi       155Mi       1.2Mi       613Mi       607Mi
Swap:           44Gi       268Ki        44Gi

Удалить Swap Memory

Используйте утилиту swapoff с помощью Swapfile или пути раздела для отключения на вашем сервере. Например, запустите следующую команду, чтобы отключить Swapfile /swapfile по умолчанию.

1
$ sudo swapoff /swapfile

Просмотрите объемы свопа на вашем сервере и убедитесь, что Swapfile по умолчанию отключен.

1
$ sudo swapon -s

Результат:

1
2
3
Filename                                Type            Size            Used            Priority
/swapfile.img                           file            2097148         0               -2
/dev/vdb1                               partition       41940988        0               -3

Завершение

Вы добавили замену памяти на сервере Ubuntu 24.04 и расширили системную память по умолчанию, чтобы включить swapping. Своп-память может быть медленнее по сравнению с оперативной памятью, но улучшает производительность сервера, выгружая ресурсоемкие процессы из основной памяти.

Если вам понравился этот пост о том как добавить swap на Ubuntu 24.04, пожалуйста, поделитесь им со своими друзьями в социальных сетях, которым может быть интересна эта статья или оставьте комментарий ниже.