Как добавить память Swap на Ubuntu 24.04
Дата публикации: 2025-04-16T14:27:11
Теги: ["swap", "ubuntu"]
В Ubuntu 24.04 своп-память играет важную роль в поддержании стабильности системы, когда заканчивается физическая оперативная память. Swap - это выделенная часть дискового пространства, которая действует как виртуальная память, позволяя системе выгружать менее часто используемые процессы из оперативной памяти. Это помогает освободить память для задач, которые больше всего в ней нуждаются, и предотвращает сбой или замедление системы при большой нагрузке. Добавляя пространство для обмена, Ubuntu 24.04 может обрабатывать более сложные рабочие нагрузки и более эффективно выполнять многозадачность даже на машинах с ограниченной оперативной памятью.
В этой статье объясняется, как добавить своп-память на Ubuntu 24.04. Вы настроите своп-память с использованием выделенного файла на хранилище сервера и будете использовать Vultr Block Storage в качестве выделенного объема свопа для увеличения доступной памяти сервера.
Предпосылки
- Сервер с Ubuntu 24.04 в качестве ОС
- Права пользователя: пользователь root или обычный пользователь с привилегиями sudo
Конвенции
# - данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo. $ - данные команды должны выполняться от имени обычного пользователя.
Обновите систему
Свежая установка Ubuntu 24.04 требует обновления пакетов до последних доступных версий.
$ sudo apt update -y && sudo apt upgrade -y
Просмотр существующей памяти Swap
Память Swap доступна на серверах Ubuntu 24.04 по умолчанию, но с небольшим выделенным пространством на сервере. Выполните следующие действия, чтобы просмотреть существующую память обмена перед добавлением новой памяти на сервер.
Просмотр доступной памяти сервера, включая RAM и Swap, с помощью бесплатной утилиты `free`.
$ sudo free -h
Проверьте память Swap, доступную на вашем сервере, аналогичную выходу ниже.
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` в корневом каталоге `/`.
$ sudo fallocate -l 2G /swapfile.img
Измените разрешения Swapfile, чтобы позволить только корневому пользователю читать и записывать изменения в файле.
$ sudo chmod 0600 /swapfile.img
Форматировать файл как swap с использованием `mkswap`.
$ sudo mkswap /swapfile.img
Проверьте новый размер плавающей памяти, информацию о метках и UUID, аналогичную следующему выводу.
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes) no label, UUID=2ed3e083-fac2-4571-bbdf-e9967aa1fc03
Создание памяти Swap с помощью Vultr Block
Перечислите устройства хранения, доступные на вашем сервере с помощью утилиты `lsblk`. Новый диск прикреплен как `/dev/vdb` и не имеет разделов.
$ lsblk
Результат:
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.
$ sudo parted -s /dev/vdb mklabel gpt
Создайте новый раздел, используя весь объем хранилища блоков.
$ sudo parted -s /dev/vdb unit mib mkpart primary 0% 100%
Перечислите устройства хранения данных на сервере и убедитесь, что новая часть хранения блоков доступна.
$ lsblk
Результат:
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
Преобразуйте новый раздел хранилища блоков для замены.
$ sudo mkswap /dev/vdb1
Результат:
Setting up swapspace version 1, size = 40 GiB (42947571712 bytes) no label, UUID=7b3b6fa6-b344-41bd-b25b-f8657caa36b4
Просмотрите информацию о ваших устройствах блокировки и убедитесь, что новый раздел обмена доступен.
$ blkid
Результат:
/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`.
$ sudo swapon /swapfile.img
Просмотрите замену памяти сервера и убедитесь, что новый Swapfile активен.
$ sudo swapon -s
Результат:
Filename Type Size Used Priority /swapfile file 2457596 268 -2 /swapfile.img file 2097148 0 -3
Запустите следующую команду, чтобы включить раздел Vultr Block Storage swap в качестве оперативной памяти. Замените `/dev/vdb1` фактическим путем раздела.
$ sudo swapon /dev/vdb1
Просмотр памяти замены сервера и проверка того, что раздел обмена активен.
$ sudo swapon -s
Результат:
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` на вашем сервере.
$ sudo cp /etc/fstab /etc/fstab.bak
Откройте файл конфигурации `fstab` с помощью текстового редактора, такого как `nano`.
$ sudo nano /etc/fstab
Добавить следующую конфигурацию Swapfile в конце файла.
/swapfile.img swap swap defaults 0 0
Сохраните и закройте файл.
Вышеуказанная конфигурация позволяет автоматически монтировать файл `/swapfile.img`. В пределах конфигурации:
- `swap`: Включает тип файловой системы swap.
- `swap`: Устанавливает точку свопа.
- `0`: Отключает резервные копии в файловой системе swap.
- `0`: Отключает проверку файловой системы на память обмена.
- Добавьте блок-своп-раздел хранилища, используя его значение `UUID` для автоматического монтажа на объем.
UUID=ca230c16-b5a4-44e6-b5a8-930bb1f33fcf swap swap sw 0 0
Вы включили автоматическое монтирование оперативной памяти на своем сервере. Сервер автоматически монтируется и позволяет обмениваться памятью во время загрузки.
Настройка Swappiness
Значение Swappiness контролирует, как система переключается между основной памятью (ОЗУ) и обменивается памятью на вашем сервере на основе процента использования. Низкое значение минимизирует переход на диск, в то время как более высокое значение позволяет серверу использовать память свопа на основе следующих рейтингов:
- `0`: Позволяет системе избегать замены процессов из физической памяти.
- `1-49`: Включает замену с уменьшенным использованием, если основная память (ОЗУ) не на емкости.
- `50`: обмен балансами и кэширование памяти на сервере.
- `51-99`: Увеличивает замену основной памяти на замену памяти.
- `100`: Приоритетная замена на сервере и процессы непрерывно перемещаются из оперативной памяти в режим обмена.
Выполните шаги ниже, чтобы настроить значение смещения на вашем сервере.
Запустите следующую команду, чтобы изменить `/etc/sysctl.conf` с вашим значением смещения. Замените `50` на желаемый уровень подкачки.
$ echo "vm.swappiness = 50" | sudo tee -a /etc/sysctl.conf
Результат:
vm.swappiness = 50
Перезагрузите конфигурацию `systctl`, чтобы применить изменения конфигурации.
$ sudo sysctl -p
Тестирование Swap Memory
Просмотр всех доступных объемов свопов на вашем сервере.
$ sudo swapon -s
Результат:
Filename Type Size Used Priority /swapfile file 2457596 268 -2 /swapfile.img file 2097148 0 -3 /dev/vdb1 partition 41940988 0 -4
Запустите следующую команду, чтобы активировать все неактивные объемы свопа в конфигурации `/etc/fstab`.
$ sudo swapon -a
Просмотр памяти вашего сервера и проверка количества оперативной памяти, активно используемой.
$ sudo free -h
Результат:
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` по умолчанию.
$ sudo swapoff /swapfile
Просмотрите объемы свопа на вашем сервере и убедитесь, что Swapfile по умолчанию отключен.
$ sudo swapon -s
Результат:
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, пожалуйста, поделитесь им со своими друзьями в социальных сетях, которым может быть интересна эта статья или оставьте комментарий ниже.