Learn
Lesson · Queues and Utilisation · Rates and Little's Law

λ, μ and ρ

Three symbols carry the whole course. λ is how fast work arrives, μ is how fast one server finishes it, and ρ = λ/μ is the fraction of the time that server is busy. The trap is the middle one: μ is a rate and not a duration, so a service taking 2 ms has μ = 500 per second.

λ arrivals per second a rate S mean service time a duration μ = 1/S services per second S = 2 ms gives μ = 500/s ρ = λ/μ utilisation a pure number; the seconds cancel ρ ≥ 1 nothing settles the backlog grows at λ − μ, for ever
Two rates, one duration, and the ratio they make

Core ideas

What this lesson establishes

One of these three symbols is a rate written as the reciprocal of a duration, and most of the confusion on this course starts there.

1

μ is a rate; S is the duration

A request that takes S = 1 ms is served at μ = 1000 per second, not at μ = 1. The two are reciprocals, μ = 1/S, and they are never interchangeable. When S is quoted in milliseconds the conversion carries a thousand with it: μ = 1000/S.

2

ρ is a fraction of a server, not a speed

ρ = λ/μ divides a rate by a rate, so the seconds cancel and what is left is a pure number: the fraction of time the one server is busy. At ρ = 4/5 it works four seconds in every five and is idle the fifth, and that idle fifth is the only thing a burst has to land in.

3

Above ρ = 1 there is nothing to average

Every closed form later in this course divides by 1 − ρ, and at ρ ≥ 1 that is zero or negative because there is no settled queue length to report. What there is instead is a slope: work accumulates at λ − μ a second and keeps doing it until something changes.

The material

Rates, reciprocals, and the ratio between them

What each symbol is, what it is measured in, and what changes at ρ = 1.

Definition · Arrival rate, service time, service rate

The arrival rate λ is the mean number of arrivals per unit time. The mean service time S is how long one server takes over one job. The service rate μ = 1/S is how many jobs that server can finish per unit time when it never waits for work.

Both λ and μ are rates and S is a duration. Keeping that straight is the whole of this lesson, because the two quantities a designer is handed are usually a rate (requests per second, from a dashboard) and a duration (a service time in milliseconds, from a trace), and they cannot be divided until one of them has been turned into the other's kind.

Example · A 1 ms service under 800 requests a second

S = 1 ms is 1/1000 of a second, so μ = 1000 per second. Then ρ = 800/1000 = 4/5: the server is busy four fifths of the time. It is not 800 times too slow and it is not running at 800; it has a fifth of itself spare.

Definition · Utilisation

The utilisation ρ = λ/μ is the long-run fraction of time a single server is busy. It is dimensionless: a rate divided by a rate. Equivalently it is the offered load measured in servers — ρ = 4/5 says the work offered would keep four fifths of one server occupied.

λ = 800 / s S = 1 ms = 1/1000 s μ = 1/S = 1000 / s ρ = λ/μ = 800/1000 = 4/5 busy 4 s in every 5 1 − ρ = 1/5 the headroom a burst lands in

Doubling the service time halves μ, and ρ doubles with it. This is the cheapest sensitivity on the course and the one most often missed: nothing about the offered traffic has to change for a system to cross ρ = 1. A slower dependency, a larger payload, a colder cache — each of them moves μ and therefore moves ρ.

Example · The same 800 requests a second into a 2 ms service

S = 2 ms gives μ = 500 per second, so ρ = 800/500 = 8/5. The load did not change. The service time did, and that was enough to put the system above one.

What ρ ≥ 1 actually means

At ρ ≥ 1 work arrives at least as fast as it can be finished, so the amount waiting has no long-run average at all. It grows at λ − μ per second for as long as the condition lasts. That is a straight line, not a queue, and quoting a queue length for it is the first mistake this course can catch.

λ = 1200 / s μ = 1000 / s λ − μ = 200 / s the line's slope after one minute 200 × 60 = 12 000 waiting after one hour 200 × 3600 = 720 000 waiting

Below one the queue does settle, and the rest of this course is about what it settles at. The one thing to carry forward from here is that ρ is the input to all of it: every later formula is a function of ρ alone, and the closer ρ is to one the more violently that function moves.

Interactive

Rates, not latencies

ρ = λ/μ is a ratio of two rates, and ρ ≥ 1 is a straight line

Arrival rate, service rate, utilisationρ = λ/μ, and what happens to the backlog when it reaches 1
arrivals λservice μthe gap when ρ ≥ 1

Method

Turning a service time into a utilisation

Four lines of arithmetic, of which the second is the one that goes wrong.

1

Write the service time down with its unit

S = 2 ms, not S = 2. Half the errors below are unit errors, and they are invisible once the unit has been dropped.

2

Invert it, carrying the conversion

μ = 1/S. In milliseconds that is μ = 1000/S per second: S = 2 ms gives μ = 500 per second, S = 40 ms gives μ = 25 per second.

3

Put λ in the same unit of time and divide

ρ = λ/μ is a pure number. If the answer has seconds or milliseconds attached to it, the division was not the one intended.

4

Check ρ against 1 before computing anything else

Below one, the queue settles and every formula on this course applies. At or above one, report λ − μ per second and the backlog after the interval you care about, and stop.

Rates and the ratio

Score 0 / 0

800 requests a second, into a 1 ms service and then a 2 ms one

The same offered load twice, with only the service time changed. The point is that the second column is not a small degradation of the first.

λ = 800 / s S = 1 ms = 1/1000 s μ = 1/S = 1000 / s ρ = λ/μ = 800/1000 = 4/5 settles; busy 4 s in 5 now the same load into a service twice as slow S = 2 ms μ = 500 / s ρ = 800/500 = 8/5 8/5 ≥ 1: nothing settles λ − μ = 800 − 500 = 300 / s after one minute 300 × 60 = 18 000 waiting

Nothing about the traffic changed between the two columns. A service time of 1 ms leaves a fifth of a server spare; a service time of 2 ms asks for eight fifths of one, and the shortfall of 300 a second does not average away — it accumulates.

For a faded rehearsal, keep the 1 ms service and raise the load to 1200 a second instead. The supplied first move is that μ is unchanged at 1000. Work out ρ, say whether it settles, and if it does not give the backlog after five minutes before opening the quiz.

Common mistakes

1
Reading μ as a latency“The service takes 2 ms, so μ = 2” is the error this lesson exists to prevent. μ counts completions per unit time: 2 ms per job is 500 jobs a second. Any ρ that comes out in the hundreds or thousands is this mistake, because it is λ multiplied by a duration rather than divided by a rate.
2
Dividing a per-second rate by a millisecond figure800/2 is 400 only if both numbers are in the same unit of time, and they are not: one is per second and the other is milliseconds per job. Convert first, divide second. Writing the unit next to every number makes this error visible before the division rather than after it.
3
Quoting a queue length above ρ = 1ρ/(1 − ρ) at ρ = 8/5 returns -8/3, and a negative queue is the formula reporting that its assumption has failed. Above one there is no steady state to average; the honest answer is the growth rate λ − μ and the interval you are prepared to let it run.

Check your understanding

✓
Finish when “a 2 ms service” and “μ = 500 per second” are the same sentence to you.

You should be able to take a service time in milliseconds to μ, take λ and μ to ρ, say at a glance whether a system settles at all, and when it does not give the growth rate rather than a queue length.

Note: Everything above is one server at one moment. The next lesson leaves models behind entirely: “Little’s Law from a Trace” proves the one relation on this course that assumes nothing at all — no distribution, no steady state, not even a queue discipline — by counting the same area twice.

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.