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

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

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

MAATRIX

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

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

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

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

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

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

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

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

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

free -h

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

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

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

Арендовать VPS на Ubuntu 24.04

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

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

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

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

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

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

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

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

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

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

sudo sysctl vm.swappiness=10

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

Важно не путать swappiness с размером swap — это совсем разные вещи, и новички часто их смешивают. Размер задаёт, сколько всего места на диске доступно под подкачку. Swappiness задаёт, насколько рано система вообще начинает этим местом пользоваться. Можно иметь большой swap с низким swappiness — тогда подкачка велика, но задействуется только в крайнем случае, что и есть идеальная страховочная конфигурация для сервера. И наоборот, маленький swap с высоким swappiness приведёт к тому, что система будет постоянно тереться о диск и тормозить. Поэтому настраивать нужно оба параметра осознанно: размер — с запасом на пик, агрессивность — минимальную. Тогда swap выполняет ровно свою роль страховки, не влезая в повседневную работу и не замедляя её.

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

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

sudo sysctl vm.vfs_cache_pressure=50

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

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

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

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

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

Арендовать VPS на Ubuntu 24.04

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

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

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

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

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

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

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

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

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

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

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

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

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

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