Подробный гайд: Swap-файл в Linux и объём 18400030736. Часть 2: разделы 11-17

Как создать, настроить, увеличить и удалить swap-файл в Linux: размер 18400030736 байт, команды, права, fstab, проверка, ошибки, гибернация и производительность.

2026.08.27                  


Подробный гайд: Swap-файл в Linux и объём 18400030736. Часть 2: разделы 11-17Подробный гайд: Swap-файл в Linux и объём 18400030736. Часть 2: разделы 11-17 Начало статьи в Первой части

11. Настройка swappiness

Параметр vm.swappiness влияет на то, насколько активно ядро использует swap.

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

cat /proc/sys/vm/swappiness

Обычно по умолчанию:

60

Для настольного компьютера или ноутбука часто используют:

10

Для серверов значения подбираются индивидуально. Слишком низкое значение может привести к нехватке памяти и OOM-killer.

Временно установить:



sudo sysctl vm.swappiness=10

Постоянно:

echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swappiness.conf
sudo sysctl --system

12. Приоритет нескольких swap-устройств

Если у вас несколько swap-разделов или файлов, можно задать приоритет.

Посмотреть текущие приоритеты:

swapon --show

Пример:

NAME       TYPE SIZE USED PRIO
/swapfile  file 17.1G   0B   -2
/dev/sda2 part  8.0G   0B   -3

Чем выше число, тем выше приоритет.

Временно:

sudo swapoff /swapfile
sudo swapon -p 100 /swapfile

Постоянно через /etc/fstab:

/swapfile none swap sw,pri=100 0 0

13. Особенности файловых систем

ext4

Обычно проблем нет. Можно использовать:

sudo fallocate -l 18400030736 /swapfile

или dd.

XFS

Обычно работает, но если fallocate даёт ошибку, используйте dd.

Btrfs

Для swap-файла на Btrfs есть особенности:

  • файл не должен быть в снапшоте;
  • лучше отключить COW для файла;
  • желательно создавать через dd, а не fallocate;
  • не должно быть сжатия данных для файла;
  • гибернация может требовать отдельной аккуратной настройки.

Пример для Btrfs:

sudo touch /swapfile
sudo chattr +C /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=17548 status=progress
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

chattr +C нужно выполнять до записи данных в файл.

ZFS

Swap-файлы на ZFS обычно не рекомендуются или не поддерживаются корректно. Для swap на ZFS лучше использовать ZVOL.

Пример:

sudo zfs create -V 18G pool/swap
sudo mkswap /dev/zvol/pool/swap
sudo swapon /dev/zvol/pool/swap

В /etc/fstab:

/dev/zvol/pool/swap none swap sw 0 0

NFS / сетевые ФС

Не используйте обычный файл на сетевой файловой системе как swap. Это может привести к нестабильности и проблемам с производительностью.


14. Гибернация и swap-файл

Если нужен не просто swap, а гибернация, одного файла может быть недостаточно.

Нужно настроить:

  1. Ядро.
  2. initramfs.
  3. Параметры загрузки.
  4. resume и resume_offset.
  5. Достаточный размер swap.

Обычно параметры выглядят примерно так:

resume=UUID=uuid-файловой-системы
resume_offset=offset-файла

Для swap-раздела обычно достаточно:

resume=UUID=uuid-раздела

Для swap-файла нужен ещё resume_offset.

Посмотреть UUID файловой системы:

sudo findmnt -no UUID /

Для поиска resume_offset часто используют:

sudo filefrag -v /swapfile

Но конкретная настройка сильно зависит от дистрибутива:

  • Ubuntu;
  • Debian;
  • Fedora;
  • Arch Linux;
  • RHEL/AlmaLinux/Rocky Linux.

Если гибернация критична, надёжнее использовать отдельный swap-раздел или LVM-том.


15. Частые ошибки

Ошибка: swapon failed: Invalid argument

Возможные причины:

  • файл разрежённый;
  • файл создан неправильно;
  • файловая система не поддерживает такой swap;
  • включено сжатие или COW, например на Btrfs;
  • файл лежит на неподдерживаемой ФС.

Решение:

sudo swapoff /swapfile
sudo rm /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=17548 status=progress
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Ошибка: insecure permissions

Решение:

sudo chmod 600 /swapfile
sudo chown root:root /swapfile

Ошибка: fallocate failed: Operation not supported

Используйте dd:

sudo dd if=/dev/zero of=/swapfile bs=1M count=17548 status=progress

Ошибка: swapon: /swapfile: already active

Файл уже используется как swap. Сначала отключите:

sudo swapoff /swapfile

Затем снова выполните:

sudo mkswap /swapfile
sudo swapon /swapfile

После перезагрузки swap не поднялся

Проверьте /etc/fstab:

cat /etc/fstab

Должна быть строка:

/swapfile none swap sw 0 0


Проверить без перезагрузки:

sudo swapoff -a
sudo swapon -a
swapon --show

16. Как удалить swap-файл

Отключить:

sudo swapoff /swapfile

Удалить файл:

sudo rm /swapfile

Удалить запись из /etc/fstab вручную:

sudo nano /etc/fstab

Найдите строку:

/swapfile none swap sw 0 0

и удалите её.

Проверить:

swapon --show
free -h

17. Итоговый практический сценарий

Если вам нужно создать своп-файл примерно на 18400030736 байт, то есть около 17.14 GiB, выполните:

sudo dd if=/dev/zero of=/swapfile bs=1M count=17548 status=progress
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Проверка:

swapon --show
free -h

Сделать постоянным:

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

Проверить применение:

sudo swapoff -a
sudo swapon -a
swapon --show

18. Краткая шпаргалка

# Проверить текущий swap
swapon --show
free -h
cat /proc/swaps

# Создать файл около 18400030736 bytes
sudo dd if=/dev/zero of=/swapfile bs=1M count=17548 status=progress

# Права
sudo chmod 600 /swapfile

# Разметить как swap
sudo mkswap /swapfile

# Включить
sudo swapon /swapfile

# Сделать постоянным
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

# Проверить
swapon --show
free -h

# Отключить и удалить
sudo swapoff /swapfile
sudo rm /swapfile

Если нужно именно точное значение 18400030736, сначала уточните единицы: байты это или килобайты. Если это байты — используйте команды выше. Если это килобайты из free или /proc/swaps, тогда речь идёт уже о размере около 17.14 TiB, и такой объём нужно проверять отдельно.


Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта