Настройка swap-файла: когда он нужен, а когда вредит
Дата публикации: 24.04.2026

Настройка swap-файла: когда он нужен, а когда вредит

Хочу себе такие же кнопки
ccb9a536


Настройка swap-файла: когда он нужен, а когда вредит

Как не утонуть в оперативке и не утопить сервер в тормозах

Вы когда-нибудь видели, как компьютер начинает "заикаться", когда открыто слишком много вкладок? Или как сервер внезапно падает под нагрузкой, хотя по логике "железо" должно тянуть? Часто виноват не процессор и не сеть, а неправильная работа с памятью. И здесь на сцену выходит swap — спаситель в одних случаях и скрытый враг в других.

В этом уроке вы научитесь: ✅ Понимать, что такое swap и как он взаимодействует с оперативной памятью (RAM). ✅ Определять, нужен ли swap вашему серверу (спойлер: не всегда!). ✅ Настраивать swap-файл на Linux без риска сломать систему. ✅ Избегать типичных ошибок, которые превращают swap из помощника в тормоз.


1. Что такое swap и как он работает?

Аналогия: оперативная память vs. swap

Представьте RAM как стол вашего офиса:

  • Чем больше стол, тем больше документов (приложений) вы можете разложить перед собой и работать быстро.
  • Но если стол завален, а вам срочно нужен новый документ, вы временно убираете часть бумаг в ящик стола (swap). Достать их оттуда дольше, но хотя бы они не пропадут.

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

Параметр RAM Swap
Скорость Наносекунды Миллисекунды (HDD) / Микросекунды (SSD)
Тип памяти Энергозависимая Постоянная (на диске)
Стоимость Дорогая Дешёвая (дисковое пространство)

Когда срабатывает swap?

ОС начинает использовать swap в двух случаях:

  1. RAM заполнена (например, открыто 100 вкладок Chrome + базы данных + бэкапы).
  2. Ядро Linux решило, что некоторые данные в RAM давно не использовались и их можно "выгрузить" (это называется swappiness — об этом позже).

Важно! Swap не заменяет RAM. Это аварийный запас, а не постоянное решение. Если сервер постоянно использует swap, это сигнал: либо не хватает оперативки, либо что-то не оптимизировано.


2. Когда swap нужен, а когда вреден?

✅ Когда swap полезен

Сценарий Почему нужен swap
Мало RAM (≤4 ГБ) Даже на VPS с 1-2 ГБ swap поможет избежать краха при пиковых нагрузках.
Работа с большими файлами Например, обработка видео или базы данных, которые не помещаются в RAM.
Hibernation (спящий режим) В Linux swap используется для сохранения состояния системы при гибернации.
Арбитраж трафика Если у вас внезапный всплеск посетителей (например, после рекламной кампании), swap может спасти от падения.

❌ Когда swap вредит

Сценарий Почему swap вреден
SSD-диски Частая запись в swap сокращает срок службы SSD (у них ограниченное число циклов записи).
Высоконагруженные серверы Если swap используется постоянно, это сигнал, что нужно добавить RAM, а не надеяться на диск.
Базы данных (MySQL, PostgreSQL) Эти системы сами управляют кэшем в RAM. Swap может вызвать задержки в тысячи раз.
Серверы с NVMe Даже на быстрых NVMe swap будет тормозить по сравнению с RAM.

Правило большого пальца:

  • Если RAM ≥ 8 ГБ и сервер не перегружен → swap можно отключить или минимизировать.
  • Если RAM ≤ 4 ГБ или есть риск пиковых нагрузок → swap нужен, но с умом.

3. Как настроить swap-файл на Linux?

Шаг 1: Проверяем текущий swap

free -h        # Показывает использование RAM и swap
swapon --show  # Показывает активные swap-разделы

Если swap уже есть, но он на HDD, а у вас есть SSD, лучше перенести его на более быстрый диск.

Шаг 2: Создаём swap-файл

Рекомендуемый размер swap:

  • RAM ≤ 2 ГБ → swap = 2 × RAM (например, 4 ГБ).
  • RAM 2–8 ГБ → swap = 1 × RAM.
  • RAM > 8 ГБ → swap = 0.5 × RAM или отключить.

Пример для сервера с 4 ГБ RAM (создаём 4 ГБ swap):

sudo fallocate -l 4G /swapfile  # Создаём файл размером 4 ГБ
sudo chmod 600 /swapfile        # Защищаем файл (важно для безопасности!)
sudo mkswap /swapfile           # Форматируем как swap
sudo swapon /swapfile           # Активируем swap

Шаг 3: Делаем swap постоянным

Добавляем строку в /etc/fstab, чтобы swap подключался при загрузке:

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

Шаг 4: Настраиваем swappiness

Swappiness — это параметр ядра Linux, который определяет, насколько активно система будет использовать swap.

  • Значение 0 → swap используется только в крайнем случае (когда RAM заполнена).
  • Значение 60 (по умолчанию) → система активно сбрасывает неиспользуемые данные в swap.
  • Значение 100 → агрессивное использование swap (не рекомендуется).

Оптимальное значение для сервера: 10–30.

sudo sysctl vm.swappiness=10  # Временно устанавливаем

Чтобы сделать постоянно, редактируем /etc/sysctl.conf:

echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p  # Применяем изменения

Шаг 5: Проверяем производительность

vmstat 1 5  # Показывает использование swap в реальном времени

Если si (swap in) и so (swap out) постоянно больше 0 → система активно использует swap. Это плохой знак — нужно или добавить RAM, или оптимизировать приложения.


4. Типичные ошибки и как их избежать

Ошибка Последствия Как исправить
Swap на HDD при наличии SSD Медленная работа swap. Перенести swap на SSD.
Слишком большой swap Тратится место на диске, лишние записи. Уменьшить до разумных размеров.
Swappiness=60 (по умолчанию) Лишняя нагрузка на диск. Установить vm.swappiness=10.
Отсутствие swap на малом VPS Падение сервера при нехватке RAM. Создать swap-файл (даже 1–2 ГБ).
Swap на том же диске, что и база данных Конкуренция за ресурсы диска → лаги. Разнести swap и базу на разные диски.

5. Альтернативы swap: что делать, если swap вредит?

Если ваш сервер постоянно использует swap, это не лечится увеличением swap-файла. Нужно решать проблему в корне:

  1. Добавить RAM — самое простое решение, если бюджет позволяет.
  2. Оптимизировать приложения:
    • Настроить кэширование (Redis, Memcached).
    • Уменьшить количество одновременно работающих процессов.
    • Использовать легковесные альтернативы (например, Nginx вместо Apache).
  3. Использовать zRAM/zSwap — сжатие данных в RAM вместо выгрузки на диск.
    sudo modprobe zram
    echo 'zram' | sudo tee -a /etc/modules
  4. Отключить swap совсем (если RAM ≥ 16 ГБ и нагрузка стабильная):
    sudo swapoff -a
    sudo sed -i '/swap/d' /etc/fstab  # Удаляем строку swap из fstab

Практика для закрепления

Упражнение 1: Анализ текущего swap

  1. Запустите free -h и swapon --show на своём сервере.
  2. Ответьте:
    • Есть ли у вас swap? Какого размера?
    • На каком диске он расположен (HDD или SSD)?
    • Какое значение vm.swappiness? (узнать: cat /proc/sys/vm/swappiness)

Упражнение 2: Настройка swap

  1. Создайте swap-файл размером 2 ГБ в /swapfile2.
  2. Установите vm.swappiness=20.
  3. Проверьте, что swap появился в free -h.

Упражнение 3: Симуляция нехватки RAM

  1. Откройте несколько тяжёлых процессов (например, stress --vm 1 --vm-bytes 3G).
  2. Наблюдайте за swap с помощью vmstat 1.
  3. Ответьте:
    • Насколько активно используется swap?
    • Как это влияет на производительность?

Упражнение 4: Оптимизация для базы данных

Представьте, что у вас сервер с MySQL и 8 ГБ RAM.

  • Нужно ли здесь использовать swap? Почему?
  • Какое значение vm.swappiness вы бы установили?

Упражнение 5: Перенос swap на SSD

Если у вас есть и HDD, и SSD:

  1. Создайте новый swap-файл на SSD.
  2. Отключите старый swap (swapoff).
  3. Активируйте новый swap и сделайте его постоянным.

Ответы и разбор упражнений вы найдёте в следующем уроке. А если возникли вопросы — задавайте их в комментариях!


Полезные ссылки для дальнейшего изучения:


Регистрация на 🏰 VDSina без номера телефона (через почту)
Как не попасть на деньги при посуточной оплате (баланс и блокировки)
Обзор панели управления: где что лежит
Выбор тарифа: на что влияют vCPU, RAM и SSD
Разница между VDS и обычным хостингом (на пальцах)
Как выбрать операционную систему для новичка: Ubuntu vs Debian vs AlmaLinux
Установка сервера в один клик: кнопка «Создать»
Что такое root-пароль и где его сохранить
Первый вход по SSH через командную строку Windows
Первый вход по SSH через PuTTY (простая инструкция)
Первый вход по SSH через Termius (для телефона и ПК)
Как обновить пароль root в панеле VDSina
Базовые команды Linux: ls, cd, sudo, apt update
Как проверить, сколько ресурсов жрет ваш сервер (htop, free -h)
Установка панели управления сервером (ISPmanager) за 5 минут
Установка бесплатной панели FastPanel от 🏰 VDSina (родная)
Установка панели HestiaCP (бесплатно и просто)
Настройка файрвола (UFW) чтобы не взломали в первый же час
Как открыть порты 80 и 443 для сайта
Установка LAMP (Linux, Apache, MySQL, PHP) одной командой
Установка LEMP (Nginx вместо Apache) одной командой
Как забросить сайт на WordPress через панель 🏰 VDSina (готовый шаблон)
Ручная установка WordPress на чистый сервер
Создание базы данных MySQL для сайта через командную строку
Как привязать домен к серверу (настройка A-записи)
Выпуск бесплатного SSL-сертификата от Let's Encrypt
Настройка cron (заданий по расписанию) на VDSina
Автоматическое резервное копирование (бэкапы) в панеле VDSina
Как восстановить сервер из бэкапа за 2 минуты
Настройка VPN на 🏰 VDSina (OpenVPN) для новичка
Настройка WireGuard на 🏰 VDSina (быстрее и проще)
Как проверить, не заблокирован ли ваш IP в РФ
Смена IP-адреса сервера в панеле 🏰 VDSina (если заблокировали)
Как привязать свой ISO-образ для установки Windows Server
Установка бота для Telegram на Python на VDSina
Как запустить бота в фоне (screen и systemd для чайников)
Мониторинг сервера через встроенные графики VDSina
Как не переплатить: выключение сервера при простое (посуточная оплата)
Повышение тарифа без перезагрузки сервера (горячий апгрейд)
Как настроить уведомления о падении сервера в Telegram
Безопасность: запрет входа под root через SSH
Создание нового пользователя с правами sudo
Защита от DDoS (включение защиты в панеле VDSina)
Подключение сетевых дисков (блочные устройства) для дополнительного места
Миграция сайта с другого хостинга на 🏰 VDSina (пошагово)
Как удалить сервер и не забыть отключить оплату
Где брать помощь: техподдержка VDSina, чаты и форумы
Бонус: установка игрового сервера Minecraft (для друзей)
Бесплатный курс: "VDSina для чайников: Сервер за 5 минут: Эффективно и быстро"
Бесплатный виджет обратной связи для JavaScript
Чатрулетка: новый способ общения
Что такое видеочат рулетка и зачем
Фототехника для пейзажей
Как выбрать лучший render хостинг для 3D рендеров с Eevee
Логистика с Excel: бесплатный курс учёта остатков и подбора транспорта
Онлайн генератор паролей для Windows
Онлайн Сплетница субтитры
Оптимизация обработки форм GEO проекта
Пасхалки в сериале Dexter: раскрытие тайн
Погода в Ревде вечером
Родительский портал Воронеж
Роллы, которые не требуют рекламы
SEO-принципы для нейросетевых разработчиков
Собери 10 пакетов перцев с теплицы
Создание мемов без фотошопа: простые приемы
Сравнение Arsys хостинг сервисов для блогеров с WordPress на 2023 год
VDSina для новичков: советы для начала
Весь экран под циферблат
Видеочат с минимальной задержкой
Виртуальная девушка ИИ
Вложения в компании
Введение в нейросети бесплатно
рейтинг хостингов 2026 Быстрые VDS серверы