Сервис стал медленнее после релиза
Вопрос
Интервьюер: «После релиза p99 сервиса вырос с 150 до 400 мс, ошибок нет, нагрузка та же. Как найдёте причину?»
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Подтвердить связь с релизом: сравнить метрики по версиям, канарейка
Трейсы медленных запросов до и после: какой спан вырос
Если выросло ожидание зависимостей: новые запросы, N+1, пулы
Если выросло собственное время: профиль CPU и аллокаций, сравнение профилей версий
Ресурсы: троттлинг CPU, GC, память
Исправить или откатить, подтвердить метрикой
Что могут спросить следом
- Что если профили версий выглядят одинаково?
- Как предотвратить такие регрессии?
Разбор
Образцовый ответ: «Сначала убеждаюсь, что дело в релизе: разбиваю p99 по метке версии, если есть канарейка, сравниваю её со stable. Если откат быстрый и пользователи страдают, откатываю, разбираться можно и на канарейке. Дальше трейсы: беру медленные запросы новой версии и такие же запросы старой и смотрю, какой спан вырос. Если выросло ожидание базы, ищу новые запросы или N+1. Если выросло собственное время сервиса, сравниваю CPU-профили версий в Pyroscope, часто сразу видно новое широкое плато, например сериализация или регулярное выражение. Проверяю троттлинг CPU и паузы GC: новая версия могла начать больше аллоцировать. Исправляю и подтверждаю метрикой. На будущее: бенчмарки горячих путей в CI и автоматический анализ канарейки по задержке».
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.