cpu MHz: 1600.000 — Why the CPU Frequency in Debian Is Lower Than Rated

Category: Servers & Websites
Posted: May 23, 2015
Author: Antonio

On a new server I ran into this: the CPU is an Intel Pentium G2020 @ 2.90GHz, yet Debian shows a frequency of 1600 MHz. The first thing I did was check the frequency and memory:

grep MHz /proc/cpuinfo ; grep MemTotal /proc/meminfo

cpu MHz: 1600.000 on Debian

The memory was fine (8 GB), but the frequency was puzzling. Where does 1600 MHz come from instead of 2900?

Why the frequency is lower than rated

The dmesg output shows the CPU is detected correctly:

[    0.048138] CPU0: Intel(R) Pentium(R) CPU G2020 @ 2.90GHz stepping 09

It turned out to be simple: it’s power saving. With no load, the cores run at 1.6 GHz. Start a heavy MySQL query and the frequency immediately goes up to the rated one. So 1600 MHz at idle is normal, not a faulty CPU.

You can watch the frequency change under load like this (updates every second):

watch -n1 "grep MHz /proc/cpuinfo"

And this shows the policy the kernel uses to manage the frequency:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

It’s usually ondemand or powersave — the frequency drops at idle. If the file doesn’t exist, frequency scaling isn’t in use on the system.

This surprised me, because I mostly work with virtual servers on ESXi, and there the console always shows the maximum frequency, even under low load:

CPU frequency in the console of a virtual server on ESXi

Frequency of all cores and the CPU model (2020)

The same commands came in handy on a home computer with an AMD Ryzen 5 3600 (6 cores, 12 threads):

grep MHz /proc/cpuinfo

Each line is one thread. The frequencies differ because idle cores drop their clock:

cpu MHz         : 3999.797
cpu MHz         : 1998.880
cpu MHz         : 3998.749
cpu MHz         : 3997.977
cpu MHz         : 3999.594
cpu MHz         : 3998.537
cpu MHz         : 3998.684
cpu MHz         : 1999.940
cpu MHz         : 3999.897
cpu MHz         : 2526.773
cpu MHz         : 3998.544
cpu MHz         : 3993.985

The CPU model, the number of cores and threads and other details are shown by:

lscpu

lscpu: AMD Ryzen 5 3600 on Debian

Nothing extra to install: both commands are available on Debian right after installation.

Related posts:

Leave a Comment

Copying content from this site is allowed only with a direct link to the source - https://nemcd.com