Frequently Asked Question
How do I tell if my CPU is being thermally throttled?
Modern CPUs reduce their clock speed when they reach a temperature limit
(typically 100°C for Intel, the T-junction) to avoid damage. The
throttling is invisible to programs except as a sudden drop in
performance: your code is the same, your scheduler is the same, but your
cycles-per-second has fallen by 30%. On Linux you can detect it from a
few places. /sys/devices/system/cpu/cpu*/thermal_throttle/ exposes per-core
throttle counters (core_throttle_count increments each time a core was
pushed below its base frequency). The turbostat tool (in
linux-tools-common) prints live frequency, C-state residency, and
PkgTmp per package per second.
cpupower frequency-info and cat /proc/cpuinfo | grep MHz show the
current operating frequency. If your sustained workload is running at well
below the nominal advertised clock, and core_throttle_count is ticking
upward, the answer is heat. The fix is hardware: better cooling, lower
ambient temperature, or, for laptops, descaling the heatsink and
replacing dried-out thermal paste. As a software lever, cpupower frequency-set --max 3.0GHz can cap the maximum and reduce thermal load at
a cost of some peak performance.