Azure VM Sizing for SQL Server 2017 Standard and application

gsaunders 96 Reputation points
2021-10-15T02:51:32.91+00:00

Windows 2016 or 2019 Server Standard
SQL Server 2017 or 2019 Standard (desire 32GB to 64GB RAM)
Application Server

From a SQL processor and licensing I can have 4 CPUs or up to 24 cores I think.

So if I want to get 8 cores I know I can't have the VM see 8 CPUs from Azure as it would only use 4 of them.

So what I need is 4 CPUs with 2 cores each or 2 CPUs with 4 cores each. 

I know it is all virtual, but that is what Windows and SQL need to see.

So then I go down this crazy rabbit hole trying to figure this out.  In the VMWare world it was super easy as I can say how many sockets and how many cores per socket.

In azure I see no such thing... so I have read a lot about vCPU and the ACU's and so forth, but not sure exactly what a specific sizing will show me in Windows / SQL.

From what I am reading any size that is not using hyper threading would look like 1 socket processor with 1 core up to x sockets.

If it is one of the hyper threading it may look like 1 socket processor with 2 cores, but really that is using hyperthreading to mimic cores.

So I think I would pick something like the E8s_V4 which looks like 8vCPU which I think would look like 4 Sockets with 2 cores each, but I could be totally missing this.

I have ready a ton of Microsoft Documents and just can't seem to get a full picture of how to control this for maximizing the cores vs CPU for SQL Standard.

Any help or feedback would be appreciated.

SQL Server on Azure Virtual Machines
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. TravisCragg-MSFT 5,676 Reputation points Microsoft Employee
    2021-10-16T00:08:35.437+00:00

    @gsaunders You are right on with your research, Azure presents you with virtual 'Cores', but they appear as physical cores to your VM. Assume that it is 1 Azure core = 1/2 of a dual core physical processor with the listed speed.

    If your SQL server needs 4 dual core processors, an 8 core VM is what you want. Your OS should see it as 8 distinct processors.

    One thing to keep in mind in Azure is that changing your VM size is easy, and only requires that you restart your VM (in most situations, there are some cases where your VM will not need to reboot). If you see that you need more or fewer cores, it is easy to change the size at any time.

    Make sure to read the performance best practices for SQL Server on Azure VM before setting up your server!