Подробный гайд по созданию и настройке Swap-файла в ALT Linux
Примечание:
- В ALT Linux (ветки P9, P10, KWorkstation, Server и др.) управление подкачкой выполняется стандартными утилитами ядра Linux. Дополнительные пакеты устанавливать не требуется. Все команды выполняются от имени root или через sudo.
Шаг 0: Проверка текущего состояния подкачки
Перед созданием убедитесь, что swap действительно отсутствует или его недостаточно:
free -h
swapon --show
cat /proc/swaps
Если вывод пуст или показывает малый объём – переходим к созданию.
Шаг 1: Выбор размера файла
| Объём ОЗУ | Рекомендуемый swap |
|---|---|
| ≤ 2 ГБ | 2× RAM |
| 2–8 ГБ | 1× RAM |
| 8–16 ГБ | 4–8 ГБ |
| > 16 ГБ | 4 ГБ (или отключить, если не используется гибернация) |
Для большинства современных систем достаточно 4–8 ГБ.
Шаг 2: Создание swap-файла
Рекомендуется использовать dd – он гарантированно создаёт файл без «дыр», что критично для стабильной работы подкачки.
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress
count=4096→ 4 ГБ. Для 8 ГБ укажите8192.status=progress→ отображает ход записи (поддерживается в coreutils ≥ 8.24, есть во всех современных ALT Linux).
Альтернатива:
`sudo fallocate -l 4G /swapfile`
работает быстрее, но не рекомендуется на XFS и старых ядрах, так как может привести
к ошибке `swapon:
failed: Invalid argument`.
Шаг 3: Установка прав доступа
Swap-файл должен быть доступен только root. Иначе swapon откажется его активировать.
sudo chmod 600 /swapfile
sudo chown root:root /swapfile
Шаг 4: Инициализация файла как swap
sudo mkswap /swapfile
Вывод будет примерно таким:
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Шаг 5: Включение подкачки
sudo swapon /swapfile
Проверка:
swapon --show
free -h
Вы должны увидеть /swapfile в списке устройств подкачки и увеличенный объём Swap: в free -h.
Шаг 6: Автозагрузка при старте системы
Чтобы swap-файл подключался после перезагрузки, добавьте запись в /etc/fstab.
1. Откройте файл (в ALT Linux удобен mcedit, идущий в комплекте с mc):
sudo mcedit /etc/fstab
2. Добавьте строку в конец:
/swapfile none swap sw 0 0
- Сохраните и выйдите.
4. Проверьте корректность синтаксиса:
sudo findmnt --verify --target /swapfile
или просто:
sudo swapon -a
Если ошибок нет – всё готово.
Поля fstab:
устройствоточка монтированиятипопцииdumppass. Для swap указываются именно такие значения.
Шаг 7: Оптимизация параметров ядра (опционально)
1. Параметр vm.swappiness
Определяет, насколько агрессивно ядро использует swap. Значение от 0 до 100.
- 60 – значение по умолчанию
- 10 – рекомендуется для SSD и десктопов (подкачка только при явной нехватке RAM)
- 0 – в современных ядрах означает «избегать подкачки, но не отключать полностью»
Настройка:
# Проверить текущее
cat /proc/sys/vm/swappiness
# Временно изменить
sudo sysctl vm.swappiness=10
# Постоянно: добавить в /etc/sysctl.d/99-local.conf
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.d/99-local.conf
sudo sysctl -p /etc/sysctl.d/99-local.conf
2. Параметр vm.vfs_cache_pressure (опционально)
Влияет на кэширование метаданных ФС. Значение 50 снижает нагрузку на диск при активной работе с файлами.
echo "vm.vfs_cache_pressure=50" | sudo tee -a /etc/sysctl.d/99-local.conf
sudo sysctl -p
Шаг 8: Финальная проверка
free -h
swapon --show
vmstat 1 5
В vmstat колонка si/so (swap in/out) должна быть близка к 0 в простое. Небольшие скачки при запуске тяжёлых приложений – норма.
Как удалить swap-файл
Если он больше не нужен:
sudo swapoff /swapfile
sudo sed -i '/\/swapfile/d' /etc/fstab
sudo rm -f /swapfile
Проверьте:
swapon --showиfree -h.
Особенности ALT Linux и частые проблемы
| Проблема | Решение |
|---|---|
swapon: failed: Invalid argument при использовании fallocate |
Пересоздайте файл через dd |
| Swap не подключается после перезагрузки | Проверьте права (600), синтаксис fstab, выполните sudo swapon -a |
Высокий iowait в top/htop |
Уменьшите swappiness, проверьте здоровье диска (smartctl -a /dev/sdX), возможно, нехватка RAM |
Файловая система btrfs |
Swap-файл на btrfs требует chattr +C /swapfile и отключения CoW для тома. Лучше использовать отдельный раздел или ext4/xfs |
Система использует systemd-swap (гибридная подкачка) |
В ALT Linux по умолчанию не включён. Если установлен, отключите службу systemctl disable --now systemd-swap перед ручным созданием файла |
Итоговые рекомендации
- Размещайте swap-файл на том же диске, что и
/, если это SSD. На HDD – избегайте фрагментации (файл создаётся целиком, поэтому фрагментация минимальна). - Не используйте swap как замену ОЗУ. Если система постоянно свопится – добавьте оперативную память.
- Для серверов с критичными требованиями к отзывчивости рассмотрите
zram(сжатие в RAM) вместо дискового swap.