RPS (Requests Per Second): что это и как замерить | Глоссарий FREEHOSTING

RPS

Requests Per Second
RPS — RPS (Requests Per Second) — число HTTP-запросов, которое сервер обрабатывает за секунду. Базовая метрика нагрузочного тестирования, по которой оценивают потолок веб-приложения, выбирают тариф VPS и настраивают пул воркеров.

Определение простыми словами

RPS показывает, сколько HTTP-запросов в секунду успевает закрыть веб-сервер или API. Метрику снимают и со стороны клиента (нагрузочный тест), и со стороны сервера (логи nginx, метрики приложения). Чем выше RPS при стабильной задержке, тем больше реальных пользователей выдержит сайт.

RPS осмыслен только в паре с двумя соседями: concurrency (сколько запросов идут параллельно) и временем ответа. 5000 RPS при 50 мс — отличный результат, 5000 RPS при 2-секундном p95 — индикатор перегрузки.

Сравнение

Метрика Что считает Где смотреть Когда применять
RPS HTTP-запросы в секунду nginx access log, ab, wrk Веб-серверы, REST API
QPS Любые запросы (включая БД, DNS) метрики СУБД, DNS-сервера База данных, кеш, поиск
TPS Бизнес-транзакции в секунду APM, логи платежей Платежи, корзина, заказы
Throughput Объём данных или операций iperf, fio, sar Сеть, диск, общий поток

Кейсы использования

  • Капасити-планинг: считают пиковый RPS перед распродажей и закладывают двукратный запас на тариф.
  • Подбор количества PHP-FPM воркеров: RPS делят на среднее время ответа, получают минимально нужный пул.
  • Нагрузочный тест нового релиза через wrk или k6, сравнение с baseline до выкатки.
  • Негативный кейс: тестируют RPS на статической странице и обещают тот же результат для админки — реальный потолок оказывается в 50 раз ниже.
  • Негативный кейс: высокий RPS достигается за счёт кеша, но при сбросе CDN сервер ложится за минуты.

Технические детали

# Замер RPS через ab: 100k запросов, 100 параллельно
ab -n 100000 -c 100 https://example.com/

# wrk: 4 потока, 200 соединений, 30 секунд
wrk -t4 -c200 -d30s https://example.com/api/posts

# Текущий RPS из nginx access log за минуту
tail -n 100000 /var/log/nginx/access.log | 
  awk '{print $4}' | cut -c2-21 | uniq -c | tail

# RPS в Prometheus (rate за 1 минуту)
rate(nginx_http_requests_total[1m])

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

Сколько RPS выдерживает обычный VPS?

Бюджетный VPS с 2 vCPU отдаёт 200–500 RPS на статике и 30–80 RPS на тяжёлой CMS вроде WordPress без кеша. С полноценным кешированием цифры вырастают на порядок.

Чем RPS отличается от QPS?

RPS — конкретно HTTP-запросы. QPS (Queries Per Second) обобщает любые запросы: к базе данных, DNS, поисковому движку. На веб-сервере термины часто используют как синонимы, но строго это разные метрики.

Какой RPS закладывать на старте проекта?

Считайте средний дневной трафик, поделите на 86 400 секунд и умножьте на 10–20 — получите пик. Для нового сайта с 10k посещений в день целевой потолок составляет 100–300 RPS.