Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My /proc/cpuinfo says my processor is 800Mhz, when I know the thing is actually 2.8Ghz. This is due to idle throttling where the cpu clock is slowed when idle to save power.

Is there a way in Linux to find the true cpu speed?

share|improve this question

migrated from stackoverflow.com Nov 9 '11 at 1:12

This question came from our site for professional and enthusiast programmers.

up vote 9 down vote accepted

The file /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq contains the maximum frequency in KHz (that directory, /sys/devices/system/cpu/cpu0/cpufreq, also contains a bunch of other cpu-frequency related information). It contains just a single ASCII number, so is much easier to parse than the stuff in /proc/cpuinfo or the dmesg output.

Note that this info is per-cpu, but of course maximum frequency will be the same for all cpus on most systems, so I just used cpu0.

BTW, on my system, the maximum frequency can be read by any user, but the current frequency (.../cpuinfo_cur_freq) can only be read by root; I don't know if this is true on all systems...

share|improve this answer
What systems does this work for? It worked for me on CentOs, but file does not exist on Ubuntu 10.04. – Fixee Oct 29 '11 at 3:36
@Fixee I think it should work on any reasonably mainstream linux system. I don't know exactly when it was added, but this feature seems to have been around for ages. A few guesses: (1) maybe the cpufreq kernel module isn't loaded; try installing the cpufrequtils package (that's the Debian package name, but I'd guess Ubuntu is similar), or (2) maybe they're mounting the sysfs filesystem someplace other than /sys; try df -a -t sysfs to see where it's mounted. – snogglethorpe Oct 29 '11 at 6:45

You can find out using grep and dmesg:

# dmesg | grep CPU
CPU0: Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz stepping 05
share|improve this answer
Unf the analogous line for me (CentOs 6, 2.6.32-71.el6.x86 kernel), is CPU0: AMD Opteron(tm) Processor 4184 stepping 01. – Fixee Oct 28 '11 at 0:39
As an aside, the info above (CPU0: ...) appears in /proc/cpuinfo as "model name" here. – Mel Boyce Oct 28 '11 at 3:04

lshal | grep info.product|grep GHz

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.