Как находили узкие места в системе?
Что проверяют
Есть ли у вас метод: вы измеряете, прежде чем чинить, или сразу переписываете то, что «наверное тормозит». Хотят услышать конкретную историю с инструментами и цифрами. Следом обычно спрашивают, как вы убедились, что стало лучше, и не сломали ли что-то рядом.
Как отвечать
Стройте ответ на своём случае в порядке «симптом, локализация, причина, исправление, результат». Каркас для Python-сервиса:
- симптом в метриках: рост p95 или p99 времени ответа, а не среднего, в Prometheus и Grafana или в APM. Трейсинг через OpenTelemetry показывает, где уходит время: код, база или внешний вызов;
- база: чаще всего узкое место здесь.
pg_stat_statementsи лог медленных запросов дают тяжёлые запросы,EXPLAIN ANALYZEобъясняет почему. В Django и SQLAlchemy отдельно ищут N+1 и лечат его черезselect_related,prefetch_relatedилиselectinload; - профилирование кода:
cProfileсо snakeviz локально,py-spyна живом процессе без перезапуска (py-spy top,py-spy recordдля flame graph),line_profilerдля одной горячей функции; - память:
tracemallocилиmemray, если растёт потребление; - асинхронный код: блокирующий вызов внутри event loop тормозит все запросы разом, его ловит отладочный режим
asyncio, который пишет о медленных колбэках; - проверка: нагрузочный прогон в Locust до и после, сравнение тех же перцентилей.
Цифры берите только свои: «p95 упал с 1,8 с до 400 мс после индекса и устранения N+1» звучит убедительно, если вы готовы объяснить, откуда эти числа. Если продового опыта нет, так и скажите и покажите метод на учебном проекте: нагрузили Locust, нашли узкое место через py-spy, исправили, измерили снова.
Где спотыкаются
Рассказывают, что «оптимизировали код», без единого измерения. Без исходной цифры нельзя доказать ни проблему, ни эффект.
Профилируют прод через cProfile. Детерминированный профилировщик заметно замедляет выполнение и искажает картину, для живого процесса нужен семплирующий py-spy.
Приписывают себе бизнес-результат вроде «конверсия выросла на 20%», который не могут подтвердить. Интервьюер разберёт такую историю по шагам, и выдуманная цифра развалит весь ответ.