idlecore.me the home page of edvin kalda - tartu, estonia
updated by hand
2025-02-11


What four governors cost at idle

A machine doing nothing is the easiest thing in the building to measure and the hardest thing to make anyone care about. Here is what the choice of frequency governor costs, in watts at the wall, when there is no work at all.

How I measured it

Both machines are described on the notes page and were in exactly that state: display off, no graphics card in the server, one disk spun up, link negotiated at a gigabit. I set the governor on every core, waited four minutes, then logged mains draw once a second for ten minutes. Five windows per governor, taken in a rotating order rather than one governor after another, so that a warming room could not quietly bias one of them. The figure below is the median of the five medians.

The one rule that cost me a day to learn: do not stay logged in. A single idle remote shell on the shelf server costs 1.1 W all by itself, because the terminal keeps the machine waking up to do nothing. I now start the logger, log out, and come back.

Idle mains draw on the desk machine by governor: performance 24.6 W, ondemand 20.1 W, schedutil 19.3 W, powersave 18.4 W performance ondemand schedutil powersave 24.6 W 20.1 W 19.3 W 18.4 W 0 10 20 watts at the wall
Desk machine, idle, median of five ten-minute windows per governor.

The numbers

Idle draw and the latency it buys. Latency is the 99th percentile of wake-to-first-reply on a synthetic load that works for 40 ms out of every 400.
GovernorDesk, WShelf, Wp99, ms
performance24.641.27.8
ondemand20.134.811.9
schedutil19.333.68.4
powersave18.432.941.3

Two things fall out of that table and neither is subtle.

First, pinning every core to its top frequency to idle there is expensive and buys nothing: 5.3 W on the desk machine, 7.6 W on the server, for 0.6 ms of tail latency against the governor that does the sensible thing. On a rack of forty such boards that is three hundred watts of nothing.

Second, the last 0.9 W is a trap. Going from schedutil to powersave saves less than a watt and multiplies the tail by five, because the governor will not raise the clock until the queue has already built up. If somebody tells you they saved power by clamping the maximum frequency, ask them for the latency plot. They usually have the power plot.

What I changed afterwards

Both my machines sit on schedutil and have done since this measurement. At the hosting company I did the same thing across a batch of nine hundred-odd nodes in 2022, for 4.8 W a node, which is written up in the work page rather than here because the interesting part there was the argument, not the measurement.

What this note does not say

The next note is about the layer underneath this one: what the processor does between the governor’s decisions, and why a polling idle loop undoes everything on this page.