Свап и мониторинг памяти в Ubuntu 24.04: что учесть
За 15–25 минут вы проверите память и место на диске, создадите файл подкачки и настроите его запуск после перезагрузки. Покажем, как следить за нехваткой RAM и отличать разовую загрузку свапа от постоянного давления на систему.

За 15–25 минут вы проверите память и свободное место, создадите файл подкачки и настроите его запуск после перезагрузки в Ubuntu Server 24.04 LTS. Затем научитесь смотреть на RAM и свап вместе: сама по себе занятая подкачка ещё не означает, что серверу срочно нужна дополнительная память.
Что подготовить до начала
Инструкция рассчитана на Ubuntu Server 24.04 LTS с systemd и файловой системой ext4 на корневом разделе. Нужна учётная запись с правами sudo, доступ к терминалу и свободное место на диске. Пример создаёт свап-файл размером 2 ГиБ — если места меньше, не запускайте команду записи, пока не выберете меньший размер.
- Сначала выясните тип корневой файловой системы: если это Btrfs, остановитесь — для неё нужен отдельный порядок создания файла подкачки.
- Проверьте свободное место и состояние памяти командами из первого шага ниже.
- Не выполняйте инструкцию на диске, где нет минимум 2 ГиБ свободного места. Свап на диске не заменяет оперативную память и может работать заметно медленнее RAM.
Термин: свап — область диска, куда ядро может перемещать страницы памяти. Свопинг — перенос страниц между RAM и этой областью; постоянный активный обмен может замедлять приложения.
Настройка по шагам
Проверьте файловую систему, память и место на корневом разделе.
findmnt -no FSTYPE / df -h / free -h swapon --showЕсли первая команда показывает
btrfs, не продолжайте по этой инструкции. Вdfубедитесь, что в колонке доступного места есть не меньше 2 ГиБ; вfreeобратите внимание на строкуMemи значениеavailable. Проверка успешна, если тип файловой системы — не Btrfs, а свободного места достаточно.Создайте файл размером 2 ГиБ. Команда
ddзапишет данные на диск, поэтому её выполнение может занять некоторое время.sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress sudo chmod 600 /swapfile sudo mkswap /swapfileПроверка: команда
mkswapсообщает, что настроена область подкачки. Если/swapfileуже существует, не перезаписывайте его вслепую: сначала проверьтеswapon --showи выясните, используется ли файл.Включите созданный файл.
sudo swapon /swapfile swapon --show free -hПроверка: в выводе
swapon --showесть строка с путём/swapfile, а вfree -hзначение в строкеSwapбольше нуля. Сумма в выводе может отличаться от ожидаемой на округление.Сделайте настройку постоянной. Откройте файл конфигурации:
sudoedit /etc/fstabДобавьте в конец строку, если записи для
/swapfileтам ещё нет:/swapfile none swap sw 0 0Проверка: сохраните файл и проверьте, что строка записана без лишних символов и не дублируется. Не добавляйте её повторно при каждом редактировании. После перезагрузки выполните
swapon --show: файл должен остаться активным.Проверьте показатели памяти и ядра. Для просмотра обновлений раз в пять секунд используйте:
watch -n 5 'free -h; echo; swapon --show'Для пяти последовательных замеров активности подкачки запустите в другом терминале:
vmstat 1 5Проверка: в заголовке
vmstatнайдитеsiиso— объём страниц, поступающих из свапа и уходящих в него за интервал. Первая строка может отражать средние значения с момента запуска системы; ориентируйтесь на следующие строки.
Как читать показания
В free -h важнее всего available — оценка памяти, которую система может выделить приложениям без активного свопинга. Столбец free может быть небольшим, потому что Linux использует свободную RAM для кэша. Это не обязательно проблема.
Свап может быть занят, даже когда сейчас нет острой нехватки памяти: ядро не всегда возвращает в RAM страницы, которые давно не использовались. Тревожнее сочетание признаков: available долго остаётся низким относительно обычного уровня сервера, si и so продолжают расти в последовательных замерах, а приложения отвечают медленнее.
Чтобы проверить, фиксировало ли ядро нехватку памяти или завершение процессов, посмотрите сообщения текущей загрузки:
sudo journalctl -k -b | grep -iE 'out of memory|oom-kill|killed process'Пустой результат не доказывает, что проблем никогда не было: команда показывает сообщения только текущей загрузки и зависит от того, сохранил ли журнал нужные записи.
Рост занятого свапа — не диагноз. Смотрите на него вместе с доступной RAM, активностью
si/soи симптомами приложений.
Если не получилось
«No space left on device». На разделе не хватает места для файла. Проверьте
df -h /; не удаляйте неизвестные файлы ради освобождения диска. Выберите меньший размер свапа или сначала безопасно освободите место.«swapon failed: Invalid argument». Причина может быть в файловой системе или особенностях создания файла. Повторите проверку через
findmnt -no FSTYPE /. Если результат — Btrfs, не пытайтесь исправить проблему повторным запуском тех же команд: используйте документацию для вашей версии Ubuntu и Btrfs.«insecure permissions» или предупреждение о правах. Проверьте права командой
ls -l /swapfile. Для файла подкачки установите доступ только владельцу:sudo chmod 600 /swapfile, затем повторитеswapon /swapfile.После перезагрузки свап не активен. Проверьте, что строка в
/etc/fstabнаписана точно и добавлена один раз. Посмотрите ошибки загрузки командойsudo journalctl -b | grep -iE 'swap|fstab'; исправьте найденную запись и перезагрузите сервер, когда это безопасно.Свап активно используется, а сервер тормозит. Подкачка не устраняет нехватку RAM. Сопоставьте
vmstatс журналом ядра и нагрузкой приложений; найдите процесс, который расходует память, и проверьте его лимиты или утечку.
Что делать дальше
После перезагрузки убедитесь, что swapon --show по-прежнему показывает файл, а затем запишите обычные для сервера значения MemAvailable и si/so в момент нормальной и пиковой нагрузки. Сравнивайте новые показатели именно с этой базовой линией: универсального порога занятого свапа, который подходит всем серверам, нет. Для постоянных графиков и уведомлений подключите систему мониторинга, уже принятую в вашей инфраструктуре; здесь мы настраивали локальную проверку, а не внешний сбор метрик.
Универсальный ассистент: Обычный чат: тексты, идеи, разбор, перевод, расчёты.
Спросить за 8 ₽Источники: Ubuntu manpages: swapon, swapoff, Документация ядра Linux: /proc
Частые вопросы
Сколько свапа нужно создать?
Если свап занят, серверу обязательно не хватает RAM?
Что будет, если после изменения /etc/fstab я ошибусь?
Можно ли выполнить эти шаги на Btrfs?
Почему после добавления свапа сервер всё равно тормозит?
Нужно ли менять swappiness?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.