MAATRIX / Блог / Правильный размер swap для VPS

Правильный размер swap для VPS

Правильный размер swap для VPS

MAATRIX

Сколько swap ставить на VPS — вопрос, на который в интернете дают противоречивые ответы: одни советуют вдвое больше RAM, другие говорят, что swap на сервере вреден. Истина посередине и зависит от задачи. Ниже разберём, какой правильный размер swap для VPS выбрать под разный объём памяти, когда он спасает, а когда мешает, и как настроить его так, чтобы он помогал, а не тормозил — с таблицей, командами и практикой эксплуатации сервера.

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

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

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

Что такое swap и зачем он на сервере

Swap — это область на диске, куда система выгружает неактивные страницы памяти, когда оперативной не хватает. Он работает как расширение RAM, но в десятки раз медленнее, потому что диск несравнимо медленнее памяти. Главная роль swap на сервере — не добавить памяти, а подстраховать от падений: при кратковременном всплеске потребления сервер выгрузит редко используемые страницы в swap вместо того, чтобы упереться в потолок и начать убивать процессы через OOM-killer.

Устаревший совет «swap вдвое больше RAM» родом из эпохи, когда памяти было мало, а диски были обычные жёсткие. Для современного VPS это правило почти всегда избыточно и бессмысленно: если серверу реально нужно вдвое больше памяти, чем есть, его надо не свопить до смерти, а добавить RAM. Разумный swap на VPS — это скромная страховочная подушка, а не полноценная замена памяти.

Стоит учесть особенность именно виртуальных серверов, которой не было в старых рекомендациях. На VPS диск нередко сетевой или общий с соседями по узлу, и обращение к swap на таком диске ещё медленнее и менее предсказуемо, чем на локальном SSD физической машины. Это лишний аргумент против больших объёмов swap на виртуалке: чем активнее сервер свопит на медленный сетевой диск, тем сильнее страдает отзывчивость, причём непредсказуемо, рывками. Кроме того, на VPS место на диске обычно ограничено тарифом, и отдавать несколько гигабайт под редко используемый swap — значит отнимать их у данных. Поэтому на виртуальном сервере особенно оправдан скромный swap ровно как подушка на короткие всплески: он занимает немного места, спасает от внезапного OOM в пиковую секунду, но не превращается в костыль, на котором сервер пытается работать постоянно. Если же вы замечаете, что виртуалка регулярно и надолго уходит в swap, это почти всегда дешевле и надёжнее решить повышением тарифа по памяти, чем наращиванием файла подкачки.

Таблица: сколько swap под какой объём RAM

Практические ориентиры для типового VPS выглядят так. Это не жёсткий закон, а разумная отправная точка, от которой стоит плясать под свою задачу.

RAM сервераРекомендуемый swapКомментарий
1 ГБ1–2 ГБСтраховка критична, памяти в обрез
2 ГБ2 ГБКомфортная подушка на пики
4 ГБ2–4 ГБДостаточно для большинства задач
8 ГБ и больше2–4 ГББольше обычно не нужно

Логика простая: на маленьких серверах swap важнее всего, потому что памяти мало и любой всплеск грозит падением, — здесь подушка в один-два гигабайта реально спасает. На серверах с большим объёмом RAM смысл swap снижается: если у вас 16 гигабайт и они кончаются, гигантский swap не спасёт, а лишь замедлит агонию, — правильнее разбираться с потреблением или добавлять память. Поэтому и на 8, и на 16 гигабайтах хватает тех же 2–4 гигабайт swap как страховки.

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

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

Арендовать VPS

Как создать swap правильного размера

Настройка swap занимает пару минут. Создайте файл подкачки нужного размера, разметьте его и включите. Пример для двух гигабайт:

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

Права 600 обязательны — файл подкачки не должен быть доступен посторонним. Чтобы swap подключался автоматически после перезагрузки, добавьте его в /etc/fstab:

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

Проверьте, что swap подключился, командой swapon --show или тем же free -h. Если позже понадобится изменить размер, swap можно отключить командой swapoff, удалить файл и создать новый нужного объёма — операция безопасная, если на сервере есть свободная память на момент отключения.

Настройка swappiness

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

Для сервера разумно понизить swappiness до 10, чтобы система прибегала к swap только при реальной нехватке памяти, а не гоняла в него страницы заранее:

sysctl vm.swappiness=10
echo 'vm.swappiness=10' >> /etc/sysctl.conf

Первая команда применяет значение сразу, вторая закрепляет его после перезагрузки. С таким значением swap выполняет свою роль подушки безопасности, но не мешает быстрой работе с памятью в обычном режиме. Это тонкая, но важная настройка, которую часто забывают, а зря — правильный swappiness ощутимо влияет на отзывчивость сервера.

Стоит понимать, что swappiness управляет склонностью системы к свопу, но не запрещает его полностью даже при значении близком к нулю. Нулевое значение не отключает swap — оно лишь просит систему прибегать к нему в самую последнюю очередь, когда иных вариантов не осталось. Полностью отключать swap на сервере обычно не стоит: без него у системы нет запасного выхода при внезапном всплеске, и вместо лёгкого замедления вы получите жёсткое срабатывание OOM-killer и убитые процессы. Поэтому золотая середина для большинства серверов — держать небольшой swap включённым и понизить swappiness, чтобы он оставался именно аварийной подушкой, а не рабочим инструментом на каждый день.

Когда swap не поможет

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

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

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

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

Арендовать VPS

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

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

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

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

Правда ли, что swap должен быть вдвое больше RAM?

Это устаревший совет из эпохи малой памяти и медленных дисков. Для современного VPS хватает 1–4 ГБ swap как страховки, независимо от большого объёма RAM.

Сколько swap ставить на 1 ГБ RAM?

Один-два гигабайта: на маленьком сервере swap критичен как подушка от падений, потому что памяти в обрез и любой всплеск грозит срабатыванием OOM-killer.

Что такое swappiness и зачем его менять?

Это параметр, определяющий, насколько рано система свопит. Для сервера его понижают до 10, чтобы swap использовался только при реальной нехватке, а не заранее.

Swap заменяет добавление памяти?

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

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

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