interviewpath
  • 0day streak
  • 10total XP
  • Level 1
0/6

Unit 13 · Cloud research · Lesson 4 of 5

Trace-driven evaluation and revisiting your cloud coursework

Cloud-systems claims are only as credible as the workloads behind them. Trace-driven evaluation replays or models production behavior to test policies realistically, and re-running your own cloud coursework experiments with the same discipline turns them into evidence you can defend in research interviews without overstating what you measured.
About 5 hFocus mode

Step 1: Learn the ideas

  • Why traces: arrival processes, heavy tails, correlations, constraints
  • Google cluster data (2011 and 2019) and BigQuery access
  • Azure traces: VMs, packing, Functions, LLM inference
  • Alibaba traces: co-location, GPU clusters, microarchitecture
  • Replay versus synthetic models versus simulation
  • Scaling, time compression and sampling bias
  • Open-loop load generation and coordinated omission
  • Percentiles, repetitions and run-to-run variance
  • Experiment logs: configuration, versions, environment
  • Revisiting memcached latency-versus-load, interference and Kubernetes coursework

Why it matters

Cloud-systems claims are only as credible as the workload behind them. Trace-driven evaluation replays or models production behavior (arrival patterns, request sizes, resource usage) to test policies under realistic conditions. Research interviewers also ask about your own experiments: what you measured, how, and how sure you are. Re-running and documenting your cloud coursework with this discipline turns it into evidence you can defend.

Core ideas

Public traces. Google's cluster data covers one Borg cell from 2011 and eight cells from May 2019, the latter queried through BigQuery. The Azure Public Dataset includes VM traces, a packing trace, Azure Functions invocations (per-minute counts in 2019, per-invocation timing in 2021) and LLM inference traces with token counts. Alibaba's traces cover co-located online and batch workloads, GPU clusters and microarchitectural contention. Each accompanies a paper; read it before using the data.

Three ways to use a trace. Replay keeps exact arrivals and sizes but has no feedback: real users and retry logic react to latency, a replay does not. Synthetic workloads fitted to trace distributions allow scaling and what-if studies but can lose correlations and burstiness. Simulation reaches scale cheaply but must be validated against at least one real run.

Threats to validity. Time granularity (per-minute bins cannot reconstruct sub-minute inter-arrival times); sanitized or normalized units; sampled applications or regions; scaling a trace down to a small testbed, which changes burstiness and packing difficulty; open- versus closed-loop load; warm-up and steady state; and variance across machines and time in the cloud.

Latency-versus-load method. Use an open-loop generator, sweep offered load from light to past saturation, and at each point record achieved throughput (not only the target), latency percentiles, errors and utilization. Repeat runs, randomize the order of configurations, and report variability. Saturation is where achieved throughput stops tracking offered load or the tail grows sharply.

Revisiting your coursework: procedure, not results

Pick one experiment, such as memcached latency versus load with mcperf, an interference study, or a Kubernetes resource-allocation policy.

  1. Setup. Machine or VM types, CPU model, core count, SMT on or off, kernel version, memcached version and flags (threads, memory), Kubernetes version, node layout, pod requests and limits, CPU pinning.
  2. Load generator. Exact tool and commit (several different tools are called mcperf, so record the repository), agents, threads, connections, pipelining depth, key and value size distributions, read/write mix, QPS schedule, duration per point, warm-up, and where clients ran relative to the server.
  3. Metrics. Which percentile defines the SLO and where it is measured, achieved versus target QPS, errors and timeouts, per-core utilization.
  4. Repetitions. Re-run in randomized order and note which machines and times were used.
  5. Interference. Each antagonist, the resource it stresses, its placement and intensity, and a full latency-load curve under each.
  6. Kubernetes or allocation policies. What was co-located, cores per job, how decisions were made (static or controller-driven), the SLO, batch completion times and the scheduling event log.
  7. Write-up. A one-page log and a two-minute explanation: question, setup, method, what the curves show, limitations, what you would change.

Questions to answer in writing: Which variables were fixed and which swept? How do you know the load generator was not the bottleneck? How large was run-to-run variance, and does it change the conclusion? What would differ on other hardware? Never fill in numbers you did not record; if results are lost, say so and explain how you would re-measure.

Common misconceptions

  • "A replayed trace is ground truth." Replays lack feedback and traces are sampled and sanitized; state what the trace cannot capture.
  • "Target QPS equals achieved QPS." Generators fall behind near saturation; plot achieved throughput.
  • "One run per point is enough if the curve looks smooth." Cloud environments vary across machines and time; repeat and report variability.
  • "Closed-loop clients measure latency under load." They slow down with the server and hide queueing.
  • "Scaling a trace down preserves its behavior." Compression and down-scaling change burstiness and packing difficulty; test sensitivity.

How to approach it

For a public trace, reproduce one figure from its paper before asking new questions. For your experiment, complete the log before re-running anything. In interviews, lead with the question and method, show the curve, and volunteer the limitations.

Suggested order

  1. 1Read the Google cluster-data README and the ClusterData 2019 page; note what the 2019 traces contain and how they are accessed.
  2. 2Read the Azure Public Dataset README and the Azure Functions 2019 page, including the stated limitations of the data.
  3. 3Skim the Alibaba cluster trace overview for the co-location and GPU traces.
  4. 4Read the mutilate README’s suggested-usage section and the methodology of Leverich and Kozyrakis, and compare both with how your coursework generated load.
  5. 5Complete steps 1 to 3 of the coursework procedure from your old notes before re-running anything.
  6. 6Do the revisit-coursework project, then the keep-alive simulation as a trace-driven exercise.

Paper guides: Large-scale cluster management at Google with Borg, Serverless in the Wild: Characterizing and Optimizing the Serverless Workload at a Large Cloud Provider

Step 2: Check off what you can do

Tap each one you can genuinely do or explain. Each earns 10 XP.

Step 3: Go deeper

  • Google cluster workload traces (google/cluster-data)Start here

    Google (GitHub)

    Section: ClusterData 2019 traces

    Borg cluster traces: what they record, how to access them and which papers have used them.

    Open(opens in a new tab)Link responded, 5 Oct 2026
  • Azure Public DatasetStart here

    Microsoft Azure and Microsoft Research (GitHub)

    VM, packing, Functions and LLM inference traces with per-dataset documentation and limitations.

    Open(opens in a new tab)Link responded, 5 Oct 2026
  • Alibaba Cluster Trace Program

    Alibaba (GitHub)

    Traces of co-located online and batch workloads and GPU clusters, relevant to interference and scheduling studies.

    Open(opens in a new tab)Link responded, 5 Oct 2026
  • mutilate: high-performance memcached load generator

    GitHub (Jacob Leverich)

    Reference memcached load generator whose documentation explains how to generate realistic, high-rate client load.

    Open(opens in a new tab)Link responded, 5 Oct 2026
  • Reconciling High Server Utilization and Sub-millisecond Quality-of-Service

    Stanford University (author PDF)

    A worked example of measuring memcached tail latency under co-location, useful as a methodology checklist.

    Open(opens in a new tab)Link responded, 5 Oct 2026

Step 4: Practice

Begin with the coursework log: fill in setup, load-generator settings and metric definitions from your old notes and mark unknowns explicitly. Re-run one configuration (for example the baseline latency-versus-load curve) at least three times in randomized order and report the spread. Only then extend it, for instance with one interference antagonist or a different resource allocation. Separately, use the Azure Functions trace for a replay exercise and write down every assumption the replay makes.

Record attempts on each problem’s page (+15 XP, +10 more when solved on your own).

Step 5: Test yourself

Answer each one out loud or on paper before you finish the lesson.

  1. Question 1What does a trace replay fail to capture about real users?
  2. Question 2Why does per-minute binning in an invocation trace matter for cold-start studies?
  3. Question 3How would you show that your load generator was not the bottleneck?
  4. Question 4Which load-generator settings would someone need to reproduce your coursework curve?
  5. Question 5What changes when you compress a day-long trace into one hour?

You’re done when you can

  • Describe what the Google, Azure and Alibaba traces contain and one limitation of each.
  • Choose replay, synthetic modeling or simulation for a stated research question and justify it.
  • Produce a written log for one coursework experiment covering configuration, versions, load-generator settings, percentiles and repetitions.
  • Re-run at least one configuration with repetitions and report run-to-run variability.
  • Give a two-minute explanation of the experiment that states limitations without inventing missing results.

Finish the lesson

How confident do you feel?

Lesson complete!

+50 XP

Reviews will come up on the Practice tab so it sticks.

Your notes and study time

Log study time