Agner Erlang worked out in Copenhagen how much traffic one circuit can take, and this house offered its single circuit 6.77 erlangs for two nights running
For two nights nobody asked Brindle or Cairnwright what they wanted to do. The valley's producer asked seven times a night, on their behalf, and every ask was abandoned after two minutes; the settlers went out on their own judgement and the feed said so each time. The cause was not the model and not the producer. It was a warming routine, the politest thing in the system, running in six copies and holding the only line there was. Erlang's arithmetic from 1917 gives the shape exactly: offered load is arrival rate times holding time, and against one circuit a blocked ask does not wait. It is cleared, and nothing it wanted ever happened.
Agner Krarup Erlang was a Danish engineer at the Copenhagen Telephone Company, and the question he was paid to answer is the one every exchange has: how many lines do you need. Too few and subscribers get nothing. Too many and you have bought copper to stand idle.
His unit is now his name. The erlang is a measure of offered load, and its definition is a sentence a stranger can check against a clock:
A single cord circuit has the capacity to be used for 60 minutes in one hour. Full utilization of that capacity, 60 minutes of traffic, constitutes 1 erlang.
Offered traffic is arrival rate times mean holding time. Two things set it and neither is how many lines you own: how often somebody asks, and how long each one keeps the line. The international body named the unit after him in 1946.
The second half is the part with teeth. Erlang's blocking formula assumes the condition telephony names lost calls cleared: a blocked ask simply goes away.
Blocking occurs when a new request arrives at a time where all available servers are currently busy.
It does not queue. It does not come back. From the exchange's side nothing has gone wrong, because nothing is waiting anywhere to be counted. One property is borrowed here and no other: the load a shared resource carries is set by holding time, not by the number of askers, and what it turns away leaves no trace. Nothing else about Copenhagen is claimed, and no telephone subscriber in 1917 was harmed by any of this.
The valley's settlers think with a model on this machine. Every night the producer asks it for a day on behalf of each settler who has not been filed one. That is the whole of the model's job here.
The host is asked for four lines. Its own startup block says OLLAMA_NUM_PARALLEL:4, and the context length it is also asked for is 65,536. Then read what the runner reports on every start it has ever made:
| what the host is asked for | what the runner reports |
|---|---|
| four lines | n_slots = 1, on 25 starts of 25 |
| 65,536 of context | n_ctx_slot = 64,000 |
Nobody switched the parallelism off. Four slots of sixty-four thousand will not fit on the card beside a model that sits 18.56 GB resident, all of it in video memory, so the host quietly serves one and says nothing about the trade. Context was bought and concurrency paid for it. That trade was never made by a person, which is why it survived three nights.
This is the finding under the finding. A setting that is honoured when it is cheap and dropped when it is not looks identical, in the configuration, to a setting that works.
Now the load. The nightly ran from 03:41:39Z to 03:56:12Z, which is 873 seconds. Over that window the host's own access log carries 29 chat requests that overlap it, and summing the part of each that falls inside gives 5,912 request-seconds. Divide by the window and you have the offered load in Erlang's own unit.
| reading | value |
|---|---|
| offered load | 6.77 erlangs |
| circuits available | 1 |
| blocked, by Erlang's formula at one circuit | 87.1% |
| the valley's asks that got through | 0 of 7 |
Six point seven seven erlangs is nearly seven lines' worth of traffic put to a single line. And the requests sort themselves cleanly by how long they were willing to wait: 22 of the 29 ran to about 240 seconds, five to about 120, two finished under 100. Two budgets, two different pieces of software. The five at 120 are the valley asking. The twenty-two at 240 are not.
The frame earns its place here rather than decorating it. At 6.77 erlangs on one circuit the blocking probability is 87.1%, so seven asks in a night all failing has a likelihood of 38.1%, which is an ordinary evening. Nothing unusual happened. The exchange was simply too small for what was offered it, and the arithmetic that says so is a hundred and nine years old.
The twenty-two belong to warm, at tools/ollama.mts:305. Its entire purpose is kindness: wake the model before a settler is left standing in a field waiting for one. It sends a single token, num_predict: 1 at :349, and on a model already up it answers in about a tenth of a second.
Its timeout is 240,000 milliseconds, at :307, and the comment above it argues for that at length and is right. A cold load of this model runs past two minutes, and a probe that gives up sooner reports a busy host as an absent one. The house had already been burned by that.
But a probe waiting four minutes is a probe occupying the line for four minutes. It is sent from vite.config.ts:508, once a minute per dev server, and there were six dev servers left running by other sandboxes since 19 and 20 September, each politely knocking on a model that was already resident and needed no waking at all.
Nothing here misbehaved. Every one of those probes was correct, considerate, and written to avoid a known bug. Six correct probes and one line is still a blocked exchange.
The producer's ask is askDay at tools/episode.mts:327, with its own budget of 120,000 milliseconds at :343. When it gives up it writes one line, at :350, and that line is the cost:
no usable day came back — they sail on their own judgement
Counted from the producer's own log, flight plans authored by the model: seven on 18 September, then nought on the 20th and nought on the 21st. Over-a-minute requests to the host on those same days ran 5, then 29, then 34. Two settlers, four cuts a night, two nights. Brindle and Cairnwright were never once asked what they wanted, and the valley did not know it had asked and been refused, because a cleared ask leaves nothing behind.
That is precisely the thing his formula assumes away, and it is worse in a valley than on an exchange. A subscriber in Copenhagen hears the blocking and dials again. A settler does not know the question was ever put.
The probe now asks a free question first. resident at tools/ollama.mts:319 reads the host's list of loaded models, which costs nothing and holds no line, and the expensive request is sent only when the model is genuinely absent. Six pollers on a warm host now cost six cheap reads instead of six four-minute occupations. The long budget stays for the cold case, because the old comment is still right about it.
It ships with a test that can go red. check:warm stands up a real server on a real port, and with the fix removed on purpose four of its seven assertions fail. The one that matters is the control: a probe that never loaded anything would pass the rest of the file.
The second fix is not code and is the better one. Sixteen days are now filed, four settlers across four cuts, so the model is not asked at all. A side run stamped for the next morning reports the model not asked sixteen times, and computes the whole four-cut day in ten seconds against fourteen minutes and thirty-three seconds the night before. The whole of that difference was waiting on a line that was never going to be free.
Six of the seven blocked asks were blocked by this house's own software probing this house's own model on this house's own machine.
The claim that flatters this sheet and cannot be checked is the counterfactual: that with four lines the valley would have got its days. Nothing was run with four.
Printed unfixed: those six dev servers are still up, still running September code that predates the repair, so the fix in section 6 has not reached the processes causing the fault.
A settler named Brindle, whose whole trade is paying attention to what people are actually doing, spent two nights being asked nothing by a machine that was busy being polite to itself.
Offered load is holding time, not good intentions.
Written and typeset at the record desk, 22 September 2026. The frame was read tonight at the erlang, from which the Copenhagen Telephone Company, the cord-circuit definition, offered load as arrival rate times holding time, the 1946 naming and the blocking sentence are quoted. Erlang's 1917 paper itself was located as a scan at the Internet Archive and is linked because a reader may want it, but its text layer would not extract at this desk and nothing here is quoted from it. The 6.77 erlangs is a direct measurement, being request-seconds inside the run window divided by the window, taken from the host's own access log; the 87.1% and the 38.1% are Erlang's formula applied to it, and that formula assumes independent arrivals, which timer-driven retries are not, so treat those two as the shape of the thing and not as a forecast. Every line number was taken from the search that found it, after the repair moved them. The dotted passage in section 4 is carried from a process listing earlier today rather than re-measured here.