MAATRIX / Блог / Debian 12: настройка swap и производительности с нуля

Debian 12: настройка swap и производительности с нуля

Debian 12: настройка swap и производительности с нуля

MAATRIX

Когда серверу не хватает оперативной памяти, ядро Linux начинает убивать процессы — и падает то база, то веб-сервер. Настройка swap и производительности Debian 12 с нуля даёт системе страховочную подушку: файл подкачки на диске подхватывает то, что не влезло в RAM, а тонкая настройка параметров ядра выжимает из скромного VPS максимум. Разберём по шагам, как создать swap, правильно выставить его агрессивность и подкрутить систему под реальную нагрузку.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Зачем нужен swap и когда он мешает

Swap (подкачка) — это область на диске, которую система использует как «медленную дополнительную память». Когда оперативная память заканчивается, ядро выгружает в swap редко используемые страницы, освобождая RAM для активных задач. Без swap на VPS с 1 ГБ памяти достаточно одного всплеска нагрузки, чтобы сработал OOM-killer и прибил важный процесс. Файл подкачки эту ситуацию сглаживает: вместо аварийного завершения система просто немного замедляется.

Но есть и обратная сторона, о которой честно стоит сказать. Диск в разы медленнее оперативной памяти, поэтому если сервер постоянно активно работает через swap, производительность резко падает — это состояние называют «свопингом до смерти». Swap — страховка на случай пиков, а не замена нормальному объёму RAM. Если ваш сервер живёт в swap постоянно, правильное решение не «увеличить подкачку», а взять тариф с большим объёмом памяти. Держите это в голове: swap лечит редкие пики, а не хроническую нехватку.

Проверяем текущее состояние памяти

Сначала посмотрите, сколько памяти и swap уже есть:

free -h

Флаг -h показывает значения в человекочитаемом виде. Если в строке Swap стоят нули, подкачки нет, и мы её создадим. Многие минимальные образы Debian на VPS идут вообще без swap — это как раз тот случай. Заодно оцените строку Mem: сколько памяти всего и сколько занято, это отправная точка. Полезно взглянуть и на свободное место на диске командой df -h, потому что файл подкачки займёт место в файловой системе, и его должно хватать.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS на Debian 12

Создаём файл подкачки

Оптимальный размер swap для сервера обычно равен объёму RAM или чуть больше — для 1–2 ГБ памяти достаточно файла на 2 ГБ. Создайте его, выделив место, задав права и отформатировав под подкачку:

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

Разберём по шагам. fallocate -l 2G мгновенно создаёт файл нужного размера. chmod 600 закрывает файл от чтения посторонними — важно, ведь в подкачке может оказаться чувствительная информация. mkswap размечает файл как область подкачки, а swapon включает её немедленно. Проверьте результат командой free -h — теперь в строке Swap появится 2 ГБ. Все команды выполняются под root или через sudo.

Стоит пояснить, почему мы делаем именно файл подкачки, а не отдельный раздел swap, как советовали старые руководства. Раньше swap выносили в специальный раздел диска, и изменить его размер потом было сложно — приходилось переразбивать диск. Файл подкачки лишён этого недостатка: он живёт в обычной файловой системе, и его размер меняется элементарно. Понадобилось больше — выключаете swap командой swapoff, удаляете файл, создаёте новый нужного размера и снова включаете. Понадобилось меньше — та же процедура в обратную сторону. Для облачного VPS, где диск обычно единый и не разбит на разделы, файл подкачки — единственный удобный вариант, и никаких недостатков по сравнению с разделом на современных системах у него нет. Поэтому современные руководства, включая это, рекомендуют именно файл.

Делаем swap постоянным

Команда swapon включает подкачку только до перезагрузки. Чтобы swap подключался автоматически при каждом старте, добавьте его в таблицу файловых систем:

echo '/swapfile none swap sw 0 0' >> /etc/fstab

Эта строка говорит системе при загрузке подключать /swapfile как область подкачки. Без неё после первой же перезагрузки swap исчезнет, и вы можете этого не заметить, пока сервер снова не упрётся в нехватку памяти. Проверить корректность записи можно, выполнив swapoff /swapfile && swapon -a — если ошибок нет, значит /etc/fstab прописан правильно и swap поднимется при старте.

Настраиваем swappiness

Параметр vm.swappiness определяет, насколько охотно ядро использует swap: чем выше значение (по умолчанию 60), тем раньше система начинает выгружать данные на диск. Для сервера это часто слишком агрессивно — мы хотим, чтобы swap включался только при реальной нехватке RAM. Снизьте значение:

sysctl vm.swappiness=10

Значение 10 означает: пользуйся оперативной памятью до последнего, а к медленному диску обращайся только когда RAM почти закончилась. Чтобы настройка пережила перезагрузку, допишите строку vm.swappiness=10 в файл /etc/sysctl.conf. Важно не путать swappiness с размером swap: размер задаёт, сколько всего места доступно под подкачку, а swappiness — насколько рано система вообще начинает им пользоваться. Идеал для сервера — достаточный по размеру swap с низким swappiness: подкачка велика, но задействуется только в крайнем случае.

Тонкая настройка производительности

Помимо swappiness стоит подкрутить параметр vm.vfs_cache_pressure, отвечающий за то, как активно система вытесняет кэш файловой системы. Снижение его до 50 помогает дольше держать в памяти информацию о файлах, ускоряя работу с диском:

sysctl vm.vfs_cache_pressure=50

Не увлекайтесь бездумной правкой десятков параметров sysctl — чаще это вредит, чем помогает. На типовом VPS достаточно двух настроек: swappiness и vfs_cache_pressure. Все изменения, которые должны пережить перезагрузку, вносите в /etc/sysctl.conf и применяйте командой sysctl -p. Так вы держите настройки в одном месте и всегда понимаете, что и зачем поменяли. Консервативный подход особенно в духе Debian: менять только то, что реально даёт эффект, и не трогать остальное.

Проверяем результат и следим за нагрузкой

После настройки понаблюдайте за поведением сервера под реальной работой. Команда free -h покажет, используется ли swap; команда vmstat 1 в реальном времени отобразит колонки si и so — объём данных, уходящих в подкачку и возвращающихся из неё. Если эти значения почти всегда нулевые, а всплески редки, — настройка идеальна: swap стоит подушкой и не тормозит систему. Если же si/so постоянно ненулевые, сервер хронически упирается в память, и честный вывод один — пора добавить оперативной памяти, увеличив тариф. Swap своё дело сделал, но железо тоже имеет предел, и признать это вовремя дешевле, чем терпеть постоянные тормоза.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS на Debian 12

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Частые вопросы

Какого размера делать swap?

Для сервера обычно берут объём, равный RAM, или чуть больше. Для 1–2 ГБ памяти хватает файла на 2 ГБ; огромный swap не имеет смысла — если он активно нужен, проблема в нехватке RAM.

Swap на SSD не убивает диск?

Современные SSD рассчитаны на большой ресурс записи, а при низком swappiness подкачка используется редко. Для страховки от пиков это безопасно.

Можно ли обойтись без swap вообще?

На сервере с запасом RAM — да, но даже небольшой файл подкачки страхует от аварийного завершения процессов при внезапном всплеске. Полностью отказываться рискованно.

Как оплатить VPS с большим объёмом RAM из России?

У MAATRIX доступна оплата картой российского банка, по СБП, криптовалютой и токеном MAAT — иностранная карта не требуется.

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.