Добавление SWAP в Ubuntu
Что такое Swap и зачем он нужен?
Swap (подкачка) — это пространство на диске, которое используется, когда физической оперативной памяти (RAM) становится недостаточно. Когда система Linux исчерпывает доступную RAM, неактивные страницы памяти перемещаются в swap-пространство, освобождая место для активных процессов.
Swap может быть организован двумя способами:
- Swap-раздел — выделенный раздел на диске
- Swap-файл — обычный файл, используемый для подкачки
В современных версиях Linux (с ядром 2.6 и новее) производительность swap-файла практически не уступает swap-разделу, при этом файл гораздо удобнее в администрировании.
Создание swap-файла в Ubuntu
Шаг 1: Создание файла для swap
Откройте терминал (Ctrl+Alt+T) и выполните команду для создания файла размером 1 ГБ:
sudo fallocate -l 1G /swapfile
Если команда fallocate
не работает (может возникать на некоторых файловых системах), используйте альтернативу:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
Где:
bs=1024
— размер блока в байтахcount=1048576
— количество блоков (1024×1024 = 1 ГБ)
Шаг 2: Настройка прав доступа
Для безопасности ограничим доступ к файлу только для root:
sudo chmod 600 /swapfile
Шаг 3: Форматирование файла под swap
Инициализируем файл как swap-область:
sudo mkswap /swapfile
Шаг 4: Активация swap
Включим созданный swap-файл:
sudo swapon /swapfile
Шаг 5: Автоматическое подключение при загрузке
Отредактируем файл /etc/fstab
, добавив в конец строку:
/swapfile none swap sw 0 0
Или используйте команду для автоматического добавления:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Проверка работы swap
Убедимся, что swap активен:
sudo swapon --show
Или посмотрим общую информацию о памяти:
free -h
Пример вывода:
total used free shared buff/cache available
Mem: 3.9G 1.2G 1.5G 123M 1.1G 2.3G
Swap: 1.0G 0B 1.0G
Настройка параметра swappiness
Swappiness — это параметр ядра Linux, определяющий, как часто система будет использовать swap. Значение может быть от 0 до 100:
- 0 — система будет избегать использования swap
- 100 — система будет активно использовать swap
Проверим текущее значение:
cat /proc/sys/vm/swappiness
По умолчанию обычно стоит 60. Для серверов часто рекомендуют уменьшить это значение:
sudo sysctl vm.swappiness=10
Чтобы изменение сохранилось после перезагрузки, добавьте в /etc/sysctl.conf
:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
Удаление swap-файла
Если swap-файл больше не нужен:
- Отключите swap:
sudo swapoff -v /swapfile
- Удалите запись из
/etc/fstab
- Удалите сам файл:
sudo rm /swapfile
Рекомендации по размеру swap
Размер swap зависит от объема RAM и использования системы:
- Для настольных систем:
- До 4 ГБ RAM: минимум 2 ГБ swap
- 4-8 ГБ RAM: равен объему RAM
- Более 8 ГБ RAM: 0.5×RAM или меньше
- Для серверов:
- До 2 ГБ RAM: 2×RAM
- 2-8 ГБ RAM: равен объему RAM
- Более 8 ГБ RAM: 0.5×RAM или меньше
Для систем с hibernation (режим сна) swap должен быть не меньше объема RAM.
Заключение
Добавление swap-файла — простой способ увеличить доступную память системы без изменения разделов диска. Это особенно полезно для виртуальных машин и облачных серверов, где добавление swap-раздела может быть затруднено.
Помните, что swap — это не замена RAM, а лишь временное решение. Если система активно использует swap, стоит рассмотреть возможность увеличения физической памяти.