Hi
Do not plan on fully utilizing host CPU resources. I would normally propose 80% of maximum host utilization.
Leave some headroom for such things as:
- Short-term utilization increasing as part of the normal business cycle
- Accommodating hardware maintenance and host patching
- Accommodating failover in a vSphere High Availability cluster
- Accommodating failover from other datacenters during disaster recovery
- VMkernel overhead
- Future growth
e.g. you have 10 cores of 2.5GHz per host, total = 25GHz per host. If you plan for 80% max host utilization, then your available CPU per host is 20GHz.
Then you can calculate what is the total CPU required for total VMs at peak, divide it by 20GHz then you will get the number of ESXi host required, similar for memory.