VMware Cloud Community
nizuwizu
Contributor
Contributor
Jump to solution

SQL VM server - CPU core/threads & licensing

Hi all,

I have a couple of questions around a new MS SQL install as currently all of my experience with SQL has been on physical servers.

  1. The requirement for the new SQL server is to have 8 Cores / 16 threads. If they truly require 16 threads is the only way to do this is to assign the new VM 16 vCPUs as hyperthreading is already being used by the vSphere host for the logical processors?
  2. Because of the licensing requirement for SQL we assume it may be better to limit this VM to only run on two of our new ESXi hosts. Is it ok to do this with a mandatory DRS rule which I believe will restrict this VM to these two hosts only, even in a HA scenario? Is there any reason to consider putting these two new hosts in a separate cluster instead of using a mandatory DRS rule? I assume this would be less preferred as then we would lose some of the redundancy for other VMs provided by our two new ESXi hosts.

I hope this makes sense. I really appreciate any comments or advice.

Have a good day and many thanks.

Reply
0 Kudos
1 Solution

Accepted Solutions
timweaver23
Enthusiast
Enthusiast
Jump to solution

Hi,

There is nothing wrong with using the DRS rule option to bind the SQL server to the hosts. I have used that method before and it works fine. If the SQL business owner is concerned about available resources for the server you could always use resource pools to dedicate resources to the server.

With regards CPU it would be 8 x sockets with 2 cores per socket.

Cheers

View solution in original post

Reply
0 Kudos
4 Replies
timweaver23
Enthusiast
Enthusiast
Jump to solution

Hi,

There is nothing wrong with using the DRS rule option to bind the SQL server to the hosts. I have used that method before and it works fine. If the SQL business owner is concerned about available resources for the server you could always use resource pools to dedicate resources to the server.

With regards CPU it would be 8 x sockets with 2 cores per socket.

Cheers

Reply
0 Kudos
nizuwizu
Contributor
Contributor
Jump to solution

Hi,

Thanks for the response and the confirmation around the DRS rule.

With regards CPU it would be 8 x sockets with 2 cores per socket.

So this would basically use 16 vCPU anyway but its preferable to assign it as 8xCPU, 2xcores per socket rather than 16xCPU?

Many thanks

Reply
0 Kudos
ThompsG
Virtuoso
Virtuoso
Jump to solution

Hi there,

Its "Best Practice" to go with sockets unless licensing or OS version dictates otherwise, i.e. if you are running Windows 2008 R2 Standard then the maximum number of processors is four. At that point you then need to align the virtual hardware to the underlying NUMA architecture for best performance.

Hope that helps.

Reply
0 Kudos
JustinMercier
Enthusiast
Enthusiast
Jump to solution

Some further reading I have found useful, in addition to ThompsG's excellent advice:

Setting the number of cores per CPU in a virtual machine (1010184) | VMware KB

As an aside: I have always wondered however how virtual sockets/cores work against core sharing settings in the Advanced CPU settings?

For example, if I have a Windows Server 2008 R2 Standard VM running a heavily threaded application on a host with eight hexacore CPUs can I assign 4 sockets and 8 cores with core sharing set to none or internal to that VM and comply with licensing and ensure my VM threads stay coupled?

Obviously I know this can still create thread scheduling issues on the host when overcommited, I was just curious how the sockets/threads config works against core sharing.

Reply
0 Kudos