- Home »

Как добавить 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, пора задуматься об апгрейде железа.
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.