Wiki
Инфраструктура

swap — что это простыми словами

swap — область на диске, куда ядро Linux выгружает страницы памяти при нехватке RAM. Спасает от OOM-kill, но замедляет систему при активном использовании.

swap — виртуальная память на диске, используемая ядром, когда физической RAM не хватает. Ядро находит редко используемые страницы (например, кэш инициализации сервиса) и записывает их в swap, освобождая RAM для активных процессов. Когда страница нужна — читается назад (page-in), с задержкой в 100-1000× медленнее RAM даже на NVMe.

Форматы: swap-partition (отдельный раздел, mkswap /dev/sda2) — классика; swap-file (обычный файл в ФС, `fallocate -l 4G /swapfile && mkswap`) — гибче, современный стандарт. В `/etc/fstab` строкой `/swapfile none swap sw 0 0` для persistence.

Размер: старое правило `swap = 2× RAM` устарело. Для VPS 2-8 ГБ — swap 1-2× RAM. Для сервера с 128+ ГБ — обычно 4-8 ГБ swap как безопасность на случай fork-bomb, не для регулярной работы.

vm.swappiness — от 0 до 200, дефолт 60. Насколько агрессивно ядро выгружает страницы. Для БД-серверов ставят 1-10 (используй RAM максимально), для контейнерных хостов иногда 100+ (агрессивно освобождай RAM под кэш). Меняется `sysctl vm.swappiness=10` + `/etc/sysctl.conf`.

Опасно: (1) swap на HDD у активной БД — БД поймает секунды stalls при page-in, приложение ляжет. (2) swap заполнился = OOM-killer всё равно сработает, только позже. Swap — буфер, не решение. (3) шифрованный корень + swap без шифрования — leak конфиденциальных данных в swap.

Частые вопросы

Как посмотреть текущее использование swap?
`free -h`, `swapon --show`, `cat /proc/swaps`.
Можно ли на VPS работать без swap?
Да, если запас RAM 30-50 %. Многие облачные образы (Hetzner Cloud, DigitalOcean) идут без swap.