1

I have SQL Server 2016 on an Intel Xeon E7-4820v2, with 4 sockets x 8 cores, 32 total cores.

I am looking to replace current hardware that is five years old.

One option I am looking at is virtualizing this server in an ESXI environment.

The new cluster is four nodes with 64 logical processors on each node and has about 80% free at the moment.

I need to determine how to size the new SQL VM. The current server maxes at 69% CPU and averages 6%.

Is CPU to vCPU generally a 1:1 comparison? Or because of how old the hardware is could I expect better performance with less vCPU?

I have read through the best practices guide and I know it says start lower and increase as needed.

I'm curious what a good starting point would be or how others have dealt with this issue.

Let me know if you require more information.

Thanks in advance.

Greg Askew
  • 39,132
Gage
  • 151

1 Answers1

0

Given that your current 2016 setup runs on that Xeon E7-4820v2 with 32 cores and maxes out at 69% CPU usage while averaging only 6%, you likely don’t need a 1:1 mapping when moving to the new environment.

Since your new cluster nodes have 64 logical processors each, they’re likely running newer CPUs with better per-core performance than Ivy Bridge.

It'd help if you know what CPUs you're running for a better apples to apples comparison.

Modern processors most likely have improved IPC (instructions per cycle), so you’ll probably get better performance even with fewer vCPUs.

Basically, go with the feel and monitor, it's hard to give a template, but from experience I would say going with 8 vCPUs (2 sockets x 4 cores each) should work.

Monitor performance (SQL Server DMV queries like sys.dm_os_schedulers and VMware performance metrics).

Also, consider disabling hyper-threading if SQL Server performance is affected (SQL server likes physical cores) and set up memory reservations to prevent VMware ballooning.

Since your current workload averages 6% CPU usage, this initial setup should be enough, and you can always scale up as needed.

run_404
  • 1
  • 1