A lower CPU frequency ceiling keeps a Linux host from requesting its highest boost range during sustained work. Lowering the cap can reduce fan noise, heat, and battery drain while still leaving the governor free to choose lower speeds when the system is idle.
Linux exposes that ceiling through the CPUFreq policy files under /sys/devices/system/cpu/cpufreq. Each policyX directory controls the CPUs listed in affected_cpus, and scaling_max_freq stores the highest frequency that policy may request, measured in kHz.
Use this runtime change on a physical host or a virtual machine that exposes CPUFreq policy directories. Containers, cloud guests, and some hypervisor-backed systems may not expose the directory at all, and power-management services or a reboot can replace the value later.
$ ls -1 /sys/devices/system/cpu/cpufreq/ policy0 policy1 policy2 policy3
Related: How to check CPU speed throttling in Linux
Continue only when the directory contains at least one policyX entry. If the directory is empty or missing, the current system is not exposing writable CPUFreq policy controls.
$ cat /sys/devices/system/cpu/cpufreq/policy0/affected_cpus 0
Every CPU listed in affected_cpus shares the same frequency policy. Replace policy0 with the policy directory that covers the CPUs to cap.
$ cat /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq 400000
$ cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_max_freq 4800000
Choose a new ceiling between scaling_min_freq and cpuinfo_max_freq. 2000000 means 2.00 GHz, and a driver that exposes scaling_available_frequencies may require one of the listed kHz values.
$ echo 2000000 | sudo tee /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq 2000000
If the current scaling_min_freq is already higher than the target ceiling, the write fails. Lower scaling_min_freq first or choose a higher ceiling.
$ cat /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq 2000000
Repeat the write for each policyX directory that covers CPUs needing the cap. The live clock shown by scaling_cur_freq can stay below the ceiling while the system is idle.