Home » Как добавить swap-раздел на Ubuntu 24
Как добавить swap-раздел на Ubuntu 24

Как добавить swap-раздел на Ubuntu 24

Когда-то считалось, что swap — это костыль для систем с маленьким объемом RAM. Но даже сейчас, когда сервера имеют по 128 ГБ памяти, грамотно настроенный swap остается важным элементом стабильной работы системы. Особенно в мире виртуализации, где ресурсы могут быть лимитированы. Эта статья расскажет, как быстро и правильно добавить swap-раздел на Ubuntu 24, избежав типичных ошибок новичков. Мы разберем как классический подход с отдельным разделом, так и современный метод с файлами подкачки. Плюс покажем, как автоматизировать процесс и интегрировать его в ваши скрипты деплоя.

Как работает swap в Linux

Swap (пространство подкачки) — это область на диске, которая используется когда оперативная память заполнена. Когда kernel видит, что RAM на исходе, он начинает перемещать наименее активные страницы памяти в swap. Это позволяет освободить место для более важных процессов.

В Ubuntu 24 (Noble Numbat) процесс управления swap стал еще более гибким. Система поддерживает как традиционные swap-разделы, так и файлы подкачки. Последние особенно удобны для VPS и виртуальных машин, где изменение разметки диска может быть проблематичным.

Проверка текущего состояния swap

Перед тем как добавлять новый swap, посмотрим что уже есть в системе:


# Проверяем активные swap-разделы
sudo swapon --show

# Альтернативный способ
free -h

# Детальная информация о swap
cat /proc/swaps

Если команда swapon --show не выдает никакого результата, значит swap не настроен.

Метод 1: Создание swap-файла (рекомендуется)

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


# Создаем файл размером 2GB (измените размер по необходимости)
sudo fallocate -l 2G /swapfile

# Устанавливаем правильные права доступа
sudo chmod 600 /swapfile

# Настраиваем файл как swap
sudo mkswap /swapfile

# Активируем swap
sudo swapon /swapfile

# Проверяем результат
sudo swapon --show

Чтобы swap подключался автоматически при загрузке, добавляем запись в /etc/fstab:


echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Метод 2: Создание swap-раздела

Этот метод подходит когда у вас есть неразмеченное дисковое пространство или отдельный диск для swap.


# Смотрим доступные диски
sudo fdisk -l

# Создаем раздел (пример для /dev/sdb1)
sudo fdisk /dev/sdb

# В fdisk: n (новый раздел) -> p (primary) -> 1 -> Enter -> Enter -> t -> 82 (swap) -> w

# Создаем swap на разделе
sudo mkswap /dev/sdb1

# Активируем
sudo swapon /dev/sdb1

# Добавляем в fstab
echo '/dev/sdb1 none swap sw 0 0' | sudo tee -a /etc/fstab

Настройка параметров swap

Ubuntu 24 позволяет тонко настроить поведение swap через параметры kernel:


# Проверяем текущие настройки
cat /proc/sys/vm/swappiness
cat /proc/sys/vm/vfs_cache_pressure

# Устанавливаем оптимальные значения
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
echo 'vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.conf

# Применяем изменения
sudo sysctl -p

Сравнение методов

Критерий Swap-файл Swap-раздел
Гибкость Высокая – легко изменить размер Низкая – требует переразметки
Производительность Немного ниже из-за файловой системы Максимальная
Простота настройки Очень простая Требует знаний fdisk
Подходит для VPS Да Ограниченно
Фрагментация Возможна Отсутствует

Практические кейсы и рекомендации

Для веб-серверов

На веб-серверах swap помогает пережить пиковые нагрузки. Рекомендуется размер 1-2GB для VPS с 4-8GB RAM.

Для баз данных

Для MySQL/PostgreSQL лучше использовать минимальный swap (512MB-1GB) с низким swappiness (5-10), чтобы избежать попадания горячих данных в swap.

Для контейнеров

При использовании Docker/Kubernetes swap может быть отключен в production, но полезен для development окружений.

Автоматизация и скрипты

Скрипт для автоматического создания swap-файла:


#!/bin/bash
SWAP_SIZE=${1:-2G}
SWAP_FILE=/swapfile

# Проверяем, есть ли уже swap
if swapon --show | grep -q "/swapfile"; then
echo "Swap уже настроен"
exit 0
fi

# Создаем и настраиваем swap
sudo fallocate -l $SWAP_SIZE $SWAP_FILE
sudo chmod 600 $SWAP_FILE
sudo mkswap $SWAP_FILE
sudo swapon $SWAP_FILE

# Добавляем в fstab если еще нет
if ! grep -q "/swapfile" /etc/fstab; then
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
fi

echo "Swap файл $SWAP_SIZE создан и активирован"

Мониторинг и диагностика

Полезные команды для мониторинга swap:


# Постоянный мониторинг использования swap
watch -n 1 'free -h && echo "---" && swapon --show'

# Процессы, использующие swap
for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n | tail

# Статистика swap
vmstat 1 5

Альтернативные решения

Для высоконагруженных систем стоит рассмотреть:

  • zswap – сжатие swap в памяти
  • zram – создание compressed RAM диска
  • systemd-swap – автоматическое управление swap

Настройка zswap:


# Включаем zswap
echo 1 | sudo tee /sys/module/zswap/parameters/enabled

# Настраиваем параметры
echo 20 | sudo tee /sys/module/zswap/parameters/max_pool_percent
echo lzo | sudo tee /sys/module/zswap/parameters/compressor

Типичные ошибки и как их избежать

  • Неправильный размер swap – не делайте swap больше 8GB без весомых причин
  • Размещение swap на медленном диске – используйте SSD для swap на продакшн серверах
  • Высокий swappiness – значение 60 по умолчанию слишком агрессивное для серверов
  • Отсутствие мониторинга – активное использование swap может сигнализировать о проблемах

Удаление swap

Если нужно удалить swap:


# Отключаем swap
sudo swapoff /swapfile

# Удаляем из fstab
sudo sed -i '/swapfile/d' /etc/fstab

# Удаляем файл
sudo rm /swapfile

Заключение

Правильно настроенный swap — это не костыль, а важный элемент стабильной работы сервера. Для большинства случаев рекомендую использовать swap-файл размером 1-2GB с swappiness=10. Это обеспечит стабильность без негативного влияния на производительность.

Для production окружений на выделенных серверах стоит рассмотреть создание отдельного раздела для максимальной производительности. Не забывайте мониторить использование swap — его активное использование может сигнализировать о необходимости увеличения RAM.

Помните: swap должен быть подстраховкой, а не основным решением проблем с памятью. Если система постоянно использует swap, пора задуматься об апгрейде железа.


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

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

Leave a reply

Your email address will not be published. Required fields are marked