Тема: profiling
-
Непрерывное профилирование в продакшене: постоянно включённое сэмплирующее профилирование и на какие вопросы оно отвечает
Непрерывное профилирование систематически снимает профили CPU и памяти во времени и хранит их как размеченные серии, поэтому команда может спросить, какая функция потребила больше всего CPU по всему парку серверов вчера, или что изменилось между двумя версиями; сэмплирующие профилировщики делают это достаточно дёшево, чтобы держать их включёнными постоянно, а сами профили поставляют рантайм-эндпоинты вроде /debug/pprof/ в Go или eBPF-агенты.
-
Reading a flame graph: width is samples, the x-axis is not time
A flame graph stacks sampled call stacks so that frame width is the share of samples and height is stack depth; the x-axis is sorted alphabetically, not by time. Read wide plateaus at the top as on-CPU hot spots, wide frames with many thin children as callers to call less often, and remember that a CPU flame graph cannot show waiting.
Машиночитаемо: JSON