Как настроить swap в Ubuntu и следить за памятью: инструкция
Настроим файл подкачки на Ubuntu Server 24.04 LTS и проверим, как система расходует память. Понадобятся права sudo и несколько минут; отдельно покажем, как отличить занятый swap от реальной нехватки RAM.

Что настроим и что понадобится
За несколько минут вы создадите файл подкачки на 2 ГиБ, подключите его после перезагрузки и проверите память системными средствами Ubuntu Server 24.04 LTS. Инструкция рассчитана на сервер с файловой системой ext4 и доступом через sudo. Swap не заменяет оперативную память: он даёт ядру запас для менее активных страниц, но при постоянной интенсивной подкачке сервер будет работать медленнее.
До начала проверьте, что на корневом разделе есть больше 2 ГиБ свободного места, а файла /swapfile ещё нет. Размер 2 ГиБ здесь — пример, а не универсальная рекомендация: учитывайте доступный диск, профиль нагрузки и требования приложений. Если нужна гибернация, эти шаги не подходят как готовая настройка: размер и конфигурация зависят от системы.
Понадобятся:
- Ubuntu Server 24.04 LTS;
- учётная запись с правами sudo;
- корневой раздел ext4 с запасом места;
- доступ к терминалу.
Проверьте тип корневой файловой системы и свободное место:
findmnt -no FSTYPE /
df -h /
sudo test ! -e /swapfileОжидаемый результат первой команды — ext4; во второй строке видно свободное место. Последняя команда ничего не печатает и завершается без ошибки, если файла ещё нет. Если она завершилась с ошибкой, остановитесь: не перезаписывайте существующий файл подкачки.
Настройка swap по шагам
Создайте файл подкачки. Команда выделит 2 ГиБ, ограничит доступ к файлу владельцем root и создаст заголовок swap:
sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfileПроверка:
mkswapсообщает о создании области подкачки, а команда ниже показывает права-rw-------и размер файла:ls -lh /swapfileПочему права важны: файл подкачки может содержать данные из памяти, поэтому доступ к нему не должен быть открыт другим пользователям.
Подключите swap сейчас.
sudo swapon /swapfile swapon --showПроверка: в выводе
swapon --showпоявилась строка с/swapfile, а тип указан какfile. Если команда подключения завершилась ошибкой, перейдите к разделу о неполадках, а не добавляйте запись в автозапуск.Сделайте подключение постоянным. Запись в
/etc/fstabпозволит системе подключать файл после перезагрузки. Команда добавит её, только если такой строки ещё нет:grep -qE '^[[:space:]]*/swapfile[[:space:]]' /etc/fstab || printf '%s\n' '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstabПроверьте синтаксис таблицы файловых систем и активируйте все настроенные области подкачки:
sudo findmnt --verify sudo swapon --all swapon --showПроверка: первая команда не сообщает об ошибках в записи, последняя по-прежнему показывает
/swapfile. После этого настройка переживёт перезагрузку.Задайте начальное значение swappiness. Этот параметр влияет на склонность ядра использовать swap; значение не задаёт процент занятой памяти. Для начала можно проверить значение 10, но это не оптимум для каждого сервера:
sudo sysctl -w vm.swappiness=10 printf '%s\n' 'vm.swappiness = 10' | sudo tee /etc/sysctl.d/99-swappiness.conf sudo sysctl --system sysctl vm.swappinessПроверка: последняя команда выводит
vm.swappiness = 10. Меняйте параметр только после наблюдения за приложением: слишком позднее использование swap может привести к нехватке памяти и завершению процессов.
Как следить за памятью
Для быстрой проверки используйте три показателя. Выполняйте команды в период обычной нагрузки, а не только сразу после запуска сервера:
free -h
vmstat 1 10
cat /proc/pressure/memoryfree -hпоказывает RAM и swap. В строке памяти смотрите на доступную память (available), а не только на свободную: Linux использует часть RAM для кеша, который при необходимости может освободить.vmstat 1 10выводит десять замеров с интервалом в секунду. В столбцахsiиsoвидны объёмы чтения из swap и записи в него. Первая строка обычно отражает средние значения с момента загрузки; для оценки текущего состояния смотрите следующие строки./proc/pressure/memoryпоказывает PSI — долю времени, когда задачи задерживались из-за нехватки памяти. Если значения растут одновременно с постоянными ненулевымиsi/soи падением доступной RAM, это повод искать процесс-потребитель и проверять нагрузку.
Можно наблюдать за общей картиной в реальном времени:
watch -n 2 free -hНажмите Ctrl+C, чтобы выйти. Для детализации отдельно запустите vmstat 1 и остановите его так же. Сам факт занятого swap не означает аварию: ядро может оставить там давно неиспользуемые страницы, даже когда текущая нагрузка не вызывает проблем.
Смотрите не на один столбец, а на сочетание сигналов: доступную RAM, активность обмена с swap и задержки в PSI. Именно это помогает отличить безобидный кеш от давления на память.
Swappiness — параметр ядра Linux, влияющий на то, насколько охотно оно перемещает страницы памяти в swap. PSI (Pressure Stall Information) — показатели времени, которое задачи теряют из-за нехватки системного ресурса.
Если не получилось
fallocate: fallocate failed: Operation not supported. Файловая система не поддерживает такой способ выделения места. Не продолжайте на неподходящей конфигурации: сначала уточните тип и ограничения файловой системы. Для ext4 можно использовать резервный способ ниже, если файла ещё нет:sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress sudo chmod 600 /swapfile sudo mkswap /swapfileПосле этого вернитесь к шагу подключения. Команда запишет весь объём файла и может выполняться дольше, чем
fallocate.swapon: /swapfile: swapon failed: Invalid argument. Частая причина — файл создан не как swap или содержит неподходящие области на файловой системе. Убедитесь, чтоmkswap /swapfileзавершился успешно и вы применяете именно путь/swapfile. На файловых системах с особыми ограничениями этот способ может не поддерживаться.Система сообщает о небезопасных правах файла. Выполните
sudo chmod 600 /swapfile, затем повторитеsudo swapon /swapfile. Проверьте результат командойls -l /swapfile.После перезагрузки строка исчезла из
swapon --show. Проверьте запись в/etc/fstab: она должна указывать/swapfile none swap sw 0 0. Затем запуститеsudo findmnt --verifyи исправьте ошибки, которые покажет проверка.
Что делать дальше
Оставьте сервер под обычной нагрузкой и сравните замеры в спокойный период и во время пика. Если swap постоянно активно читается и записывается, а PSI растёт, найдите процесс, который расходует память, и оцените, хватает ли серверу RAM. Не лечите устойчивую нехватку памяти одним увеличением swap: это может лишь отложить сбой и замедлить приложение.
Если сервер использует другую файловую систему или версию Ubuntu, перед применением команд сверьтесь с её документацией: особенности создания swap-файлов различаются. Следующий полезный шаг — настроить сбор графиков RAM, swap и PSI вашим средством мониторинга, чтобы видеть не разовый снимок, а динамику под нагрузкой.
Защитник прав потребителей: Досудебные претензии на возврат товара со ссылками на ЗоЗПП.
Спросить за 15 ₽Источники: Ubuntu Community Help Wiki: SwapFaq, Linux kernel documentation: PSI (Pressure Stall Information)
Частые вопросы
Можно ли поставить swap на 2 ГиБ независимо от объёма RAM?
Если swap занят, значит ли это, что серверу не хватает памяти?
Что делать, если после перезагрузки swap не подключился?
Подойдёт ли инструкция для Btrfs или другой версии Ubuntu?
Нужно ли уменьшать swappiness до 10?
Почему сервер тормозит, хотя swap добавлен?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.