Назад к инструментам

Калькулятор размера RAM и Swap

Укажите вашу RAM и нагрузку и получите рекомендацию по размеру swap с точными командами — плюс обратную проверку для уже настроенного сервера. Случай игрового сервера рассматривается честно: ему обычно нужно мало swap или вообще не нужно.

Ваш сервер

RAM и нагрузка

Это отправная эвристика, а не гарантия — реальные нагрузки различаются. Следите за реальным давлением на память и корректируйте.

Рекомендация

Размер swap
2 GB
vm.swappiness
60 (по умолчанию)
Эвристика, а не истина в последней инстанции. Используемая эвристика: swap = RAM до 2 ГБ, затем примерно половина RAM, скорректированная под веб-сервер (nginx/php/node, умеренный трафик) и ограниченная сверху, чтобы не раздуваться на очень крупных инстансах. Считайте это отправной точкой — следите за реальным использованием swap (free -h, vmstat) и корректируйте, а не доверяйте слепо.

Команды

Создайте и включите файл swap

Выполняйте от root или через sudo. Создаёт файл, ограничивает права только владельцем, форматирует его, активирует и делает так, чтобы он сохранялся после перезагрузки.

1 — выделить файл (fallocate, быстрый путь)

fallocate -l 2G /swapfile

Некоторые файловые системы (в частности ZFS и старые настройки Btrfs) не поддерживают fallocate для файлов swap. Если так случилось, используйте dd — медленнее, но работает везде:

1b — резервный вариант (dd)

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

2 — ограничить права доступа

chmod 600 /swapfile

Файл swap, доступный для чтения другим пользователям, — реальная уязвимость: всё, что ядро когда-либо выгружало на диск, включая секреты, кратко находившиеся в RAM, может оказаться в этом файле.

3 — форматировать и активировать

mkswap /swapfile
swapon /swapfile

4 — сохранить после перезагрузки (/etc/fstab)

/swapfile none swap sw 0 0

Допишите эту строку в /etc/fstab — не перезаписывайте файл.

5 — задать vm.swappiness (постоянно)

sudo sysctl vm.swappiness=60
echo 'vm.swappiness=60' | sudo tee -a /etc/sysctl.conf

Справка

Что на самом деле делает vm.swappiness и когда swap помогает

Единственный параметр ядра от 0 до 100, который определяет, насколько охотно оно выгружает страницы памяти до того, как это строго необходимо.

  • Что означает это число: vm.swappiness (0–100) сообщает ядру, насколько охотно перемещать страницы памяти в swap до того, как это станет строго необходимо. Низкие значения означают «выгружать в swap только когда RAM почти исчерпана»; высокие значения — «выгружать холодные страницы охотнее, оставляя больше RAM под кеш».
  • Когда swap реально помогает: При всплесковых нагрузках (скачки трафика веб-сервера) и как страховка от OOM killer — процесс, замедленный из-за swap, почти всегда восстановим, а убитый процесс — нет.
  • Когда он маскирует нехватку: Если swap используется постоянно и интенсивно, а не время от времени во время всплеска, значит нагрузка больше не помещается в RAM, тихо замедляясь день за днём вместо того, чтобы один раз громко упасть.
  • Как отличить одно от другого: Проверяйте использование swap во времени (free -h, vmstat 1 или swapon --show). Редкие всплески, которые потом спадают, — это нормально. Использование swap, которое держится высоким или продолжает расти, означает, что пора добавить RAM, а не swap.

Управляете собственным игровым сервером?

Игровые серверы Wespner с защитой от DDoS, дисками NVMe и активацией за несколько минут.

Посмотреть хостинг