Определение простыми словами
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.