Назад до інструментів

Калькулятор розміру 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, що вирішує, наскільки охоче воно виводить сторінки пам'яті в swap до того, як це стане суворо необхідним.

  • Що означає це число: 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 та активацією за кілька хвилин.

Переглянути хостинг