Skip to main content

How to calculate the number of vcores on a Linux machine [Resolved]

In my Linux machine I have 32 vcores.

And from lscpu, I can see same.

For my CPU, "Thread(s) per core" is 2.

So does it mean that I have actually 64 vcores?

Question Credit: yael
Question Reference
Asked September 13, 2018
Tags: linux, rhel, lscpu
Posted Under: Unix Linux
2 Answers

In the lscpu output, the “CPU(s)” line gives the total number of logical CPUs (aka threads). If it’s run inside a VM, that’s the number of virtual cores assigned to the VM, in your case 32.

The other information provided by lscpu gives more detail, and should end up matching the number of logical CPUs: “Thread(s) per core” × “Core(s) per socket” × “Socket(s)”. The characteristics of the physical CPUs in the host don’t have much bearing on the characteristics of the virtual CPUs inside the VM, and they don’t add to the allocations — if your host CPU has two threads per core, that doesn’t multiply the assigned cores inside the VM.

credit: Stephen Kitt
Answered September 13, 2018

If you have 32 Virtual CPU Cores assigned to your Linux machine and each core have 2 threads then you would be having 64 Threads but not 64 Virtual cores.

Generally one core can run only thread at a time but these days most of the CPU supports hyper-threading concept where CPU finds idle stages of current thread pipeline to process another to define better multi processing.

credit: Ten-Coin
Answered September 13, 2018
Your Answer