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?

  • What meaning of vcore are you using (voltage-core, us used by the top 10 in my google search. Or something else)? – ctrl-alt-delor Sep 13 '18 at 8:42

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.


If you have 32 CPU Cores assigned to your Linux machine and each core have 2 threads then you would be having 64 Threads but not 64 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.

But If your Linux machine is virtual then your VM will show logical threads instead of cores in your machine.

  • No, if you assign a given number of virtual cores to a VM, then you get that many logical CPUs, only. – Stephen Kitt Sep 13 '18 at 8:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.