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.

Further reading and video