awesome-everything EN
↑ Обратно к восхождению

Наблюдаемость

Profiling: тест с выбором ответа

Суть Тест с выбором на синтез по всему юниту profiling — экономика sampling, выбор типа профиля, чтение flame graph, символизация eBPF и production-дисциплина.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 13 min

Шесть вопросов поперёк всего юнита. Каждый отражает решение, которое ты принимаешь в реальном инциденте по латентности — не определение для заучивания, а то, какой профиль снять, как его прочитать и что его числа реально значат под production-нагрузкой.

Цель

Убедись, что связываешь экономику sampling, выбор типа профиля, чтение flame graph, символизацию eBPF и production-дисциплину — тот синтез, к которому вели отдельные уроки.

Викторина

Запрос идёт 500 мс по wall-clock, но CPU profile приписывает ему лишь 20 мс. Куда ушли остальные 480 мс и какой профиль их покажет?

Викторина

Сервис делает 5 миллионов вызовов функций в секунду. Нужен always-on профайлинг в production. Почему sampling profiler — единственный жизнеспособный выбор против инструментирования?

Викторина

Инженер указывает на два широких фрейма рядом на одном уровне flame graph и заключает, что левый выполняется раньше правого. Что не так?

Викторина

eBPF-профайлер показывает чистые стеки для Go и Rust, но множество '[unknown]' фреймов для Python-сервиса на той же ноде. Почему?

Викторина

Continuous profiler заявлен с overhead 2-5%, но в production ты меряешь 12%. Какую причину проверять первой?

Викторина

На разборе инцидента кто-то предлагает приложить production-профиль к тикету в поддержку вендора. Почему senior-инженер должен возразить?

Итог

Сквозная линия юнита — одна диагностическая петля: выбери профиль, который отвечает на твой вопрос (CPU для вычислений, off-CPU/block/mutex для ожидания, heap/allocation для памяти), читай flame graph правильно (ширина — доля сэмплов, ось x алфавитная, а не время) и доверяй числам только зная их пределы (sampling ограничен, но слеп к hot-путям короче интервала, eBPF требует language-aware символизации, overhead 2-5% реален, но чувствителен к конфигу). А поскольку профиль раскрывает внутренности кода, относись к нему как к чувствительному артефакту, а не к свободно шарящейся метрике.

Продолжить восхождение ↑Profiling: тест на свободное припоминание
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.