Two years of “temporary” cabling came out of the rack this weekend. What went back in is boring, labelled, and about four degrees cooler at the top of the case.

The fan curve

The trick was moving the curve off CPU temperature and onto the intake sensor. CPU temp is a liar — it spikes on every scrub and drags the whole rack into leaf-blower mode.

# truenas fan hysteresis
setpoint: intake_c
target: 27
floor: 900rpm
ceiling: 2100rpm
ramp: 90s

Ninety-second ramps mean the rack never audibly “shifts gear,” which matters when it lives one wall away from where I sleep.