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: 
To see the current speed of each core I do this:

```
watch -n.1 "grep \"^[c]pu MHz\" /proc/cpuinfo"

```

**Notes:**

This does not work on server CPUs such as the Intel Xeon series. On such machines it will show the base frequency only. To show the turbo frequency, you'll need cpupower or turbostat. See @Maxim Egorushkin's answer.

If your `watch` command does not work with intervals smaller than one second, modify the interval like so:

```
watch -n1 "grep \"^[c]pu MHz\" /proc/cpuinfo"

```

This displays the `cpu speed` of each core in real time.

By running the following command, one or more times, from another terminal one can see the speed change with the above `watch` command, assuming `SpeedStep` is enabled (`Cool'n'Quiet` for `AMD`).

```
echo "scale=10000; 4*a(1)" | bc -l &

```

(This command uses `bc` to calculate `pi` to 10000 places.)
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

```