The /proc/cpuinfo file contains information about the CPUs installed on your computer however it’s quite confusing when you have to deal with multi-core processors.

- list number of physical CPUs:

$ cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
1

- number of cores:

$ cat /proc/cpuinfo | grep "cpu cores" | uniq
cpu cores    : 2

- how many virtual processors:

$ cat /proc/cpuinfo | grep "^processor"
processor    : 0
processor    : 1

If the number of virtual processors is greater than the number of physical processors, the CPUs are using hyper-threading. Hyper-threading will only work with the SMP kernel.