LinuxНизкая

Создание и настройка swap-файла в Linux

В этом гайде вы узнаете, как создать, настроить и активировать swap-файл в Linux для увеличения виртуальной памяти. Подробные команды и пояснения.

Обновлено 14 февраля 2026 г.
10-15 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 20.04+CentOS 7+Debian 10+Any Linux with kernel 3.0+

Введение

Swap-файл (файл подкачки) — это область на диске, которая используется как расширение оперативной памяти (RAM) при её нехватке. В отличие от swap-раздела, файл проще создать, изменить размер или удалить без переразметки диска. Этот гайд подробно опишет, как настроить swap-файл в Linux, начиная с создания и заканчивая постоянным включением.

Предварительные проверки

Перед созданием swap-файла убедитесь, что:

  1. Достаточно свободного места на целевом разделе. Swap-файл не должен занимать более 50% свободного места, если вы планируете его использовать для гибернации.
  2. Нет конфликтующих swap-устройств. Проверьте текущий swap:
    swapon --show
    
    Если вывод пуст, swap не активен. Если есть активные swap-разделы или файлы, вы можете добавить ещё один.
  3. У вас есть права sudo. Для всех операций требуются права администратора.

Шаг 1: Создание файла swap

Рекомендуемый способ — fallocate, так как он быстро выделяет место без записи нулей. Альтернатива — dd, который медленнее, но заполняет файл нулями.

Пример для 4 ГБ swap-файла:

sudo fallocate -l 4G /swapfile

Если fallocate недоступен (редкие случаи), используйте dd:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=4194304

Здесь bs=1024 — блок 1 КБ, count=4194304 — 4 ГБ в КБ.

💡 Совет: Размер swap зависит от объёма RAM и сценария использования. Для настольных систем с 4-8 ГБ RAM достаточно 2-4 ГБ swap. Для серверов с большим RAM swap может быть меньше 1x.

Шаг 2: Настройка прав доступа

Swap-файл должен быть доступен только root для безопасности:

sudo chmod 600 /swapfile

Это предотвращает чтение или запись другими пользователями.

Шаг 3: Форматирование файла как swap

Подготовьте файл с помощью mkswap:

sudo mkswap /swapfile

Вывод покажет UUID и размер. Пример:

Setting up swapspace version 1, size = 4 GiB (4294967296 bytes)
no label, UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Запишите UUID — он понадобится для /etc/fstab (опционально, но рекомендуется для стабильности).

Шаг 4: Активация swap-файла

Включите swap без перезагрузки:

sudo swapon /swapfile

Проверьте, что swap активен:

swapon --show

Или:

free -h

В выводе free найдите строку Swap:. Она должна показывать общий размер и используемое пространство.

Шаг 5: Постоянное включение через fstab

Чтобы swap активировался при каждой загрузке, добавьте запись в /etc/fstab. Используйте один из двух вариантов:

Вариант A: по пути файла (проще)

/swapfile none swap sw 0 0

Вариант B: по UUID (надёжнее, если путь может измениться)

UUID=ваш-uuid none swap sw 0 0

UUID можно узнать через sudo blkid /swapfile.

⚠️ Важно: Не используйте опции defaults или auto для swap в fstab. Только sw (swap) и 0 0 для дампа и проверки.

После редактирования /etc/fstab проверьте синтаксис:

sudo mount -a

Если ошибок нет, swap будет работать после перезагрузки.

Шаг 6: Настройка параметра swappiness (опционально)

vm.swappiness контролирует, насколько агрессивно ядро будет использовать swap. Значение от 0 (минимальное использование) до 100 (активное). По умолчанию обычно 60.

Посмотреть текущее значение:

cat /proc/sys/vm/swappiness

Временно изменить (до перезагрузки):

sudo sysctl vm.swappiness=10

Для постоянного изменения добавьте в /etc/sysctl.conf:

vm.swappiness=10

И примените: sudo sysctl -p.

Удаление swap-файла (если нужно)

  1. Отключите swap:
    sudo swapoff -v /swapfile
    
  2. Удалите файл:
    sudo rm /swapfile
    
  3. Удалите строку из /etc/fstab (если добавляли).
  4. Проверьте swapon --show — файл больше не должен быть в списке.

Дополнительные рекомендации

Выбор места для swap-файла

  • SSD vs HDD: На SSD swap работает быстрее, но увеличивает износ. Для современного SSD с долгим ресурсом это не критично. На HDD swap будет медленным, но лучше чем крах системы.
  • Расположение: Размещайте swap-файл в корневом разделе (/) или отдельном, с достаточным свободным местом. Избегайте сетевых файловых систем (NFS) — swap требует низких задержек.

Мониторинг использования

Регулярно проверяйте, используется ли swap:

watch -n 5 free -h

Если used в строке Swap часто выше нуля, возможно, не хватает RAM. Рассмотрите добавление RAM или оптимизацию приложений.

Swap-файл и гибернация

Если вы используете гибернацию (сохранение состояния в swap перед выключением), размер swap-файла должен быть не меньше объёма RAM. В противном случае гибернация невозможна.

Увеличить swap-файл без перезагрузки

  1. Отключите текущий swap: sudo swapoff /swapfile.
  2. Увеличьте файл: sudo fallocate -l 8G /swapfile (или dd).
  3. Повторите шаги 2-4 (права, mkswap, swapon).
  4. Обновите fstab, если изменился путь или UUID.

Заключение

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

Часто задаваемые вопросы

Можно ли использовать swap-файл вместо раздела подкачки?
Какой размер swap-файла выбрать?
Как удалить swap-файл?
Влияет ли swap на производительность?

Полезное

Проверка текущего swap
Создание файла swap
Настройка прав доступа
Форматирование как swap
Активация swap-файла
Добавление в fstab

Эта статья помогла вам решить проблему?