На сервере с гигабайтом памяти swap — не роскошь, а условие, при котором обычные операции вообще выполнимы. Сборка образа, установка пакетов, разовая обработка большого файла спокойно съедают больше доступного, и без файла подкачки процесс просто убивается.
Процесс исчезает без объяснений. В выводе команды ничего внятного, зато в системном журнале находится запись ядра:
journalctl -k | grep -i "out of memory"
Там будет строка про убитый процесс и его потребление. Полезно сразу посмотреть, кто именно попал под раздачу: иногда ядро выбирает не того, кто виноват, а того, кто занимал больше всех в этот момент.
Отдельный раздел под подкачку на облачном сервере создавать неудобно, файл ничем не хуже:
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
Права обязательно 600: иначе содержимое памяти окажется доступно на чтение любому пользователю системы. Проверка результата — swapon --show и free -h.
Размер в два гигабайта при одном гигабайте памяти — рабочий ориентир. Больше смысла мало: если приложение регулярно уходит в подкачку такими объёмами, сервер просто мал для задачи.
Swap спасает от аварийного завершения, но не заменяет память. Если рабочий набор данных не помещается в оперативную, система начинает непрерывно перекладывать страницы, и производительность падает в разы. Внешне это выглядит хуже падения: сервис вроде жив, но отвечает десятки секунд.
Отсюда практическое правило: подкачка нужна как подушка для пиков, а не как постоянный режим работы. Если free -h в обычной нагрузке показывает заметное использование swap, надо не тюнить параметры, а добавлять память.
Значение по умолчанию — шестьдесят, оно ориентировано на десктоп и охотно выгружает страницы заранее. Для сервера с базой или активным кешем разумнее уменьшить:
vm.swappiness = 10
vm.vfs_cache_pressure = 50
Кладётся в /etc/sysctl.d/ и применяется через sysctl -p. Первое значит «уходить в подкачку только при реальной нехватке», второе — чуть дольше держать кеш метаданных файловой системы, что заметно на операциях с большим количеством мелких файлов.
На дисках без запаса по ресурсу записи стоит помнить, что активная подкачка — это постоянная запись. Ещё один довод в пользу того, чтобы swap оставался страховкой, а не рабочим инструментом.