How can I count the number of CPU cores?

Try this,

As per man lscpu

CORE   The logical core number. A core can contain several CPUs.

SOCKET The logical socket number. A socket can contain several cores.

cores as well as sockets are physical where as CPU(s) are logical number. So to find the number of cores your system has, do number of cores x number of sockets

A sample output of lscpu is as follows :

Thread(s) per core:    2
Core(s) per socket:    8
Socket(s):             2

So the total number of cores: 16

The total number of CPU(s): 32 (Since number of threads per core is 2)

As @Durga mentioned , the nproc gives total number of CPUs.

For more , refer this answer , to get interpretation of /proc/cpuinfo refer this

I'd like to thank @Kusalananda for helping me to understand the same.


In Terminal nproc, OP: total cpu cores


If you are only interested in the sum, you can also use GNU awk:

cat /proc/cpuinfo |grep "cpu cores" | awk -F: '{ num+=$2 } END{ print "cpu cores", num }'

Edit: This is the correct answer for the OP's intention to sum the numbers of the last column. However the question about finding out how many cores (physical/virtual) are on the machine is given in the other answers to the question.

Tags:

Cpu