Home » Технические мелочи и фичи – Как настраивать swap?
Технические мелочи и фичи – Как настраивать swap?

Технические мелочи и фичи – Как настраивать swap?

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

Введение: Почему swap — не просто «резервная память»

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

  • Swap медленнее RAM в десятки и сотни раз.
  • Если swap настроен криво, сервер превращается в тормозную печку.
  • Слишком большой swap — не всегда хорошо, а иногда даже зло.
  • Есть разные способы и форматы swap: раздел, файл, zram/zswap.

Короче, если не хочешь, чтобы твой проект в пике трафика лег из-за нехватки памяти — читай дальше.

Основы: Что такое swap и зачем он нужен

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

  • Плюсы: процессы не падают с ошибкой out of memory (OOM), сервер не умирает при пике нагрузки.
  • Минусы: если swap начинает активно использоваться — сайт/сервис начинает жутко тормозить.

В современных реалиях swap — не способ «увеличить» память, а страховка от внезапных out of memory. Особенно если у тебя VPS с 1-2 ГБ RAM, а на нём крутится и nginx, и mysql, и php-fpm, и ещё что-то своё.

Swap-раздел или swap-файл?

Есть два классических способа организовать swap:

  • Swap-раздел — отдельный раздел на диске. Надёжно, но не очень гибко (размер менять сложно).
  • Swap-файл — обычный файл на существующем разделе. Гибко, можно создавать/удалять/менять размер на лету.

Современные дистрибутивы (Ubuntu, Debian, CentOS, AlmaLinux и др.) всё чаще по умолчанию используют swap-файл. И это удобно!

Практика: Как добавить или изменить swap

Проверяем, есть ли swap


free -h
swapon --show

Если swap есть, увидишь его размер. Если нет — не беда, сейчас добавим.

Создаём swap-файл

  1. Создаём файл нужного размера (например, 2 ГБ):
    sudo fallocate -l 2G /swapfile
  2. Задаём права (очень важно!):
    sudo chmod 600 /swapfile
  3. Инициализируем swap:
    sudo mkswap /swapfile
  4. Включаем swap:
    sudo swapon /swapfile
  5. Добавляем в автозагрузку (чтобы swap не исчез после ребута):
    echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Всё, swap работает. Проверяем:

swapon --show

Если нужно другой размер — просто удаляешь старый файл, создаёшь новый.

Удаляем swap


sudo swapoff /swapfile
sudo rm /swapfile
# Не забудь убрать строку из /etc/fstab!

Swap-раздел (если хочется по старинке)

Создавать swap-раздел сейчас редко нужно, но вдруг пригодится:


sudo fdisk /dev/sdX # создать новый раздел типа Linux swap (82)
sudo mkswap /dev/sdXn
sudo swapon /dev/sdXn

И прописать в /etc/fstab по аналогии.

Тонкая настройка: swappiness и vm.vfs_cache_pressure

В Linux есть параметр swappiness — он определяет, как охотно система будет использовать swap. Значение от 0 до 100:

  • 0 — swap используется только при критической нехватке RAM.
  • 60 (по умолчанию) — система довольно активно свопит.
  • 10-20 — оптимально для большинства серверов (swap — резерв, а не основа).


# Посмотреть текущее значение
cat /proc/sys/vm/swappiness

# Временно изменить (до ребута)
sudo sysctl vm.swappiness=10

# Постоянно (в /etc/sysctl.conf)
echo ‘vm.swappiness=10’ | sudo tee -a /etc/sysctl.conf

Ещё один параметр — vm.vfs_cache_pressure — влияет на то, как быстро система очищает кеш inode/dentry. Обычно менять не нужно, но если хочется поиграться с оптимизацией — можно снизить до 50-100.

Кейсы и примеры: когда swap спасает, а когда вредит

Позитивный кейс

У тебя сайт на WordPress, 1ГБ RAM. Вдруг ночью сканеры/боты начинают атаковать сайт, нагрузка растёт, RAM заканчивается. Без swap — сервер падает, nginx отваливается, сайт недоступен. С 1-2ГБ swap — система выдерживает всплеск, ты утром просыпаешься, а сайт жив.

Негативный кейс

Ты поставил 8ГБ swap на VPS с 2ГБ RAM, думая «пусть будет запас». В какой-то момент сервисы начинают жрать память, всё уходит в swap, диск начинает трещать, сайт еле живой, время отклика — секунды, а то и десятки. Swap не должен быть костылём для нехватки RAM!

Плюсы и минусы swap-файла

  • Плюсы: легко масштабировать, не требует отдельного раздела, можно быстро удалить/добавить.
  • Минусы: чуть медленнее swap-раздела (но на SSD разница минимальна), может фрагментироваться на очень загруженных системах.

Плюсы и минусы swap-раздела

  • Плюсы: надёжно, чуть быстрее на HDD, не фрагментируется.
  • Минусы: сложно менять размер, нужен отдельный раздел.

Бонус: ошибки новичков, советы и мифы

Частые ошибки

  • Забыли задать права на swap-файл (chmod 600) — система ругается или не активирует swap.
  • Поставили слишком высокий swappiness — система начинает свопить даже при наличии свободной RAM.
  • Сделали swap больше, чем размер RAM в 2-4 раза — диск забивается, производительность падает.
  • Не прописали swap в /etc/fstab — после перезагрузки swap исчезает.

Мифы о swap

  • «Swap — это плохо, всегда отключайте!» — неправда. Swap нужен как страховка, просто не стоит на него полагаться.
  • «Чем больше swap, тем лучше» — тоже миф. Большой swap не заменяет RAM, а при активном использовании сильно тормозит систему.
  • «SSD умирает от swap» — современные SSD спокойно держат своп, если не долбить его терабайтами ежедневно.

Советы по выбору swap

  • Для VPS/серверов с 1-4ГБ RAM — swap 1-2ГБ более чем достаточно.
  • Если у тебя RAM 8ГБ и выше — swap можно делать 1ГБ или вообще не делать (если уверен, что хватит RAM).
  • Для production-серверов — swap обязателен, но с низким swappiness (10-20).
  • Для тестовых/разовых задач можно swap не делать.

Альтернативы: zswap и zram

В новых ядрах Linux есть прикольные фичи:

  • zram — сжимает данные прямо в RAM, работает как очень быстрый swap (но жрёт CPU).
  • zswap — сжимает данные перед записью в обычный swap.

Для VPS с очень ограниченной памятью zram может быть полезен. Подробнее: https://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html

Заключение: Итоги и рекомендации

Swap — не волшебная палочка, а страховка от внезапных проблем с памятью. Делай swap-файл 1-2ГБ, если у тебя мало RAM, и не забывай про swappiness. Не полагайся на swap как на замену оперативки — если проект растёт, добавь RAM. А swap пусть будет как подушка безопасности, чтобы твой сайт не падал в самый неподходящий момент.

Настройка swap — это не rocket science, но и не «галочка в панели». Надо понимать, зачем он нужен, и как не сделать хуже. Если остались вопросы — пиши в комментариях, всегда рад помочь!

Официальные ссылки по теме:

Удачи в оптимизации и пусть swap будет только на подстраховку!


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

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked