Linux CPU Thermal Throttling — Performance Drops Due to Overheating
About Linux CPU Thermal Throttling
Fix CPU thermal throttling on Linux where the processor reduces clock speed to prevent overheating, causing performance degradation under heavy load. This guide covers everything you need to know about this topic, including common causes, step-by-step solutions, and answers to frequently asked questions.
Here are the key things to understand: CPU thermal throttling reduces clock speed when the processor temperature exceeds safe limits. Throttling is controlled by the CPU firmware and Linux thermal subsystem. Common thermal limits: laptop CPUs (90-100C), desktop CPUs (85-95C), server CPUs (80-90C). Throttling causes sudden performance drops under sustained load (compiling, rendering, VMs). The intel_pstate or acpi-cpufreq driver manages CPU frequency scaling on Linux. Understanding these fundamentals will help you diagnose and resolve this issue more effectively.
The most common reasons this occurs include: Dust buildup blocking CPU cooler airflow. Thermal paste dried out between CPU and heatsink. Insufficient cooling for the workload (stock cooler under sustained heavy load). Server room or environment temperature too high. Identifying the root cause is the first step toward finding the right solution.
To resolve this, follow these recommended steps: Check CPU temperature: 'sensors' (from lm-sensors package) or 'cat /sys/class/thermal/thermal_zone*/temp'. Check throttle count: 'cat /sys/devices/system/cpu/cpu0/thermal_throttle/core_throttle_count'. Monitor frequency: 'watch -n 1 cat /proc/cpuinfo | grep MHz' — frequency drops when throttling. Clean dust from CPU cooler and case fans. Replace thermal paste if temperatures are high with a clean cooler (reapply after removing old paste). If these steps do not resolve the issue, consider consulting additional resources or a qualified professional.
This article is part of our Linux Error Codes collection on Error Codes Wiki. We provide comprehensive, up-to-date information to help you find solutions quickly.
Quick Answer
How do I install lm-sensors?
Debian/Ubuntu: apt install lm-sensors, then run 'sudo sensors-detect' to configure. RHEL/CentOS: yum install lm_sensors. After setup, run 'sensors' to see current temperatures.
Overview
Fix CPU thermal throttling on Linux where the processor reduces clock speed to prevent overheating, causing performance degradation under heavy load.
Key Details
- CPU thermal throttling reduces clock speed when the processor temperature exceeds safe limits
- Throttling is controlled by the CPU firmware and Linux thermal subsystem
- Common thermal limits: laptop CPUs (90-100C), desktop CPUs (85-95C), server CPUs (80-90C)
- Throttling causes sudden performance drops under sustained load (compiling, rendering, VMs)
- The intel_pstate or acpi-cpufreq driver manages CPU frequency scaling on Linux
Common Causes
- Dust buildup blocking CPU cooler airflow
- Thermal paste dried out between CPU and heatsink
- Insufficient cooling for the workload (stock cooler under sustained heavy load)
- Server room or environment temperature too high
Steps
- 1Check CPU temperature: 'sensors' (from lm-sensors package) or 'cat /sys/class/thermal/thermal_zone*/temp'
- 2Check throttle count: 'cat /sys/devices/system/cpu/cpu0/thermal_throttle/core_throttle_count'
- 3Monitor frequency: 'watch -n 1 cat /proc/cpuinfo | grep MHz' — frequency drops when throttling
- 4Clean dust from CPU cooler and case fans
- 5Replace thermal paste if temperatures are high with a clean cooler (reapply after removing old paste)