open atlas
↑ Back to track
Observability OBS · 07 · 07

Profiling: multiple-choice review

Multiple-choice synthesis across the profiling unit — sampling economics, profile-type selection, flame-graph reading, eBPF symbolization, and production discipline.

OBS Senior ◷ 13 min
Level
FoundationsJuniorMiddleSenior

Six questions that cut across the whole unit. Each one mirrors a decision you make in a real latency incident — not a definition to recite, but which profile to pull, how to read it, and what its numbers actually mean under production load.

Goal

Confirm you can connect sampling economics, profile-type selection, flame-graph reading, eBPF symbolization, and production discipline — the synthesis the individual lessons built toward.

Quiz

A request takes 500 ms wall-clock but the CPU profile attributes only 20 ms to it. Where did the other 480 ms go, and which profile reveals it?

Quiz

A service makes 5 million function calls/second. You want always-on production profiling. Why is a sampling profiler the only viable choice over instrumentation?

Quiz

An engineer points at two wide frames side by side at the same level of a flame graph and concludes the left one runs before the right one. What is wrong?

Quiz

An eBPF profiler shows clean stacks for Go and Rust services but many '[unknown]' frames for a Python service on the same node. Why?

Quiz

A continuous profiler is advertised at 2-5% overhead, but you measure 12% in production. What is the most likely cause to check first?

Quiz

During an incident review someone proposes attaching the production profile to the vendor support ticket. Why should a senior engineer object?

Recap

The unit’s through-line is one diagnostic loop: pick the profile that answers your question (CPU for compute, off-CPU/block/mutex for waiting, heap/allocation for memory), read the flame graph correctly (width is sample share, x-axis is alphabetical not time), and trust the numbers only when you know their limits (sampling is bounded but blind to sub-interval hot paths, eBPF needs language-aware symbolization, 2-5% overhead is real but config-sensitive). And because a profile exposes code internals, you treat it as a security-sensitive artefact, not a freely shareable metric.

Something unclear?

Ask a question about this lesson. Questions are anonymous and go straight to the author to make the lesson better.

shortcuts expand
search
K
prev piece
k
next piece
j
cycle tier
t
this menu
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.