Swap в Linux: нужен ли он и сколько места выделить
Swap может спасти Linux от внезапного исчерпания памяти, но не заменит оперативную: при активном обмене с диском система заметно тормозит. Разбираем, когда достаточно zram, когда нужен swap на диске и как выбрать размер без правила «в два раза больше RAM».

Если Linux-сервер или рабочий компьютер иногда упирается в память, swap может дать системе запас времени — но большой раздел сам по себе не ускорит её и не заменит RAM. Универсального правила вроде «выделите вдвое больше оперативной памяти» нет: размер зависит от пикового потребления, характера нагрузки и того, нужна ли гибернация. Ниже — практические критерии для Linux с ядром 6.x; конкретные способы включения зависят от дистрибутива.
Что swap делает — и чего не делает
Когда оперативной памяти не хватает, Linux может переместить часть страниц памяти на накопитель в области swap. Это снижает давление на RAM, но чтение и запись с диска обычно гораздо медленнее, чем доступ к оперативной памяти. Если система постоянно переносит страницы туда и обратно, приложение может зависать, а задержки — расти.
Поэтому swap — скорее амортизатор краткого пика, а не способ обслуживать нагрузку, которой постоянно нужно больше памяти, чем есть в системе. Большой swap иногда помогает избежать немедленного завершения процессов, но не гарантирует, что приложение продолжит работать с приемлемой скоростью.
Swap покупает время при нехватке памяти, но не производительность. Если он постоянно занят, ищите причину давления на RAM, а не просто увеличивайте его размер.
Сноска. Давление на память — ситуация, когда приложениям не хватает RAM и ядро вынуждено чаще освобождать её, например перемещая страницы в swap. Сам факт наличия занятого swap ещё не означает, что системе плохо: важны активность обмена и задержки.
Три варианта: без swap, диск или zram
Решение зависит не только от объёма памяти. Для рабочего ноутбука, виртуальной машины и сервера с базой данных одинаковый размер swap может дать разные результаты.
| Вариант | Что получаете | Цена и ограничения |
|---|---|---|
| Без swap | Нет обмена страницами с накопителем | При исчерпании памяти процессы могут быть завершены системой; меньше запас на краткий пик |
| Swap на SSD или другом диске | Дополнительный резерв памяти; может дать системе время пережить кратковременную нагрузку | Заметно медленнее RAM; активный обмен ухудшает отзывчивость, создаёт нагрузку на накопитель |
| zram | Сжатая область swap в RAM; может эффективнее использовать память при подходящей нагрузке | Сжатие расходует процессор и само занимает часть RAM; эффект зависит от данных и нагрузки |
| zram и swap на диске | Сжатый быстрый резерв и дополнительный запас на накопителе | Сложнее диагностика; обмен с диском всё равно может стать узким местом |
zram создаёт сжатое блочное устройство в оперативной памяти, которое можно использовать как swap. Это не дополнительная физическая память: выигрыш появляется потому, что некоторые данные после сжатия занимают меньше места, чем до него. zswap устроен иначе: это сжимающий кеш перед swap на накопителе, а не его полная замена. Поддержка и настройки зависят от дистрибутива.
Как выбрать размер
Для обычной рабочей нагрузки не рассчитывайте размер по формуле от объёма RAM. Начните с измерений: сколько памяти система использует при типичной работе и при пике, какие процессы растут, появляется ли активный обмен со swap. Смотрите динамику, а не одно значение в момент запуска.
Практический план:
- Зафиксируйте нагрузку. Измерьте потребление памяти в обычном режиме и во время реального пика: сборки, резервного копирования, обработки данных или одновременного запуска привычных приложений. Проверка: у вас есть наблюдения минимум для обоих сценариев, а не только оценка по объёму установленной RAM.
- Проверьте, нужен ли вам swap для гибернации. Требования зависят от способа настройки, объёма памяти и конфигурации дистрибутива. Проверка: документация именно вашей системы описывает требуемый размер и условия возобновления работы; не подменяйте эту проверку универсальной формулой.
- Выберите тип резерва. Для компьютера с нехваткой памяти проверьте, предлагает ли дистрибутив zram. Для системы, которой нужен дополнительный резерв или гибернация, рассмотрите swap на диске с учётом документации дистрибутива. Проверка: выбранный вариант поддерживается вашей системой и соответствует задаче.
- Наблюдайте после включения. Во время нагрузки проверяйте занятость памяти и swap, частоту чтения и записи, задержки приложений и сообщения о завершении процессов из-за нехватки памяти. Проверка: вы можете отличить краткий пик от постоянного обмена и связать изменения с конкретной нагрузкой.
- Меняйте размер только по результатам. Если swap быстро заполняется и система продолжает активно обмениваться с диском, увеличьте RAM, уменьшите потребление или пересмотрите архитектуру; увеличение swap может лишь отсрочить отказ. Проверка: после изменения повторите тот же сценарий и сравните показатели при сопоставимой нагрузке.
Если вам нужно одно начальное решение, выбирайте его по назначению: для кратких пиков — умеренный резерв, для гибернации — требования дистрибутива, для постоянной нехватки памяти — поиск причины и план расширения RAM. Не назначайте размер по чужому серверу: важны пик, характер страниц памяти и допустимые задержки именно вашей нагрузки.
Когда выбирать каждый вариант
- Swap на диске уместен, если нужен дополнительный резерв и вы принимаете более медленную работу при его использовании. На сервере особенно важно следить, не стал ли постоянный обмен источником задержек.
- zram стоит рассмотреть на системе, где сжатие может помочь эффективнее использовать RAM, а нагрузка не слишком чувствительна к дополнительной работе процессора. Сверьте настройки с документацией дистрибутива: наличие механизма в ядре не означает, что он включён и настроен одинаково везде.
- Комбинацию zram и дискового swap выбирайте, если у вас есть конкретная причина держать оба уровня резерва и вы умеете наблюдать за ними отдельно. Без мониторинга дополнительный уровень может усложнить поиск проблемы.
- Отказ от swap допустим не как универсальная оптимизация, а как осознанное решение для предсказуемой нагрузки, когда последствия исчерпания памяти понятны и приемлемы.
Что ломается на практике
Самая частая ошибка — считать большое значение свободного swap признаком запаса производительности. Важно, перемещает ли система страницы туда и обратно именно сейчас и страдают ли приложения от задержек. Смотрите на swap вместе с нагрузкой, доступной RAM и отзывчивостью сервиса.
Вторая ловушка — настраивать гибернацию по совету для другой системы. Требования зависят от конфигурации и способа восстановления; отдельно проверьте документацию дистрибутива и ограничения файловой системы. Например, для swap-файла на Btrfs могут понадобиться специальные условия создания. Не копируйте команду создания файла, не проверив инструкции для своей версии и файловой системы.
Третья — увеличивать swap, когда память постоянно занята утечкой, слишком большим кешем приложения или чрезмерным числом параллельных задач. Сначала найдите процесс и сценарий, которые создают нагрузку. Иначе проблема останется, а система просто дольше будет работать медленно.
Что проверить дальше
Для Linux с ядром 6.x начните с документации ядра по swap и zram, а затем сверяйтесь с руководством своего дистрибутива: именно он определяет, как включить и настроить эти механизмы в конкретной системе. На работающем сервере измеряйте не только занятый swap, но и активность обмена, доступную память, задержки запросов и события OOM. Если обмен идёт постоянно, следующий шаг — найти процесс, который создаёт давление на память, и проверить, нельзя ли уменьшить его потребление или добавить RAM.
Логотип и фирменный стиль: Три концепции разного характера, палитра с обоснованием, проверка на читаемость в малом размере и в один цвет.
Спросить за 60 ₽Источники: Linux kernel documentation: Swap, Linux kernel documentation: zram
Частые вопросы
Правда ли, что swap нужно делать вдвое больше оперативной памяти?
Если swap занят, значит ли это, что компьютеру не хватает памяти?
Можно ли полностью отключить swap на сервере?
zram заменяет swap на диске?
Что делать, если swap быстро заполняется?
Нужно ли выделять swap для гибернации?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.