Question: I found two commands to output information about my CPU: `cat /proc/cpuinfo` and `lscpu`. `/proc/cpuinfo` shows that my CPU speed is 2.1 Ghz, whereas `lspcu` says it is 3167 Mhz. Which one is correct?

This is my exact output from `cat /proc/cpuinfo` about my processor speed:

```
model name  : Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz

```

And this is from `lscpu`:

```
CPU MHz:               3225.234

```

(For some reason, `lscpu` outputs differently every time, varying between 3100 and 3300 MHz)

Answer: 
For intel i3, i5 and i7 based cpus there is a dedicated tool called `i7z` that shows current speed for all cpu cores.

From man page (description):

> 
> i7z runs the i7z, ncurses based, program without any options. i7z will
>  print out the C-states and temperature for i3, i5 and i7 based Core
>  processors from Intel (including Nehalems, Sandy Bridge and Ivy
>  Bridge).
> 
> 
> 

For ubuntu-based distributions you can install it by issuing this command:

```
sudo apt-get install i7z

```

then just run it (tool needs to be run with sudo):

```
sudo i7z

```
CPU frequencies are kept in the kernel but they can be a little "off". You can see them using:

```
$ cd /sys/devices/system/cpu
$ paste <(cat cpu*/cpufreq/affected_cpus) <(cat cpu*/cpufreq/scaling_cur_freq) | column -s $'\t' -t
0  833914
1  800021
2  800086
3  800029
4  800036
5  800460
6  800118
7  800141

```

If you don't need to know the CPU #'s a shorter method is simply using:

```
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
1396354
800058
800050
800024
800005
800017
800001
1392006

```