Simulating Multi-tenancy ?When does a fleet of spiky workloads "balance itself out"? Three things decide it: how correlated the workloads are, how many share the fleet, and how evenly sized they are. Independent spikes cancel as you add workloads; correlated spikes — or one workload too big to split — stack up no matter the scale. Inspired by the "managing heat" section of Andy Warfield's S3 post. GitHub
parameters

0% = each spikes on its own schedule · 100% = all spike together.

higher = rarer, taller bursts (heavier tail); lower = gentle bumps.

0% = all workloads same size · 100% = a few elephants dominate.

individual workloads

Each row is one workload (first of ), drawn as a line chart over one day. Shared scale ; taller line = more demand. These series sum into the aggregate below.

heat: blue (low) → red (peak), shared 0–cap× scale
aggregate D(t) — one day

Total demand summed across all workloads at fleet size .

demand D(t) — blue (low) → red (peak)
peak / mean vs. fleet size

How burstiness changes as workloads stack, out to 100M.

─── simulated ╌╌ fitted → 100M ╌╌ correlation floor indivisible estimate current N
presets

Presets that show why S3 amortizes tenants so well and the pitfalls of multi-tenancy that might be preventing your system from doing so.