Learn
Lesson · Scaling Laws and Cost · Paying for the peak

Utilisation and Waste

Capacity is bought for the busiest hour and used at the average one. Buy peak/ρ_target and use the mean, and the share you paid for and did not use is 1 − mean·ρ_target/peak. The size of the day cancels out of that fraction entirely: only the shape of the profile and the target utilisation move it.

paid = peak/ρ_target used = mean waste = 1 − mean·ρ_target/peak the size of the day cancels peak 12 000 rps at 21:00, mean 5 250 rps, peak/mean = 16/7 ρ_target = 70% → paid 17 143 rps, used 5 250 rps waste = 1 − (5 250 × 0.7)/12 000 = 111/160 = 69.4%
What you buy, what you use, and the gap as a fraction

Core ideas

What this lesson establishes

The formula is one line. What it is worth knowing is what is missing from it, and what happens to a service that acts on the waste figure directly.

1

You buy for the peak hour, divided by the utilisation you will run it at

Nobody runs the busy hour at a hundred per cent: waiting explodes as ρ approaches one, which is the subject of “The Knee: Response Time vs Utilisation”. So the purchase is peak/ρ_target — 12 000/0.7 = 17 143 rps here — and the headroom in that division is bought deliberately rather than wasted.

2

You use the mean, and the ratio of the two is the shape

Every hour below the peak contributes its own gap, and averaged over the day the capacity actually consumed is the mean: 5 250 rps against 17 143 purchased. The 16/7 peak-to-mean ratio is the whole of what the profile contributes — the same shape at ten times the traffic gives exactly the same waste.

3

The waste fraction contains no units and no volume

1 − mean·ρ/peak is built from a ratio and a fraction, so doubling every bucket changes nothing and switching from requests to watts changes nothing. Only two things move it: flattening the profile, and raising the utilisation you are prepared to run the peak at. That is the entire list.

The material

What is bought, what is used, and the fraction between them

Where the two capacities come from, why the fraction is scale-free, and what happens if you act on it by cutting to the average.

Definition · Waste from a load profile

For a load profile with maximum peak and average mean, bought at a target utilisation ρ_target for the busiest hour, the purchased capacity is peak/ρ_target, the used capacity is mean, and the waste is

1 − mean·ρ_target/peak,

the share of what was bought that was not used, averaged over the period the profile covers.

ρ here is the λ/μ of “λ, μ and ρ” and nothing else: demand over the capacity actually in service. This course does not define a second utilisation, and every page that prints a ρ means that one.

peak = 12 000 rps at 21:00 mean = 5 250 rps ρ_target = 7/10 paid = peak/ρ = 12 000 ÷ 7/10 = 120 000/7 = 17 142.86 rps used = mean = 5 250 rps waste = 1 − used/paid = 1 − 5 250 × 7 / 120 000 = 1 − 36 750/120 000 = 1 − 49/160 = 111/160 = 69.375% peak/mean = 12 000/5 250 = 16/7 = 2.286

Note the middle line. used/paid is mean·ρ/peak, which is (mean/peak)·ρ — the reciprocal of the peak-to-mean ratio, multiplied by the target utilisation. Both factors are pure numbers, which is why nothing about the size of the service survives into the answer.

Example · The same shape, ten times the traffic

Multiply every hour of the profile by ten. The peak becomes 120 000 rps, the mean 52 500, the purchase 171 429 — and the waste is 1 − 52 500 × 0.7/120 000, which is 111/160 again. Growth does not improve this number. Flattening the profile does, and so does daring to run the peak hour hotter.

“Sixty-nine per cent idle, so cut it”

This is the misconception the lesson exists for, and it is easy to fall into because the number really is 69.4%. But that figure is an average over the day, and the day has a shape: cut the fleet to the 5 250 rps you use on average and nine of the twenty-four hours are over capacity, the worst of them by 6 750 rps.

At the peak hour the utilisation of that cut fleet would be 12 000/5 250 = 16/7, which is not a busy queue — it is ρ > 1, where there is no steady state at all and the backlog grows at λ − μ for as long as the hour lasts. “λ, μ and ρ” is where that threshold is established; the point here is that the waste figure gives no warning of it, because it is a mean and the failure is at the maximum.

Example · What can actually be cut

The honest reading of 69.4% is that the profile is expensive, not that the fleet is oversized. Three moves change the number and none of them is a straight cut: raise ρ_target from 70% to 80% and the waste falls to 1 − 5 250 × 0.8/12 000 = 65%; move work out of the peak hour so the peak-to-mean ratio falls; or put work on the trough that does not care when it runs, which raises the mean without touching the peak.

The only profile with no waste

Set the shape to flat and peak = mean, so the waste is 1 − ρ_target — 30% at a seventy per cent target, and that residue is the headroom, which is not waste at all. A perfectly flat profile is the best case and it is rare, which is why batch work, index rebuilds and backfills are scheduled into troughs: they are the cheapest capacity in the building because they are already paid for.

The profile this lesson uses is the consumer shape of “Peak to Average”, on “Capacity Estimation” — one evening peak, a quiet early morning. That course turned a population into a peak rate; this one prices the gap that peak leaves behind for the other twenty-three hours.

Interactive

Utilisation and waste

The gap between what you buy and what you use

Utilisation and wasteyou pay for peak/ρ and you use the mean
load in the hourthe peak hourthe hour you are editingcapacity paid for and not usedthe mean

Method

Putting a number on a profile’s waste

Two capacities and one subtraction — and then the check that stops the number being acted on wrongly.

1

Find the peak bucket and the mean across all of them

The peak is a maximum over the period, not the busiest bucket you happened to look at. Both come from the same profile, so state the period: a waste figure over a day and one over a week are different numbers about different shapes.

2

Divide the peak by the utilisation you will run it at

peak/ρ_target is what you buy. Choosing ρ_target is a latency decision rather than a cost one — the response-time multiplier is 1/(1 − ρ) — and it should be decided before this arithmetic rather than tuned to make the waste look better.

3

Compute 1 − mean·ρ_target/peak and keep it as a fraction

111/160 here. Keeping it exact makes it obvious that the answer contains only a ratio and a fraction, and therefore that nothing about the volume of traffic is in it.

4

Test the cut before recommending it

Take the capacity you propose and count the hours of the profile above it, and the worst overshoot. Cutting to the mean here leaves nine hours over and a worst case of 6 750 rps, with ρ = 16/7 at the peak. That test is one pass over the buckets and it is what separates a saving from an outage.

5

Say which of the three levers you are proposing

A higher ρ_target, a flatter profile, or more work in the trough. “Reduce waste” without one of those named is not a proposal, because the only other way to move the number is to serve less traffic.

Buying for the peak, using the mean

Score 0 / 0

An evening peak of 12 000 rps against a mean of 5 250

The profile is the consumer shape: quiet overnight, a long climb, one peak at 21:00. Everything below is exact.

peak 12 000 rps (21:00) mean 5 250 rps (over all 24 hours) peak/mean 12 000/5 250 = 16/7 = 2.286 ρ_target 7/10 paid 12 000 ÷ 7/10 = 120 000/7 = 17 142.86 rps used 5 250 rps waste 1 − 5 250·(7/10)/12 000 = 1 − 3 675/12 000 = 1 − 49/160 = 111/160 = 69.375% now test the cut to the mean, 5 250 rps: hours above it 9 of 24 worst overshoot 12 000 − 5 250 = 6 750 rps ρ at the peak hour 12 000/5 250 = 16/7 > 1 ⇒ no steady state; backlog grows at λ − μ while it lasts and at ρ_target = 8/10 instead: waste = 1 − 5 250·(8/10)/12 000 = 1 − 4 200/12 000 = 65%

The two blocks at the bottom are the lesson. The first shows that the 69.4% cannot be taken as slack: acting on it directly puts nine hours of the day above capacity and the busiest one far above it. The second shows the lever that does work — ten points of target utilisation moved the waste by more than four points, and it cost latency rather than reliability.

Notice that the volume never appeared. 16/7 and 7/10 are the only inputs to the waste, and both are pure numbers: the same fraction comes out for a service a hundred times the size with the same daily shape.

For a faded attempt, take the business profile — two humps either side of lunch, which is flatter. Predict before computing whether its waste is above or below 69.4% at the same ρ_target, then read the peak, the mean and the waste off the lab and say which of the two factors did the work.

Common mistakes

1
Reading the waste as slack that can be cut69.4% is an average over a shaped day. The fleet is not 69.4% too large at any hour — it is enormously too large at 04:00 and exactly right at 21:00. Cutting to the mean leaves nine hours over capacity and the peak hour at ρ = 16/7, which is not a slow service but an unbounded backlog.
2
Counting the headroom in peak/ρ_target as wasteThe gap between 12 000 and 17 143 was bought on purpose, because the response-time multiplier at ρ = 1 is unbounded. It shows up inside the waste fraction, which is why a flat profile still reports 1 − ρ_target = 30%. That residue is the price of a latency target rather than an inefficiency.
3
Expecting growth to improve the numberTraffic cancels out of 1 − mean·ρ/peak completely, so a service that grows tenfold with the same daily shape wastes the same fraction and ten times the money. The two things that move it are the shape and the target utilisation, and neither of them arrives on its own.

Check your understanding

✓
Finish when a waste figure always arrives with the shape it came from and a test of the cut it suggests.

You should be able to compute peak/ρ_target, the mean, and 1 − mean·ρ_target/peak as an exact fraction, show that the answer does not change when the whole profile is scaled, and count the hours a proposed cut would put over capacity before you propose it.

Note: That fraction assumed every instance-hour costs the same. It does not: the same hour can be bought up front at a discount or on demand at a premium, and the profile decides which is cheaper for each layer of the fleet. “Reserved vs On-demand” turns the price ratio into a utilisation threshold and then reads the optimal reserved level straight off the profile you just measured.

Kept in this browser only, for you. Nothing is sent anywhere and nothing checks it. Carry it to another device.

Feedback and recommendations

Something to change about this lesson? Write it down, tick it off when it is handled, and export the list when you want to act on it. Kept in this browser only: nothing is sent anywhere, and nobody is notified.

No recommendations yet for this lesson.