> Какой план действий при перегрузке CPU и срабатывании алерта (Go)
Уровень: middle · Роль: backend · Категория: Технические вопросы
Компании: Wildberries
Стек: Go
> Пример ответа
При срабатывании алерта по перегрузке CPU в Go-приложении действую по следующему плану:
-
Оценка масштаба и контекста - проверяю метрики (Grafana, Prometheus): загрузка CPU, количество горутин, память, частота GC, latency запросов. Смотрю, затронут ли один инстанс или все.
-
Быстрая диагностика - подключаюсь к инстансу, запускаю
pprof:-
go tool pprof http://host/debug/pprof/profile?seconds=30- профиль CPU. -
go tool pprof http://host/debug/pprof/goroutine- стек горутин. Анализирую, где больше всего времени: горячие функции, блокировки, частые аллокации.
-
-
Проверка очередей и внешних зависимостей - смотрю, не забиты ли каналы, не увеличилось ли время ответа от БД/Redis/API. Часто перегрузка CPU - следствие retry или ожидания.
-
Временные меры - если проблема критична:
-
Увеличиваю количество реплик (kubectl scale) для распределения нагрузки.
-
Временно отключаю неважные фоновые задачи (например, очистку кэша, агрегацию метрик).
-
Если есть rate limiter - снижаю лимиты.
-
-
Глубокий анализ - смотрю логи на предмет паники или бесконечных циклов. Проверяю, не появился ли новый код с неоптимальными алгоритмами (например, O(n²) вместо O(n)). Ищу утечки горутин через
runtime.NumGoroutine(). -
Фикс и деплой - исправляю код (оптимизация, кэширование, пул воркеров), прогоняю нагрузочные тесты, деплою с канареечным релизом.
-
Постмортем - добавляю алерт на ранние признаки (например, рост времени GC или числа горутин), улучшаю мониторинг.
Ключевое - не паниковать, а методично сужать круг поиска, начиная с pprof.
> Похожие задачи по backend
Что такое WebSocket и как он работает
В чем разница наследования в Go и классического наследования
Как реализовать добавление цифр к результату с помощью append и слайса байт в Go
Используете ли трейсинг, например Jaeger
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью