> Какие инструменты для профилирования сервисов на Go существуют и как их использовать (Go)

Уровень: senior · Роль: backend · Язык: Go · Категория: Технические вопросы

Компании: Ozon

Стек: Go

> Пример ответа

Для профилирования Go-сервисов стандартный инструмент - встроенный pprof. Он позволяет собирать профили CPU, памяти, горутин, блокировок и mutex’ов. Использование: подключите net/http/pprof в HTTP-сервер (обычно на отдельном порту, например, :6060), после чего профили доступны по эндпоинтам /debug/pprof/. Для CPU-профиля: go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30 - соберёт данные за 30 секунд. Для памяти: go tool pprof http://localhost:6060/debug/pprof/heap. Затем в интерактивном режиме pprof можно анализировать топ-функции, граф вызовов (web), или экспортировать в SVG/PDF.

Дополнительно: pprof поддерживает сравнение профилей (например, до и после оптимизации) через -diff_base. Для продакшена используйте runtime/pprof для программного запуска профилирования без HTTP.

Другие инструменты: trace из пакета runtime/trace - для анализа задержек и параллелизма (запуск через go tool trace). pprof также интегрируется с expvar для кастомных метрик. Для распределённых систем - OpenTelemetry с профилированием через pprof и экспортом в Jaeger/Prometheus.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью