• Measure workload during normal business hours. You can use Perf. Mon for that. One or two weeks should be ok, but no less than that. I prefer Extended Events instead of SQL profiler, but if you use SQL profiler, be sure is a server side trace and short enough so won't hurt performance.

    After doing that, reduce the number of cores , while leaving else untouched, and measure performance again. If you immediatly get time outs or you use CPU utilization going to the roof, you can tell the change hurts performance.

    One thing I have not tried and recently saw on previous PASS Summit is testing cores and sockets for the VM. Again, not tested, but under certain circumstances, less (or more) sockets while using same number of cores, may affect performance.

    I also seen cases where too many vCPU are actually slowing things down. But again, you need testing before jumping into conclusions.

    Last but not least, don't forget to tune up your code. Playing around with the hardware and/or VMware is faster, but if you reduce your vCPU utilization at code level, you will obtain the greatest and long term benefit.