So I did find out that when you assign a VM vCPUs in ESXi you have to consider queuing. Consider if you have a host with 8 threads and give a VM 8 and then another VM a single one. If that VM with one vCPU is running at 100% that VM with 8 is going to have to wait for all 8 to become available at the same time. VMWare will eventually split the time but it is still a huge performance impact. They say 3 physical cores to vCPUs is a good ratio to maintain and the more physical cores the better.