02.10.2026

Я задаю нагрузочный сценарий языком рабочего дня, а не количеством запросов в секунду

Команда разбирает сценарий нагрузки системы по рабочему плану рядом с настенными часами

Я задаю нагрузочный сценарий языком рабочего дня, а не числом запросов в секунду. Цифра полезна команде, но сама по себе не объясняет, что бизнес считает нормальной работой. Десять запросов могут быть пустыми просмотрами. А один запрос может закрывать месяц, отправлять зарплату или подтверждать заказ.

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

Нагрузка начинается с вопроса «что происходит в этот день?»

Вместо фразы «нужно выдержать тысячу пользователей» я бы сначала спросил: кто эти люди, что они делают одновременно и какое действие нельзя задержать. Возможно, утром менеджеры открывают заказы, днём кладовщики проводят отгрузки, а вечером бухгалтерия закрывает период. Это три разных сценария с разной ценой ожидания.

Представьте кассу в магазине. Очередь из двадцати человек — не просто двадцать операций. У кого-то уже пробили товары, у кого-то отмена, у кого-то оплата не прошла. Если измерить только число покупателей, не видно самого неприятного момента: кассир уже не может завершить начатую продажу.

Соберите один сценарий до конца

Для начала достаточно взять критичную операцию и описать её человеческим языком. Кто её запускает? Какие данные нужны? Какие внешние системы отвечают? Какой результат должен появиться? Через сколько времени человек начнёт искать обходной путь?

Например: в последний рабочий день месяца 40 сотрудников в течение часа проводят документы, а руководитель должен видеть итоговый отчёт до встречи. Здесь важно не только количество действий. Нужно проверить блокировки, фоновые расчёты, очереди, отчёт и поведение при повторной отправке.

Такой подход продолжает разбор ситуации, когда система тормозит в конце месяца. Там мы ищем причину уже случившейся проблемы. Здесь цель другая: заранее назвать рабочий пик, чтобы архитектура не стала гаданием.

Что должно быть в нагрузочном сценарии

  • Время и повод. Не «высокая нагрузка», а закрытие периода, акция, утреннее открытие смены или выгрузка для партнёра.
  • Роли и действия. Какие люди делают что именно, а не просто сколько у системы пользователей.
  • Порог терпимости. Когда задержка неприятна, а когда она срывает операцию или обязательство.
  • Зависимости. Какие базы, сервисы, очереди, внешние API и фоновые задачи участвуют.
  • План деградации. Что можно отложить, показать позже или выполнить вручную, если часть контура замедлилась.

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

Почему тест на стенде может обмануть

Тестовая среда обычно чище рабочей: в ней меньше данных, нет неожиданных интеграций, а фоновые задания не спорят за ресурсы с людьми. Поэтому одного результата «выдержали N запросов» недостаточно. Нужно приблизить проверку к живому пути: загрузить похожие данные, включить важные задачи и посмотреть, что происходит с ошибками, повторными действиями и очередью.

Это не повод бесконечно копировать production. Смысл тестовой среды — безопасно проверить именно рискованный сценарий. В статье о тестовой среде есть простой критерий: на ней должны проверяться изменения, которые опасно впервые увидеть в рабочем дне.

Не путайте быстродействие и надёжность

Иногда экран открывается быстро, но операция теряется при повторной отправке. Иногда система честно отвечает медленнее, зато не создаёт второй заказ. Для бизнеса второй вариант часто безопаснее. Поэтому в нагрузочном сценарии я всегда спрашиваю не только «за сколько», но и «что будет, если человек нажмёт ещё раз, уйдёт со страницы или внешний сервис ответит позже».

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

Как превратить сценарий в работу команды

После описания не нужно ждать идеального большого теста. Возьмите один путь и сделайте три вещи: измерьте его сейчас, внесите одно улучшение, повторите проверку. Это может быть индекс в базе, разнос тяжёлого отчёта на фоновую задачу, ограничение параллельного импорта или явная очередь для операции.

Важно оставить след решения: какой сценарий защищаем, что изменили, какой риск остаётся. В противном случае следующий разработчик увидит «странное ограничение» и случайно снимет его. Архитектура становится живой, когда за каждым техническим выбором стоит понятная рабочая причина.

Если описать нагрузку языком рабочего дня, бизнес получает не обещание абстрактной мощности, а ясный ответ: какой пик система выдержит, что происходит при сбое и где нужно вложиться до того, как задержка станет проблемой клиентов и сотрудников.

Поделиться

Отправь тому, кому будет полезно

Telegram VK

Обсуждение

Обсудим?

Оставить комментарий

Ваш email не будет опубликован. Поля со звёздочкой обязательны.