Совет «памяти много, swap не нужен» встречается часто и звучит логично. На практике он приводит к тому, что вместо замедления вы получаете убитый процесс.
Что произойдёт без swap
Когда память кончается, ядро не тормозит — оно вызывает OOM killer, который выбирает жертву по эвристике и завершает её сигналом KILL. Чаще всего жертвой оказывается самый крупный процесс, то есть ваша база данных.
С swap у системы появляется запас: редко используемые страницы уезжают на диск, приложение продолжает работать, пусть и медленнее. Медленно — это состояние, которое вы заметите и почините. Убитый процесс — это простой.
Сколько выделять
Для сервера с 8 ГБ разумно 2–4 ГБ. Цель не «удвоить память», а дать ядру пространство для манёвра.
fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
Чтобы swap подключался после перезагрузки, добавьте строку в /etc/fstab:
/swapfile none swap sw 0 0
Настройте swappiness
Значение по умолчанию 60 слишком охотно выгружает страницы на сервере с NVMe. Разумнее 10:
sysctl vm.swappiness=10
Это означает «используй swap, только когда действительно припёрло» — ровно то поведение, которое нужно.
