Сколько оперативной памяти нужно VPS под сайт, бота, базу или ИИ

Ориентиры по памяти для типичных задач — от статического сайта до Ollama и узла блокчейна, как проверить реальное потребление и понять, что пора расширяться.

10 октября 2026 г.·3 мин чтения·vps, ram, memory, sizing

Большинству личных проектов хватает 2–4 ГБ памяти. Статика, прокси и бот живут в 1 ГБ, тяжёлые веб-приложения и несколько сайтов на одном сервере просят 8 ГБ и больше, а для локальной языковой модели память — главный ресурс. Ниже ориентиры и способ проверить, попали ли вы в размер. Если ещё не понятно, нужен ли вообще VPS — что такое VPS.

Ориентиры по задачам

Задача Память Примечание
Статический сайт, реверс-прокси, WireGuard 1 ГБ Nginx и ядро занимают меньше 200 МБ
Telegram-бот на Python/Go, парсер 1 ГБ один-два процесса, см. бот под systemd
PHP-сайт с MySQL при небольшом трафике 2 ГБ MySQL по умолчанию берёт ~400 МБ, PHP-FPM — по 30–60 МБ на воркер
Небольшой ИИ-агент, n8n, Uptime Kuma 2 ГБ Node.js-приложения стартуют от 150–300 МБ
WordPress/WooCommerce с нагрузкой, API на Node.js или Python с базой 4 ГБ место под кеш запросов и больше воркеров
GitLab, Nextcloud с десятками пользователей, несколько продакшен-сайтов 8 ГБ GitLab один требует минимум 4 ГБ
Несколько сайтов с базами, стек мониторинга, CI-раннер 8–16 ГБ считайте сумму, а не максимум
Ollama с моделью 7B в 4-битном квантовании 8 ГБ, лучше 16 модель занимает ~4,5 ГБ, плюс контекст; без GPU медленно
Узел блокчейна (Monero pruned, Bitcoin pruned) 4–8 ГБ упирается в диск и трафик, не в память
Windows Server с 1С или RDP для нескольких пользователей 4–8 ГБ сама система занимает ~2 ГБ
Minecraft Paper на 10 игроков 4 ГБ ставьте -Xmx на 1 ГБ меньше тарифа

Цифры — для старта. Через день-два реальной работы проверьте по приборам.

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

free -h

Смотрите столбец available, а не free: Linux занимает свободную память под дисковый кеш и отдаёт её программам по первому требованию. Если available держится выше 20–25% тарифа — запас есть.

Кто именно ест память:

ps -eo pid,rss,comm --sort=-rss | head -15

rss в килобайтах. Для сервисов в Docker — docker stats --no-stream.

Были ли убийства по нехватке памяти:

dmesg -T | grep -i 'out of memory'
journalctl -k | grep -i 'killed process'

Любая строка Out of memory: Killed process ... означает, что ядро уже прибивало ваше приложение. Если это MySQL — данные могли пострадать.

Нагрузка на swap:

vmstat 1 5

Столбцы si/so — чтение и запись страниц в swap в секунду. Ненулевые постоянно — памяти не хватает прямо сейчас.

Swap как подушка, не как замена

Небольшой swap-файл (1–2 ГБ) сглаживает короткие пики: сборка проекта, apt upgrade, резкий наплыв запросов. Как его создать — swap в Linux. Но если swap занят постоянно, сервер тормозит на порядок — диск в тысячи раз медленнее памяти. Это сигнал переходить на тариф больше, а не увеличивать swap.

Где сэкономить, прежде чем расширяться

  • MySQL/MariaDB. В /etc/mysql/mariadb.conf.d/50-server.cnf параметры innodb_buffer_pool_size (половина памяти под базу, не больше) и performance_schema = off на маленьких тарифах.
  • PHP-FPM. pm.max_children в пуле: считайте как (память для PHP) / (размер одного воркера из ps). Десять воркеров по 60 МБ — это 600 МБ.
  • Node.js. Один процесс, а не кластер на каждое ядро, если трафик маленький.
  • Лишние службы. systemctl list-units --type=service --state=running — snapd, ненужные агенты, второй веб-сервер.
  • Docker. Ограничьте контейнеры mem_limit в compose, чтобы один сервис не утянул остальные.

Как решать

Берите тариф на ступень меньше того, что кажется «с запасом», и смотрите на free -h и dmesg через пару дней. Расширить память на tanaka.host можно в любой момент без переустановки, а вот диск назад не уменьшить — поэтому экономить стоит именно на старте. Если и у самой большой конфигурации available стремится к нулю, читайте про выделенный сервер.