Свап и мониторинг памяти в Ubuntu: ошибки новичков
За 15 минут настроим файл подкачки на 2 ГиБ в Ubuntu 24.04 LTS и проверим, как система использует память. Разберём, почему свободный swap не всегда означает проблему и какие ошибки мешают настройке.

За 15 минут вы создадите файл подкачки на 2 ГиБ в Ubuntu 24.04 LTS, настроите его включение после перезагрузки и проверите использование памяти штатными командами. Пример рассчитан на сервер с файловой системой ext4 на корневом разделе. Свап не заменит оперативную память: при активной подкачке система может заметно замедлиться.
Перед началом
Нужен доступ к Ubuntu 24.04 LTS с правами администратора и свободное место на разделе, где находится корневая файловая система. Команды ниже создают файл /swapfile размером 2 ГиБ. Это пример, а не универсальная рекомендация: объём зависит от нагрузки, свободного места и того, планируете ли вы гибернацию. Для гибернации настройка требует отдельной проверки.
Войдите в административную оболочку командой sudo -i. Сначала убедитесь, что на сервере ещё нет файла /swapfile: иначе его нельзя создавать поверх существующего. Если корень не на ext4, остановитесь и проверьте инструкции для вашей файловой системы. У Btrfs, например, есть особенности при создании swap-файлов.
Настройка по шагам
Проверьте систему, файловую систему, место и текущий swap.
cat /etc/os-release findmnt -no FSTYPE / df -h / swapon --show ls -l /swapfileПроверка: в выводе указана Ubuntu 24.04, для корня —
ext4, а на разделе достаточно свободного места и файла/swapfileещё нет. Пустой выводswapon --showозначает, что активной подкачки пока нет; если swap уже есть, сначала разберитесь с текущей конфигурацией.Создайте файл и закройте доступ к нему для других пользователей. Выполняйте команды только после проверки, что
/swapfileне существует.fallocate -l 2G /swapfile chmod 600 /swapfileПроверка: команда
ls -lh /swapfileпоказывает размер около 2 ГиБ, аls -l /swapfile— права-rw-------. Еслиfallocateсообщает об ошибке, не переходите к следующим шагам: сначала проверьте файловую систему и свободное место.Подготовьте файл как swap-раздел и включите его.
mkswap /swapfile swapon /swapfileПроверка: команда
swapon --showвыводит строку с/swapfileи размером около 2 ГиБ. Не путайте активный swap с просто созданным файлом: пока вы не запустилиswapon, система его не использует.Сделайте настройку постоянной после перезагрузки. Команда добавит запись в
/etc/fstab, только если её там ещё нет.if ! grep -qE '^[[:space:]]*/swapfile[[:space:]]' /etc/fstab; then printf '/swapfile none swap sw 0 0\n' >> /etc/fstab fi findmnt --verifyПроверка:
findmnt --verifyне сообщает об ошибке в записи/etc/fstab. Если вывод указывает на проблему, исправьте её до перезагрузки: неверная запись может помешать автоматическому включению swap.Проверьте память и подкачку.
free -h vmstat 1 5Проверка: в выводе
free -hесть строкаSwapс общим объёмом около 2 ГиБ. Вvmstatсмотрите на столбцыsiиso: они показывают чтение из swap и запись в него. Первая строка статистики может отражать средние значения с момента загрузки, поэтому оценивайте следующие строки с интервалом в одну секунду.
Как читать показатели и не пугаться
В строке Mem команды free -h важнее всего поле available: оно оценивает, сколько памяти система может выделить приложениям с учётом освобождаемого кеша. Низкое значение free само по себе не доказывает нехватку RAM. Linux использует свободную память для кеширования файлов, чтобы ускорять повторный доступ к данным.
Значение used в строке Swap тоже не диагноз. Некоторые страницы памяти могли попасть в swap раньше и оставаться там, даже когда нагрузка снизилась. Тревожнее ситуация, когда available долго остаётся низким, а si и so регулярно показывают активный обмен: приложениям может не хватать оперативной памяти, а диск начинает обслуживать её часть.
Чтобы наблюдать за изменениями в реальном времени, запустите watch -n 2 free -h и остановите сочетанием Ctrl+C. Чтобы проверить сообщения ядра о нехватке памяти, выполните journalctl -k | grep -Ei 'out of memory|killed process'. Совпадений может не быть — это нормально. Пустой результат не доказывает, что сервер никогда не испытывал нехватку памяти: старые журналы могли уже удалиться или быть недоступны текущему пользователю.
Swap — страховка от резкого пика нагрузки, а не способ превратить медленный диск в быструю оперативную память.
Термин. Подкачка — механизм, при котором ядро Linux перемещает часть данных из оперативной памяти в специально выделенное пространство на диске. Доступ к диску обычно медленнее доступа к RAM, поэтому постоянная активность swap может указывать на проблему с объёмом памяти или нагрузкой.
Если не получилось
fallocate: fallocate failed: Operation not supported. Файловая система или расположение файла не поддерживает такой способ выделения места. Не продолжайте с этим файлом: проверьте тип файловой системы и используйте инструкцию для неё. Не переносите команды для ext4 на Btrfs без проверки.swapon: /swapfile: swapon failed: Invalid argument. Возможные причины — неподходящая файловая система, некорректно подготовленный файл или неподдерживаемая структура файла. Проверьте сообщения командыmkswapи документацию для вашей файловой системы, а не пытайтесь включать файл повторно вслепую.Сообщение о небезопасных правах или о том, что права должны быть
0600. Повторно задайте права командойchmod 600 /swapfile, затем проверьте их черезls -l /swapfile. Swap-файл не должен быть доступен на чтение обычным пользователям.После перезагрузки
swapon --showничего не выводит. Проверьте, что строка с/swapfileесть в/etc/fstab, а командаfindmnt --verifyне находит в ней ошибок. Затем включите подкачку вручную командойswapon -aи изучите появившееся сообщение, если команда завершится с ошибкой.
Что делать дальше
После настройки понаблюдайте за available, si и so во время обычной нагрузки и её пика. Если система регулярно активно использует swap и отвечает медленно, выясните, какой процесс потребляет память, и решите, что менять: объём RAM, настройки приложения или саму нагрузку. Не начинайте с произвольного изменения swappiness: сначала соберите показатели и проверьте, как настройка повлияет именно на ваш сервис.
Тест и проверочная: Быстрые ответы с объяснением, почему остальные варианты неверны
Спросить за 10 ₽Источники: Linux man-pages: swapon(8), Linux man-pages: proc_meminfo(5)
Частые вопросы
Обязательно ли создавать swap, если оперативной памяти много?
Почему swap занят, если сервер сейчас почти ничего не делает?
Можно ли поставить другой размер, а не 2 ГиБ?
Что делать, если у меня другая версия Ubuntu или не ext4?
Опасно ли перезагружать сервер, если swap не включается?
Нужно ли менять swappiness после создания swap?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.