Перейти к содержимому

Файл подкачки (swap)

Создать swap-файл, подключить его навсегда через fstab и настроить vm.swappiness.

Уровень
Новичок
Время чтения
2 мин чтения
Обновлено
Проверено на
Ubuntu 22.04, Ubuntu 24.04, Debian 12
Содержание
  1. Проверьте, есть ли swap
  2. Какой размер выбрать
  3. Создайте swap-файл
  4. Подключайте swap при загрузке
  5. Настройте vm.swappiness
  6. Проверьте результат
  7. Как убрать swap

Swap — место на диске, куда ядро выгружает редко используемые страницы памяти. Он не заменяет оперативную память: диск намного медленнее. Но небольшой swap страхует от внезапного OOM killer, когда сборка, обновление или пик нагрузки ненадолго съедают всю память.

Проверьте, есть ли swap

bash
$ swapon --show$ free -h

Если swapon --show ничего не вывел, а в строке Swap у free нули — подкачки нет.

Какой размер выбрать

Память сервераРазумный swap
1–2 ГБравный объёму памяти
4–8 ГБ2–4 ГБ
16 ГБ и больше4 ГБ, если нагрузка не требует иного

Это отправная точка, а не правило. Если сервер постоянно активно пишет в swap, нужно не увеличивать его, а добавлять память или разбираться, кто её расходует.

Создайте swap-файл

bash
$ fallocate -l 2G /swapfile$ chmod 600 /swapfile$ mkswap /swapfile$ swapon /swapfile

Подключайте swap при загрузке

bash
$ echo '/swapfile none swap sw 0 0' >> /etc/fstab

Настройте vm.swappiness

Параметр vm.swappiness задаёт, насколько охотно ядро уходит в подкачку; по умолчанию 60. Для сервера с базой данных или веб-приложением часто ставят 10: swap используется, только когда памяти действительно не хватает.

bash
$ echo 'vm.swappiness=10' > /etc/sysctl.d/99-swap.conf$ sysctl --system

Проверьте результат

bash
$ swapon --show$ cat /proc/sys/vm/swappiness

Как убрать swap

bash
$ swapoff /swapfile$ rm /swapfile

И удалите строку /swapfile из /etc/fstab.

Дочитайте до конца — статья засчитается в обучении автоматически.

  • swap
  • подкачка
  • память
  • oom
  • swappiness

Статья помогла?