AI Infra Interviews logo
GPU Fleet Reliability & Observability / 04
medium★ EssentialNewAnthropicOpenAIMeta

Design observability for a large training cluster. What do you collect, what does each signal answer, and what pages someone?

A training run has one number that matters and a handful that explain it. Goodput as the top-level metric, the per-rank timing that finds a straggler among a thousand, the hardware layer beneath it, and the three dashboards that serve three different people asking three different questions.

Updated Sep 2026 · Grounded in real AI infrastructure interview loops and written to a senior-engineer editorial bar, with every number worked and every diagram hand-built.

TL;DR: The top-level metric is goodput: useful training steps completed over wall-clock time, which captures restarts, checkpoint pauses, stragglers and idle time in one number a researcher and an executive both understand. Everything else exists to explain a drop in it. Below it, collect per-rank step timing rather than an aggregate, because the aggregate hides the one rank in a thousand that is slow and the whole job runs at that rank's speed. Below that, collective timing from the library's own instrumentation, which distinguishes a slow rank from a slow network. Below that, the hardware layer from the device telemetry. Three dashboards serve three audiences: a researcher wants their run's goodput, step time and loss; an on-call engineer wants which jobs are degraded and which nodes are implicated; a capacity planner wants fleet utilization and the breakdown of where goodput was lost. Page on goodput dropping below a threshold for a run, on a job that has stopped progressing, and on fatal hardware, and on nothing else.

How to approach it

Name the top-level metric first and derive the layers from what would explain a drop in it, because a list of signals with no hierarchy is what produces dashboards nobody reads. Say why per-rank rather than aggregate, since that is the specific design decision that makes straggler detection possible. Then the three audiences, because the same data serves them differently. Close with the alerting policy, which should be short.

A strong answer

A typical situation: a run's throughput drops 15% and stays there. The cluster dashboard shows every node healthy, every GPU at 100% utilization, and no errors anywhere. One rank is running 15% slower than the rest, and because every collective is a barrier the whole job runs at its pace, but the metrics are all aggregates and an aggregate of 1,024 ranks moves 0.015% when one rank slows by 15%.

The metric hierarchy, each layer explaining the one above:

level 0   goodput = useful training steps x tokens per step / wall-clock time
          or as a fraction: time spent making forward progress / total time
          a well-run large job lands near 90%; the published Llama 3 run reported about that
          this is the number in the weekly report and the one a researcher asks about

level 1   where the missing time went, as a breakdown that sums to the gap:
            restarts and their recovery      (from job lifecycle events)
            checkpoint pauses                 (from the checkpoint instrumentation)
            straggler waiting                 (from per-rank step timing)
            data-loader stalls                (GPU idle at step boundaries)
            scheduled maintenance             (from the drain events)
          the property that matters: it sums. If the breakdown does not account for the gap,
          the instrumentation has a hole rather than the cluster having a mystery

level 2   per-rank step timing: every rank reports its own step duration, and the dashboard
          shows the distribution rather than the mean
            the metric that finds a straggler: max minus median across ranks, per step
            a healthy job: under 5% spread. A straggler: one rank persistently above
          this is the level that would have found the scenario above in one glance

level 3   collective timing from the library's instrumentation: how long each collective took
          and which rank arrived last
            distinguishes "rank 847 computes slowly" from "the network between 847 and its
            neighbor is slow", which have different fixes

level 4   hardware telemetry per device: the health and performance fields, which explain
          why rank 847 is slow: thermal throttling, a degraded link, memory errors

MFU and HFU covers the efficiency side of level 0; Stragglers and Hangs covers levels 2 and 3; DCGM and GPU Telemetry covers level 4.

Why per-rank and not aggregate, with the arithmetic that makes it obvious:

1,024 ranks, healthy step time 400 ms, one rank at 460 ms (15% slow)
  aggregate mean step time = (1,023 x 400 + 460) / 1,024 = 400.06 ms
  observed change in the mean: 0.015%, indistinguishable from noise
  actual job step time = 460 ms, because every collective waits for the slowest rank
  observed change in job throughput: 15%
so     the mean of per-rank timings is useless and the maximum is the job's actual speed
       collect per rank, display max, median and the spread, alert on the spread
sanity: this is why a cluster can show every component healthy while a job runs 15% slow.
        The information was averaged away before anyone looked at it
rendering diagram…

Three dashboards for three audiences:

AudienceQuestionWhat the dashboard shows
ResearcherIs my run healthy and how fast is it going?Goodput, step time over time, loss curve, tokens consumed, estimated completion
On-call engineerWhat is broken and which nodes are implicated?Jobs below their goodput threshold, per-rank spread per job, nodes with fatal or recoverable faults, drains in progress
Capacity plannerWhere did the fleet's time go this week?Fleet utilization, goodput breakdown aggregated across runs, failure counts by cause, spare pool depth

The alerting policy, deliberately short:

page   a run's goodput below its threshold for longer than a window (say 80% for 30 minutes)
       a run with no step progress for longer than a step-time multiple (a hang)
       a fatal hardware fault on any node
ticket a recoverable hardware event, a node quarantined, a rising straggler spread that has
       not yet crossed the goodput threshold
never  component-level metrics with no job impact, and anything derived from GPU utilization
sanity: the alerting is on the researcher's experience, not on component health, because a
        component can be degraded without affecting a job and a job can be degraded with every
        component nominally healthy. The scenario above is the second case

SLOs for AI Systems covers turning those thresholds into an error budget.

The reversal condition: this hierarchy assumes a small number of large, long-running jobs, which is the training case. A cluster running many short jobs inverts it: per-rank timing is noise across thousands of short-lived processes, and the top-level metric becomes queue wait and job success rate rather than goodput. The signals below stay the same and the aggregation changes, so a platform serving both needs two views over one collection rather than two collection systems.

What interviewers probe next

  • "How do you get per-rank step timing without adding overhead?" A timestamp per rank per step, emitted asynchronously, is a few bytes and no synchronization. The cost is in the collection path, not in the job.
  • "What if the straggler moves between ranks?" Then it is not a bad device but something systematic: a data distribution effect, a shared resource, or a collective pattern. That distinction is why the dashboard shows which rank as well as how much.
  • "How do you attribute a restart to a cause?" Correlate the job lifecycle event with the hardware faults on its nodes within a window. Most restarts have one, and the ones that do not are the interesting minority.
  • "What is a reasonable goodput target?" About 90% for a large well-run job. Below 80% something structural is wrong, and the breakdown says which of the five contributors it is.

Common mistakes

  • Reporting aggregate step time, which moves 0.015% when one rank of 1,024 slows by 15%.
  • Alerting on component health rather than on job impact, which pages for degraded nodes running nothing.
  • A goodput breakdown whose parts do not sum to the gap, which means the instrumentation has a hole.
  • One dashboard intended for everyone, which serves the researcher, the on-call and the planner equally badly.

Key takeaways

  • Goodput is the top metric; everything else exists to explain a drop, and the breakdown must sum to the gap.
  • Collect per-rank step timing and display the spread: one slow rank in 1,024 moves the mean by 0.015% and the job by 15%.
  • Four layers: goodput, per-rank timing, collective timing, device telemetry, each explaining the one above.
  • Page on job impact (goodput, hangs, fatal faults), ticket on recoverable hardware, never on component metrics with no job effect.
That one was free — and so are 10 answers per topic without an account. Signing in doubles that to 20, opens the Plus lessons in the courses, and remembers which topics you keep getting wrong.no card · Google sign-in · nothing to cancel
HOW DID IT GO?
0
READING SIGNED OUT

Signing in doubles your free answers, from 10 to 20 per topic, and the site starts remembering you: mastery per topic, bookmarks, and a next-focus recommendation. Free, no card.

Sign in free

The concepts behind this question

Ranked by how closely each one overlaps this question's topic, so the first card is the thing to read if the answer above moved too fast.

Core
🩺 Fleet Reliability & ObservabilitySign in
DCGM and GPU TelemetryNVIDIA's Data Center GPU Manager reads a GPU's counters, runs its diagnostics and exports both to the monitoring stack, and nearly every fleet's dashboards and alerts are built on it. The skill is knowing which of its hundreds of fields carry signal: the profiling metrics that say whether the tensor cores are busy (not the utilization number everyone reads first), the error counters that predict a failure, the throttle reasons that explain a slow step, and the diagnostic levels that decide whether a node returns to the pool. This page walks those fields, derives an MFU estimate from them, and gives a fleet's alert thresholds.
Core
🩺 Fleet Reliability & ObservabilitySign in
SLOs for AI SystemsA service level objective is a promise with a number attached, and AI systems need their own because the classic ones do not fit: a training run has no requests, only progress, so its objective is goodput; an LLM endpoint streams, so its latency is two numbers (time to first token and time per token) rather than one; and both spend a budget that is set by hardware failure rates rather than by software bugs. This page defines the objectives that fleet and serving teams actually use, derives the thresholds from user needs and from the hardware, and works the error-budget arithmetic that decides when to stop shipping and start fixing.
Foundational
🩺 Fleet Reliability & Observability
Alert Design and On-Call LoadAn alert exists to change what a human does, so any alert that fires without a decision attached is a false alarm regardless of whether its condition was true. GPU fleets generate a specific set of noisy signals that look serious and are not, and separating those from the ones that need a person at three in the morning is what keeps a rotation sustainable. The measure of an alerting system is the fraction of pages that led to an action.
Advanced
🩺 Fleet Reliability & Observability🔒 Premium
Stragglers and HangsSynchronous training runs at the speed of its slowest rank, so one GPU that is 30% slow makes a thousand GPUs 30% slow, and one rank that never arrives at a collective makes the other 1,023 wait in silence until a watchdog fires ten minutes later. Finding the slow rank and the stuck rank is the most common on-call task on a training fleet, and the tooling for it (per-rank timing, the NCCL flight recorder, stack dumps across ranks) is specific and learnable. This page derives the straggler tax from first principles, lists the causes in the order they actually occur, and gives the procedure for a hang.
UP NEXT ON YOUR JOURNEY
FEDITOR'S NOTE

Scored on goodput as the top metric, on per-rank rather than aggregate timing as the straggler instrument, on the layered signal design, and on tying alerts to the researcher's experience rather than to component health.

DISCUSSION · 0

No comments yet — be the first to share your approach.