Пропускная способность сервера: расчёт нагрузки

💻 IT и кодОбновлено: 13 июля 2026 г.5 мин чтения
Попробуйте замерить, сколько запросов в секунду выдерживает ваш сервер до того, как упадет — и увидите, как быстро растут таймауты и ответы 503. Пропускная способность — это не просто цифра в даташите VPS, а практическая метрика, которую нужно считать под свой сценарий: рендеринг страниц, база данных, стриминг. Без знания этой цифры вы либо переплачиваете за железо, либо губите проект в час пик.
⚡ Коротко: главное
  • Пропускная способность веб-сервера измеряется в RPS (requests per second) и зависит от времени ответа (latency) и числа одновременных соединений.
  • Для типичного веб-приложения на Node.js/Python максимальный RPS ≈ (число соединений) / (среднее время ответа в секундах).
  • Реальное значение RPS на 2026 год для дешевого VPS (1 vCPU, 1 GB RAM) — 50-200 RPS на статику, 5-20 RPS на динамику с БД.
  • Увеличение числа воркеров (workers) не всегда повышает пропускную способность — при перегрузке CPU/IO рост останавливается.
  • Онлайн-калькуляторы дают оценку до 30% точности, реальные цифры получаются только нагрузочным тестированием (например, wrk, k6).

Что такое пропускная способность сервера и зачем её считать

Пропускная способность сервера — это максимальное количество обработанных запросов за единицу времени (обычно секунда), при котором качество обслуживания остаётся приемлемым: время ответа не превышает заданного порога (например, 1 секунда), ошибки HTTP 5xx отсутствуют.

Если вы разрабатываете веб-приложение, API или стриминговый сервис, без этой метрики вы рискуете:

  • переплатить за избыточные ресурсы VPS/облачного сервера,
  • провалить запуск или рекламную кампанию из-за падения при нагрузке,
  • неправильно задать SLA для клиентов.

Пропускная способность тесно связана с латентностью (время ответа) и одновременными соединениями. Незнание этого баланса — одна из частых ошибок джунов. Чтобы не гадать, используйте Калькулятор пропускной способности сервера для быстрой оценки, но учитывайте, что точные цифры даёт только нагрузочное тестирование.

Важно: пропускная способность не равна ширине канала (скорости сети). Это количество операций сервера, а не трафик в Мбит/с.

Основная формула: откуда берётся RPS

Базовая формула для веб-сервера с асинхронной моделью (например, nginx, Node.js, Go):

Макс. RPS = (Число одновременных соединений) / (Средняя задержка, с)

Она исходит из закона Литтла: L = λW, где L — число запросов в системе, λ — интенсивность (RPS), W — среднее время обработки. На практике ограничивающим фактором становится CPU/IO, а не только сеть.

  • Средняя задержка — время от получения запроса до начала ответа (latency). Включает обработку в приложении, запросы к БД, рендеринг, но не время на передачу по сети.
  • Число одновременных соединений — зависит от модели воркеров. Для Node.js с одним потоком это обычно 1000-2000 на ядро; для многопоточного Python — 10-50 на воркер.

Пример: если средняя задержка 200 мс (0.2 с) и сервер держит 200 одновременных соединений, то RPS ≈ 200 / 0.2 = 1000. Реальный максимум будет чуть ниже из-за накладных расходов (очереди, контекстные переключения).

Для детального расчёта ресурсов под конкретный проект попробуйте Калькулятор нагрузки на сервер.

Пошаговый расчёт на реальном примере: 5000 пользователей ежедневно

Допустим, у вас интернет-магазин на WordPress + MySQL, средний пользователь делает 5 запросов за сессию, дневная нагрузка — 5000 активных сессий, пик в час 300 сессий. Нужно оценить минимальный сервер.

  1. Считаем среднее число запросов в секунду (RPS):
    300 сессий/час × 5 запросов / 3600 с ≈ 0.42 RPS — пиковая нагрузка в секунду. Это почти ничего, даже дешёвый VPS справится.
  2. Но на практике WordPress генерирует много медленных запросов из-за PHP + MySQL. Реальная средняя задержка на дешёвом хостинге — 500-1000 мс. При 300 параллельных соединениях maximum RPS будет 300 / 0.5 = 600 RPS, то есть запас есть.
  3. Проблема в том, что WordPress может открывать соединения к БД на каждый запрос. Если БД не выдерживает 300 одновременных соединений, наступает блокировка.

В итоге для такого магазина достаточно сервера с 2 vCPU, 4 GB RAM (около 1500 руб./мес. в 2026). Но если вы используете PHP-FPM с 50 воркерами, то максимальная пропускная способность будет около 50 / 0.5 = 100 RPS. Для пика в 0.42 RPS — огромный запас. Зная это, можно смело брать минимальную конфигурацию.

Проверить стоимость подходящего сервера можно в Калькуляторе стоимости VPS сервера.

Зоны нагрузки сервера
Низкая0-10 RPS — справится любой VPS
Средняя10-100 RPS — нужен 2-4 vCPU
Высокая100-1000 RPS — кластер/балансировка
Очень высокая1000+ RPS — горизонтальное масштабирование
От зелёного (легко) до красного (перегрузка) — типичные диапазоны RPS для среднего VPS с динамикой.

Как отладить и измерить реальную пропускную способность: инструменты и команды

Теоретические формулы дают лишь оценку. Чтобы узнать точные цифры, нужно провести нагрузочное тестирование. Ниже — базовые инструменты и примеры.

ИнструментКоманда (пример)ОписаниеКогда использовать
wrkwrk -t4 -c200 -d30s http://example.comHTTP-бенчмарк, 4 потока, 200 соединений, 30 секундБыстрый тест статики/простого API
k6k6 run --vus 100 --duration 30s script.jsСкриптовый тест, имитация реальных сценариевСложные сценарии с паузами
abab -n 10000 -c 100 http://example.com/ApacheBench, всего 10000 запросов, 100 параллельноКонсольная быстрая проверка
locustПишется Python-скриптМасштабируемый, с веб-интерфейсомТимная разработка, CI
Важно: тестируйте на нагрузке, близкой к реальной (пропорция чтения/записи, размер данных). Чистый GET без тела даёт завышенные RPS.

После теста смотрите на p95 latency (95% запросов быстрее этого времени) и error rate. Если error rate > 1% или p95 > 1 секунды — пропускная способность превышена.

План замера пропускной способности

0 из 8

Частые ошибки джунов: что ломает расчёты на практике

  • Игнорирование бэкенда: считают только сетевую пропускную способность (10 Гбит/с), забывая про CPU и БД. Пример: сервер отдаёт статику на 1000 RPS, но динамический запрос к БД идёт 200 мс, снижая RPS до 30.
  • Путаница между параллельными и последовательными запросами: браузер может открыть 6 соединений к домену, а сервер — обрабатывать 200 параллельно. Не смешивайте.
  • Неучёт keep-alive: HTTP/2 multiplexing позволяет использовать одно соединение для многих запросов, что резко увеличивает RPS без роста числа соединений.
  • Тестирование на localhost: задержка сети (1-30 мс) добавляется к латентности. Всегда тестируйте с реальным сетевым расстоянием.
  • Завышение ожиданий от дешёвого VPS: на 1 vCPU (до 2.5 ГГц) реальный RPS для Python/Django редко превышает 20-30 на динамику. Для Go или Node.js — 200-400.

Проверить свои знания по архитектуре серверов можно в Тесте на когнитивные способности (раздел технического мышления).

Частные случаи: API, стриминг, базы данных

API (JSON): обычно лёгкие ответы (1-5 КБ), узким местом становится шина CPU/сеть при большом числе запросов. Типичная формула: RPS = (кол-во воркеров × 1000) / (latency + сериализация). Для FastAPI/Node.js — до 5000 RPS на 2 vCPU.

Стриминг видео (RTMP/HLS): здесь метрика — битрейт, а не RPS. Один стрим 5 Мбит/с занимает 5 Мбит/с пропускной способности сети. 1000 одновременных стримов = 5 Гбит/с. Серверный CPU в основном отвечает за репакинг/транскодинг.

Базы данных: пропускная способность измеряется в QPS (queries per second). Она сильно зависит от кэширования. InnoDB в MySQL на одном SSD может давать ~1000 QPS на простые SELECT, а 10 000 — на закэшированные.

Для разных типов нагрузки подберите сервер в Калькуляторе стоимости облачного сервера.

Сравнение пропускной способности: статика vs динамика vs база данных

Таблица ниже показывает типичные цифры для сервера среднего уровня (2 vCPU, 4 GB RAM, SSD) на 2026 год при тестировании через nginx + PHP-FPM или Node.js.

Тип контентаСреднее время ответаМакс. RPS (Node.js)Макс. RPS (PHP-FPM)
Статика (HTML/CSS/JS)1-5 мс10 000+5 000+
Динамика без БД (рендер)10-50 мс2 000200
Динамика с БД (типичный запрос)100-500 мс20030

Разница колоссальная. Поэтому для проекта с преобладающей динамикой критично кэширование (Redis, CDN) и выбор языка.

🧮 Посчитайте сами — инструменты по теме

🧭 Разделы по теме

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

Как расчитать пропускную способность сервера?

Используйте формулу: RPS = (число одновременных соединений) / (среднее время ответа в секундах). Но точное значение даёт только нагрузочное тестирование инструментами вроде wrk или k6.

Чем пропускная способность отличается от скорости интернета?

Пропускная способность — количество запросов (задач), скорость интернета — объём данных в единицу времени. Для статики узким местом может быть сеть, для динамики — CPU или БД.

Сколько RPS выдерживает сервер на 1 vCPU?

Зависит от технологии: Node.js около 200-1000, PHP-FPM около 20-50, Go до 2000. Для точности проведите тест на своём коде.

Как повысить пропускную способность без апгрейда железа?

Кэшируйте ответы (CDN/Redis), используйте HTTP/2 multiplexing, оптимизируйте запросы к БД, включите gzip, перейдите на асинхронную модель (Node.js, Go, asyncio).

Что такое RPS и как его замерить?

RPS — requests per second (запросов в секунду). Замеряется нагрузочным тестером: wrk -t4 -c200 -d30s http://your-server.com. Вывод покажет средний RPS.

Нужно ли учитывать размер ответа?

Да, если ответы большие (например, изображения, видео), то ограничением становится пропускная способность сети. Формула: макс. трафик = RPS × размер ответа. Убедитесь, что канал сервера не перегружен.

Какая пропускная способность нужна для 1000 пользователей в день?

Средний пользователь генерирует 5-10 запросов за сессию. 1000 сессий в день = около 0.1 RPS в среднем, пик может быть 1-2 RPS. Любой современный VPS справится.

Что делать, если пропускная способность ниже ожидаемой?

Проверьте логи на медленные запросы (slow query log, request profiling), включите кэш, увеличьте число воркеров (не более числа ядер*2), оптимизируйте код (асинхронность, связка nginx + PHP-FPM).

Источники и нормативные документы

  1. Документация nginx по пропускной способности
  2. RFC 7230 — HTTP/1.1
  3. Закон Литтла (Little's law) — Википедия
  4. Рекомендации по нагрузочному тестированию от Google

Ещё по теме «IT и код»