VMware Cloud Community
M4T
Enthusiast
Enthusiast
Jump to solution

How to calculate vCPU

hi ,

 

how do u calculate vCPU from your hosts. 

I've seen a few forums on different opinions but how do you actually work it out. 

 

my system is 2x Processors 

8-Cores 16-Threads each. 

is vCPU based on your total CPU cores so 1vcpu would be 1 core etc etc

Labels (1)
  • W

Reply
0 Kudos
1 Solution

Accepted Solutions
StephenMoll
Expert
Expert
Jump to solution

I think it is worth pointing out that the number of vCPUs allocated to VMs multiple is not constrained by the host either. Kinnison's point is that any one VM can only have as many vCPUs as there are threads on a host. You can have more than one of these VMs though. In practical use, this wouldn't be a good idea, but the reason for this is probably only going to confuse things here.

An extreme example is that Kinnison's host could quite happily run TWO VMs with 56 vCPUs. I.e there are 112 vCPUs allocated. ESXi will switch the available host threads between all those 112 vCPUs staring the CPU time as fairly as possible. This is called "over provisioning", and is a valid technique to use.

In practical situations the limiting factor when over provisioning is memory, this has in my experience tended to be the first resource to run low and impact performance noticeably.

 

A very good read on this, which I highly recommend, can be had with the "VMware vSphere 6.5 - Host Resource Deep Dive" by Frank Denneman and Niels Hagoort. This is still available free I believe, details here : https://frankdenneman.nl/2017/11/07/free-vsphere-6-5-host-resources-deep-dive-ebook/

Usually plenty of second hand copies on sites like Amazon, if real books are more your thing. That's what I did, as I find a real book more pleasant to sit and read. I have the eBook version too (Its a PDF) as the indices and content pages in the books are not very useful for finding stuff, and the PDF comes in handy when searching for terms and content.

Although this book was written when vSphere 6.5 was the latest and greatest, there is not much in the book that isn't relevant to later releases.

View solution in original post

Reply
0 Kudos
5 Replies
Kinnison
Commander
Commander
Jump to solution

Comment removed...

Reply
0 Kudos
StephenMoll
Expert
Expert
Jump to solution

I think it is worth pointing out that the number of vCPUs allocated to VMs multiple is not constrained by the host either. Kinnison's point is that any one VM can only have as many vCPUs as there are threads on a host. You can have more than one of these VMs though. In practical use, this wouldn't be a good idea, but the reason for this is probably only going to confuse things here.

An extreme example is that Kinnison's host could quite happily run TWO VMs with 56 vCPUs. I.e there are 112 vCPUs allocated. ESXi will switch the available host threads between all those 112 vCPUs staring the CPU time as fairly as possible. This is called "over provisioning", and is a valid technique to use.

In practical situations the limiting factor when over provisioning is memory, this has in my experience tended to be the first resource to run low and impact performance noticeably.

 

A very good read on this, which I highly recommend, can be had with the "VMware vSphere 6.5 - Host Resource Deep Dive" by Frank Denneman and Niels Hagoort. This is still available free I believe, details here : https://frankdenneman.nl/2017/11/07/free-vsphere-6-5-host-resources-deep-dive-ebook/

Usually plenty of second hand copies on sites like Amazon, if real books are more your thing. That's what I did, as I find a real book more pleasant to sit and read. I have the eBook version too (Its a PDF) as the indices and content pages in the books are not very useful for finding stuff, and the PDF comes in handy when searching for terms and content.

Although this book was written when vSphere 6.5 was the latest and greatest, there is not much in the book that isn't relevant to later releases.

Reply
0 Kudos
Kinnison
Commander
Commander
Jump to solution

Comment removed...

Reply
0 Kudos
deepak81
Contributor
Contributor
Jump to solution

Please follow the tree --->

Physical CPU X ( total number of cores per cpu X   total number of threads) = Vcpu

Eg

1 Physical cpu with 6 core  and 12 threads ( threads are generally double the size - this can be referred in white paper of your hardware vendor

1 x ( 6 x 12) = 72 vcpu permissible

Please note : the above calculation is for Maximum w.r.t Hardware ,  you also need to review your licensing for Virtualization that you have procured.

 

Hope this Helps

 

 

 

Reply
0 Kudos
geogherkins
Enthusiast
Enthusiast
Jump to solution

To get double the "vCPU" on a processor you need to have hardware that supports it. Most servers come with Intel Xeon processors which have hyperthreading, some AMD support Simultaneous Multi-Threading (SMT, same thing) but I don't know the series names from AMD.

But hyperthreading and SMT only will, in practical terms, give you about 20% of a core in performance. 

This is all moot since VMware DRS will dispatch on available MHz/GHz not idle cores/threads and is why over-provisioning works.

 

Reply
0 Kudos