Сколько оперативной памяти нужно серверу: расчёт RAM

Основы и выбор
Сколько оперативной памяти нужно серверу: расчёт RAM

Вопрос «сколько RAM для VPS нужно под мой проект» встаёт перед каждым, кто арендует сервер. Возьмёте слишком мало — сайт начнёт падать под нагрузкой, а процессы будет молча завершать OOM Killer. Возьмёте с избыточным запасом — будете платить за гигабайты, которые простаивают. В этой статье разберём, сколько оперативной памяти сервера реально потребляют типовые задачи — от лендинга и WordPress до баз данных и игровых серверов, — приведём таблицы ориентировочных значений и простую формулу расчёта. Все цифры здесь — практические ориентиры, а не точная наука: реальное потребление зависит от конфигурации, трафика и кода конкретного проекта.

Почему RAM — самый критичный ресурс VPS

Оперативная память — единственный ресурс сервера, нехватка которого приводит не к замедлению, а к отказу. Сравните: при дефиците CPU задачи просто выполняются дольше. При переполнении диска сервис пишет ошибки, но чаще всего продолжает отвечать. А при исчерпании RAM ядро Linux запускает OOM Killer, который принудительно завершает самый «тяжёлый» процесс — как правило, это именно база данных или ваше приложение. Итог: сайт отдаёт ошибку 502, бот молчит, а вы узнаёте об этом от пользователей.

Второй важный момент: свободная память в Linux не простаивает. Всё, что не занято процессами, система отдаёт под дисковый кеш (buff/cache) — повторные чтения файлов идут из памяти, а не с диска. Поэтому «запас» RAM не пропадает зря: он напрямую ускоряет работу сайта и базы данных.

Сколько памяти потребляют типовые компоненты

Прежде чем считать, полезно знать «вес» стандартных кирпичиков серверного стека. Цифры ориентировочные — для настроек, близких к умолчаниям:

КомпонентОриентировочное потребление
Ubuntu / Debian без графики150–300 МБ
Nginx20–100 МБ
PHP-FPM30–80 МБ на каждый воркер
MySQL / MariaDB (небольшой проект)350–800 МБ
PostgreSQL (небольшой проект)200–500 МБ
Redisот 50 МБ + объём хранимых данных
Node.js-приложение100–300 МБ
Docker-демон (без контейнеров)70–150 МБ
Панель управления (aaPanel, HestiaCP)300–700 МБ

Обратите внимание на PHP-FPM: память ест не сам сервис, а каждый его воркер. Двадцать воркеров по 60 МБ — это уже больше гигабайта. Как правильно ограничить их количество, мы разбираем в статье об оптимизации PHP-FPM под вашу RAM.

Расчёт RAM под конкретные задачи

Лендинг или статический сайт

Nginx, отдающий статику, — самый лёгкий сценарий: хватит 1 ГБ памяти вместе с системой. Больше здесь решает не RAM, а скорость диска и канала.

Сайт на WordPress или другой CMS

Минимум — 2 ГБ: система, Nginx, несколько воркеров PHP-FPM и MySQL на одной машине. Комфортный уровень — 4 ГБ: остаётся место под кеш опкодов, Redis для объектного кеша и всплески трафика. Если сайт растёт, а плагинов много, закладывайте 8 ГБ — например, тариф Start у Cheap-Host (6 vCPU, 8 ГБ RAM, NVMe) за 450 ₽/мес закрывает типичный WordPress-проект с запасом.

Интернет-магазин или 1С-Битрикс

Здесь память уходит сразу в три места: тяжёлые PHP-процессы, база данных с большим числом товаров и кеширование. Практический ориентир — 8–16 ГБ. Меньше 8 ГБ для магазина с реальным трафиком брать рискованно: пиковые распродажи съедают память быстрее всего.

Выделенная база данных

Для СУБД действует правило «чем больше данных помещается в память, тем быстрее запросы». MySQL держит горячие данные в буферном пуле InnoDB, PostgreSQL полагается на shared_buffers и кеш ОС. Если база заметно больше пары гигабайт — берите 16 ГБ и настраивайте буферы под реальный объём данных.

Telegram-боты, парсеры, скрипты

Python- или Node.js-бот с базой SQLite обычно укладывается в 300–500 МБ. Для таких задач не нужен большой VPS: NAT-тарифы Cheap-Host в Германии с 1–2 ГБ RAM за 59–99 ₽/мес — как раз этот случай (учтите: IPv4 там общий, а порт 25 закрыт, для ботов это не помеха).

Игровые серверы

Minecraft без модов на небольшую компанию просит 4–6 ГБ, сборки с модами — от 8 ГБ и выше; серверы CS2 или Rust — отдельная история. Подробные ориентиры по играм мы собрали в статье о ресурсах для игровых серверов.

Docker и несколько сервисов

Контейнеры не добавляют заметных накладных расходов на память: считайте сумму всех приложений внутри контейнеров плюс 0,5–1 ГБ на систему и демон Docker.

Формула: считаем с запасом

Универсальный алгоритм расчёта из четырёх шагов:

  1. Выпишите все сервисы, которые будут работать одновременно, и их потребление в пике (по таблице выше или по замерам).
  2. Сложите значения и добавьте 150–300 МБ на саму ОС.
  3. Умножьте сумму на 1,3–1,5 — это запас на всплески трафика, обновления и рост проекта.
  4. Округлите вверх до ближайшего тарифа.

Пример для WordPress-сайта: система 0,3 ГБ + Nginx 0,1 ГБ + 10 воркеров PHP-FPM × 60 МБ ≈ 0,6 ГБ + MySQL 0,8 ГБ + Redis 0,2 ГБ = 2 ГБ. С коэффициентом 1,5 получаем 3 ГБ — значит, тариф с 4 ГБ пройдёт впритык, а 8 ГБ даст спокойный запас и место под дисковый кеш.

Хорошая новость: ошибиться в меньшую сторону не страшно, если хостер умеет апгрейдить тариф. У Cheap-Host CPU, RAM и диск увеличиваются без потери данных — можно начать со Start за 450 ₽ и перейти на Pro (12 vCPU, 16 ГБ) за 750 ₽, когда проект дорастёт.

Что делать, если памяти не хватает

  • Настройте swap. Это страховка от OOM Killer, а не замена RAM: даже на NVMe swap на порядки медленнее памяти. Как его правильно создать и подобрать размер — в статье о настройке swap на VPS.
  • Ограничьте аппетиты сервисов. Уменьшите pm.max_children в PHP-FPM, подгоните innodb_buffer_pool_size в MySQL под реальный объём данных, задайте maxmemory для Redis.
  • Уберите лишнее. Неиспользуемые панели, почтовые сервисы и агенты мониторинга часто съедают сотни мегабайт.
  • Апгрейдите тариф. Если после оптимизации available стабильно на нуле — дальше экономия обходится дороже простоя.

Как проверить реальное потребление памяти

Базовая команда на Ubuntu 24.04:

free -h

Смотрите на колонку available — это память, реально доступная приложениям. Колонка free почти всегда мала, потому что остаток занят дисковым кешем, и это нормально.

Топ процессов по потреблению памяти:

ps aux --sort=-%mem | head -n 10

Динамика и активность swap (столбцы si/so должны быть по нулям):

vmstat 5

Для интерактивного наблюдения поставьте htop: sudo apt install htop. А проверить, не «убивало» ли ядро ваши процессы, можно так:

sudo dmesg | grep -i "out of memory"

FAQ

Хватит ли 1 ГБ RAM для сайта?

Для статического сайта или лендинга — да. Для WordPress с MySQL на том же сервере 1 ГБ — работа впритык: любой всплеск трафика или тяжёлый плагин приведёт к нехватке памяти. Комфортный минимум для CMS — 2 ГБ, лучше 4 ГБ и больше.

Заменяет ли swap оперативную память?

Нет. Swap — страховка от аварийного завершения процессов. Даже на быстром NVMe обращение к swap на порядки медленнее, чем к RAM. Постоянная работа со swap — сигнал, что памяти не хватает.

Как понять, что RAM пора добавлять?

Три признака: available в free -h стабильно меньше 15–20% от объёма; ненулевые si/so в vmstat; записи OOM Killer в dmesg. Любой из них — повод оптимизировать сервисы или переходить на тариф с большим объёмом памяти.

Почему free показывает, что почти вся память занята?

Linux отдаёт незанятую память под дисковый кеш (buff/cache). Кеш ускоряет чтение с диска и мгновенно освобождается, когда память нужна приложениям. Ориентируйтесь на колонку available.

Сколько RAM нужно для нескольких сайтов на одном VPS?

Считайте по формуле: сумма пикового потребления каждого сайта плюс запас 30–50%. Ориентир — 1,5–3 ГБ на средний сайт на CMS. Для 4–6 небольших проектов обычно хватает 16 ГБ.

Вывод

Считайте оперативную память сервера от задачи: 1 ГБ — статика и лёгкие боты, 2–4 ГБ — сайт на CMS, 8–16 ГБ — магазин, база данных или несколько проектов, 16+ ГБ — тяжёлые и игровые нагрузки. Складывайте пиковое потребление компонентов, добавляйте запас в полтора раза — и не забывайте, что «лишняя» память работает дисковым кешем, а не простаивает.

Если под вашу задачу нужен сервер — у Cheap-Host есть линейка от 8 до 32 ГБ RAM: Start (8 ГБ) за 450 ₽/мес для одного сайта, Pro (16 ГБ) за 750 ₽/мес для магазина или нескольких проектов, Ultra (32 ГБ) за 1500 ₽/мес для тяжёлых нагрузок. Везде NVMe, KVM с выделенными ресурсами, безлимитный трафик, а сервер выдаётся за 45–60 секунд. Начать можно с младшего тарифа — апгрейд выполняется без потери данных.

Читайте также