Оценка нагрузки на салфетке: QPS
Как из «сколько пользователей» за минуту получить запросы в секунду и понять характер нагрузки.
QPS (queries per second) — число запросов в секунду, базовая метрика нагрузки, из которой выводят потребность в серверах, кэше и репликах.
Базовая формула
Считать надо грубо, порядками. Отправная точка — DAU (активные пользователи в сутки) и среднее число действий на пользователя. В сутках примерно 86 400 секунд, удобно округлять до 100 000 (~10 в пятой).
QPS_средний = (DAU * действий_на_юзера) / 86400
QPS_пиковый = QPS_средний * 2..3 (пик в часы активности)Пример: лента новостей
Пусть 10M DAU, каждый открывает ленту 10 раз в день. Считаем:
читений в сутки = 10_000_000 * 10 = 100_000_000
QPS_чтений ~ 100_000_000 / 100_000 = 1000
пик ~ 1000 * 3 = 3000 QPS на чтениеА записей (постов) пусть в 100 раз меньше: ~10 QPS в среднем. Получаем перекос чтения:запись ≈ 100:1 — классическая read-heavy система, где напрашиваются кэш и реплики на чтение.
Как работает под капотом
QPS превращается в железо через пропускную способность одного сервера. Если приложение держит ~1000 простых запросов в секунду на инстанс, то 3000 пиковых QPS — это минимум 3 инстанса плюс запас, плюс балансировщик. Важна не точность цифр, а порядок: 3000 QPS и 300 000 QPS требуют принципиально разной архитектуры, и вы должны показать, что чувствуете разницу.
Памятка по округлениям
| Величина | Округляем до |
| Секунд в сутках | ~100 000 |
| Тысяча | 10^3 |
| Миллион | 10^6 |
| Миллиард | 10^9 |
Частые ошибки
- Считать до последней цифры — здесь важен порядок, а не точность.
- Забыть про пиковый коэффициент (×2–3 от среднего).
- Не отделить QPS чтений от QPS записей.
Итог
- QPS = (DAU × действий) / 86400, округляйте сутки до 100 000 секунд.
- Пик берите как ×2–3 от среднего.
- Считайте чтения и записи отдельно — перекос задаёт архитектуру.