Monitoring CPU frequency scaling in Linux helps align system performance with power consumption targets on laptops, desktops, and servers. Observing how clock speeds ramp up or down under load provides insight into thermal throttling, power-saving states, and whether configured policies match workload expectations.

The kernel exposes CPU frequency scaling details through the cpufreq framework using the /sys/devices/system/cpu hierarchy. Files such as scaling_governor, scaling_cur_freq, scaling_min_freq, and scaling_max_freq describe the active governor, current frequency, and configurable bounds, while driver modules like acpi_cpufreq or intel_pstate implement the policy logic.

Available information depends on the active CPU driver and virtualization layer, so some systems may expose different files or fewer knobs than bare-metal hosts. Reading values from /sys is safe, but changing them without understanding the impact can force the CPU to run at inefficient frequencies or interfere with thermal limits, so the following commands focus only on viewing the current policy.

Steps to view the CPU frequency scaling policy using sysfs:

  1. Open a terminal with a user account that can read /sys/devices/system/cpu.
    $ whoami
    root
  2. Confirm that cpufreq-related drivers are loaded.
    $ lsmod | grep cpufreq

    No output indicates that frequency-scaling drivers are not loaded in this environment.

  3. List the cpufreq directories for each CPU core.
    $ ls /sys/devices/system/cpu/cpu*/cpufreq/
    ls: cannot access '/sys/devices/system/cpu/cpu*/cpufreq/': No such file or directory

    When the cpufreq directories are absent, CPU frequency scaling data is not exposed; use a full VM or physical host for policy inspection.