Сравните релиз до и после по трассировкам и времени ожидания зависимостей. Нормальные CPU и память не исключают блокировки БД, N+1, сетевые задержки или очередь соединений.
Снижение отклика API после выпуска обновления
Сравните релиз до и после по трассировкам и времени ожидания зависимостей. Нормальные CPU и память не исключают блокировки БД, N+1, сетевые задержки или очередь соединений.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
После недавнего релиза API начал отвечать заметно медленнее. По логам время ответа выросло примерно в три раза, однако мониторинг показывает, что процессор и память работают в пределах нормы, без явных пиков нагрузки.
Опишите последовательность действий, которые следует выполнить для выявления причины падения производительности и её устранения.
Ответ
Сравните релиз до и после по трассировкам и времени ожидания зависимостей. Нормальные CPU и память не исключают блокировки БД, N+1, сетевые задержки или очередь соединений.
Сначала подтвердите регрессию на одинаковых маршрутах и объёмах данных: p50/p95/p99, число запросов, ошибки, время в очереди. При серьёзном влиянии подготовьте безопасный rollback.
Затем разделите время на приложение, SQL, внешние HTTP-вызовы, получение соединения и сериализацию. Проверьте новые N+1-запросы, планы SQL, ожидание locks, изменения timeout/retry, DNS/TLS, кеш и лимиты пулов. CPU может простаивать, пока запросы ждут I/O.
Сопоставьте изменения кода и конфигурации с найденным участком. Исправляйте подтверждённую причину и проверяйте под воспроизводимой нагрузкой; увеличение числа workers без диагностики способно усилить перегрузку БД.