MAATRIX / Блог / Как масштабировать ресурсы VPS без боли

Как масштабировать ресурсы VPS без боли

Как масштабировать ресурсы VPS: CPU, RAM и диск без простоя
Блог MAATRIX · 2026-07-07

Сервер начал упираться в потолок — тормозит сайт, падают процессы, растёт нагрузка. Прежде чем платить за апгрейд, важно найти реальное узкое место. Разберём, как понять, чего именно не хватает, и как грамотно нарастить ресурсы.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Сначала найдите узкое место

Апгрейд наугад — деньги на ветер. Ограничивать может CPU, память, диск или сеть, и лечатся они по-разному. Быстрая диагностика:

# общая картина в реальном времени
apt install -y htop && htop

# нагрузка на CPU/IO/steal одним взглядом
vmstat 2 5

# память: сколько реально свободно и есть ли своп
free -h

# диск: не забита ли очередь ввода-вывода (%util к 100 = упор в диск)
apt install -y sysstat && iostat -x 2 5
  • load average выше числа ядер + высокий %us → не хватает CPU;
  • swap растёт, free около нуля → не хватает RAM;
  • %util диска у 100, высокий iowait → упор в диск;
  • высокий %st (steal) → проблема не у вас, а в переподписке ноды.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать масштабируемый VPS

Вертикальное масштабирование

Вертикальное (scale up) — добавить мощности одному серверу: больше vCPU, RAM, диска. Самый простой путь: у большинства провайдеров смена тарифа делается из панели за минуты, часто с одной перезагрузкой.

После апгрейда убедитесь, что система увидела ресурсы:

# ядра
nproc && lscpu | grep '^CPU(s)'

# память
free -h

# диск: расширить файловую систему после увеличения диска
df -h
# для ext4 на растянутом разделе:
resize2fs /dev/vda1  # имя раздела уточните через lsblk

На AMD EPYC + NVMe у MAATRIX вертикальный апгрейд особенно эффективен: добавленные ядра действительно быстрые, а NVMe не даёт диску стать новым узким местом после роста нагрузки.

Быстрая помощь памяти: swap

Если RAM не хватает эпизодически, своп спасёт от OOM-killer до апгрейда. Это не замена памяти, но страховка.

# создать файл подкачки 2 ГБ
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab

# снизить агрессивность свопа (реже свопить)
sysctl vm.swappiness=10
Важно: постоянный активный своп — сигнал, что памяти реально мало и пора на тариф побольше. Своп на диске в разы медленнее RAM.

Горизонтальное масштабирование

Вертикальный рост когда-то упрётся в потолок ноды. Тогда переходят к горизонтальному (scale out) — распределяют нагрузку по нескольким VPS: отдельный сервер под БД, пул веб-серверов за балансировщиком.

# простейший балансировщик на nginx
upstream app {
    server 10.0.0.11:8080;
    server 10.0.0.12:8080;
}
server {
    listen 80;
    location / { proxy_pass http://app; }
}

Горизонтальное масштабирование сложнее (нужны общая БД, сессии, синхронизация), зато снимает потолок одного сервера и повышает отказоустойчивость. Начинать стоит с выноса базы данных на отдельный VPS — она обычно упирается первой.

Оптимизация перед апгрейдом

Часто «нехватку ресурсов» лечат не деньгами, а настройкой. Прежде чем менять тариф, проверьте очевидное — нередко это даёт кратный выигрыш бесплатно.

  • Кэш. Redis/Memcached снимают с БД и CPU повторяющиеся запросы.
  • Индексы БД. Один пропущенный индекс способен грузить CPU на порядок сильнее нужного.
  • Воркеры. Слишком много php-fpm/gunicorn воркеров съедают RAM и уводят сервер в своп.
  • Статика. Отдавайте её через nginx или CDN, не через приложение.
# сколько памяти реально ест каждый процесс — ищем прожорливых
ps aux --sort=-%mem | head -n 10

# топ по CPU
ps aux --sort=-%cpu | head -n 10

# медленные запросы PostgreSQL (включить лог)
# в postgresql.conf: log_min_duration_statement = 500

Если после оптимизации ресурсы всё равно стабильно заняты в обычные часы — вот тогда апгрейд оправдан и деньги пойдут в дело, а не на компенсацию неэффективного кода.

Частые ошибки

  • Апгрейд CPU, когда упор в диск. Всегда сверяйтесь с iostat и vmstat, а не с ощущениями.
  • Жизнь на постоянном свопе. Это костыль, а не решение — добавьте RAM.
  • Игнор steal. Если тормозит из-за переподписки ноды, апгрейд не поможет — меняйте провайдера.
  • Забыли расширить ФС. Увеличили диск в панели, но не сделали resize2fs — место не появится.
  • Сразу лезть в горизонталь. Для большинства проектов вертикального роста хватает надолго — не усложняйте раньше времени.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать масштабируемый VPS

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Частые вопросы

Как понять, что пора масштабироваться, а не оптимизировать код?

Сначала оптимизация: кэш, индексы БД, лимиты воркеров. Если ресурсы стабильно заняты на 80%+ при уже оптимизированном приложении в обычные (не пиковые) часы — пора наращивать ресурсы.

Теряются ли данные при смене тарифа?

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

Вертикальное или горизонтальное — что выбрать?

Начинайте с вертикального: проще и дешевле. К горизонтальному переходите, когда упёрлись в потолок ноды или нужна отказоустойчивость. Первым шагом выносите БД на отдельный сервер.