I just ran the Exchange Health Checker script for something unrelated to CPUs, and I noticed at the top of the output in Exchange Management Shell it says:
Virtual Machine detected. Certain settings about the host hardware cannot be detected from the virtual machine. Verify on the VM Host that:
- There is no more than a 1:1 Physical Core to Virtual CPU ratio (no oversubscribing)
- If Hyper-Threading is enabled do NOT count Hyper-Threaded cores as physical cores
- Do not oversubscribe memory or use dynamic memory allocation
Although Exchange technically supports up to a 2:1 physical core to vCPU ratio, a 1:1 ratio is strongly recommended for performance reasons. Certain third party Hyper-Visors such as VMWare have their own guidance.
VMWare recommends a 1:1 ratio. Their guidance can be found at https://aka.ms/HC-VMwareBP2019
Related specifically to VMWare, if you notice you are experiencing packet loss on your VMXNET3 adapter, you may want to review the following article from VMWare: https://aka.ms/HC-VMwareLostPackets.
For further details, please review the virtualization recommendations on Microsoft Docs here: https://aka.ms/HC-Virtualization.
Our ESXi 8.0 U2 server has one Intel CPU with 6 physical cores, 12 threads.
Exchange is probably the most important VM on this server, so we had set it to be able to use all of these cores, like this:
We only allocate max CPUs for this one VM - our other VMs are allocated much less CPUs.
VMware's Exchange best practices PDF linked in the script's output above is very detailed, and it talks about CPUs on pages 7-12.
If I understand it correctly, is it saying that for Exchange 2019, you can use any number of cores - as long as the number of sockets is not more than 2, and that Hyperthreading is ok to be enabled nowadays (where it wasn't before)?
Is our CPU configuration shown in the screenshot above okay?
Is the recommended socket count 1 or 2?
Any other recommendations please?
