Как ты проведёшь нагрузочное тестирование
Вопрос
Перед распродажей просят проверить, выдержит ли сервис. Как ты будешь действовать?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Цели: ожидаемый пик, SLO по p95/p99 и доле ошибок
Профиль: сценарии и пропорции из прода, коэффициент на распродажу
Стенд, похожий на прод, данные нужного объёма, мониторинг всех компонентов
Серия тестов: базовый, рост ступенями до пика, стресс, всплеск, стабильность
Анализ узких мест, отчёт с выводами и повтор после исправлений
Что могут спросить следом
- Чем открытая модель нагрузки отличается от закрытой?
- Что делать, если стенд слабее прода?
- Как понять, что виноват генератор, а не сервер?
Разбор
Сначала цели: какой пик ждём, например по прошлой распродаже и прогнозу маркетинга, и какие критерии: p95 меньше 500 миллисекунд, ошибок меньше процента. Потом профиль: по логам прода смотрю, какие операции делают пользователи и в каких пропорциях, каталог, поиск, корзина, оплата, и умножаю на коэффициент распродажи. Готовлю стенд, максимально похожий на прод, с базой реального объёма и мониторингом всего: приложения, базы, кешей, очередей и самого генератора. Скрипты отлаживаю на малой нагрузке. Дальше серия: базовый прогон, ступенчатый рост до пика, стресс выше пика, чтобы знать запас и как система падает, всплеск и долгий тест стабильности. Для сайта беру открытую модель, потому что покупатели не ждут друг друга. По итогам ищу узкие места, вместе с разработкой правлю и повторяю, а в отчёте пишу выводы: какую нагрузку держим, где предел и что сломается первым.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.