Настройка 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 и сделайте его постоянным.

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


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


Генератор паролей с длинной 64 символа
Женская одежда с бахромой
Кадастровые работы в Бийске
Как Aptum хостинг помогает малым бизнесам в управлении CRM-системами
Как выбрать планировку сайта для блогов на DreamHost
Как выбрать Vdsina вечный хостинг для своего проекта
Казань окна VEKA - профессионализм и опыт
Курьерская вода
Новостройки Оренбурга: недвижимость с отличной ценой
Онлайн чат-партнерство
Пиломатериалы для возведения бани
Почему VDSina — лучший выбор хостинга
Секреты Вконтакте: тонкости и хитрости
Скидки до 50% на тур в Коста-Рике
Видеочат рулетка бесплатно
рейтинг хостингов 2026 Быстрые VDS серверы