Оставляю систему быстрее и с большим запасом, чем нашёл
Запас почти всегда есть внутри системы, и он дешевле железа: отклик быстрее, утилизация ниже, предел выше — всё это обычно получается правками в коде и в чарте. Запрос, N+1, кеш, пулы, таймауты и ретраи, ресурсы подам. А когда запас исчерпан, даю расчёт по железу: сколько инстансов и какого типа нужно под прогноз. Шесть лет: банк, промышленная платформа на Kubernetes, WAF для API.
лет в нагрузочном и нефункциональном тестировании платформенных систем
пользователей вместо 200 — банковская система после семи оптимизаций, найденных нагрузкой
допуск, в который сервис нагрузочных тестов сверяет фактический RPS с заданным — иначе сценарий не считается годным
Зачем я вам
Диагноз вместе с лечением, а не заключение с пометкой «требует внимания».
Отклик — быстрее
План запроса и тяжёлые запросы, N+1, блокировки, синхронные вызовы там, где нужна асинхронность, прогрев кеша после рестарта. Причину подтверждаю метриками приложения, базы и инфраструктуры и довожу до правки в коде или в чарте.
Утилизация — ниже
Лишние сериализации, отсутствие keep-alive, кеш, которого нет, неверные requests и limits. Замеряю RPS на vCPU по типу трафика до и после оптимизаций — и считаю железо уже по этим числам, а не по ощущениям.
Предел — выше
Пулы соединений, таймауты и ретраи без jitter, предел масштабирования реплик, поведение при перегрузке в полтора раза от предела. Прогон показывает, что упирается первым, повторный — сколько запаса добавила правка.
Если запрос другой
Функциональное и ручное тестирование фич, UI-автотесты, разработка продуктовых фич — не мой профиль, честнее сказать сразу. Если вы пока не знаете, что именно нужно: обычно разговор начинается с одного вопроса — какую нагрузку система должна держать и что произойдёт, если она её не выдержит.