Compartilhar via


Tamanho da VM: examine as melhores práticas de desempenho para o SQL Server nas VMs do Azure

Aplica-se a: SQL Server na VM do Azure

Este artigo fornece diretrizes de tamanho da VM e uma série de melhores práticas de armazenamento para otimizar o desempenho dos SQL Server em VMs (Máquinas Virtuais) do Azure.

Normalmente, há uma compensação entre a otimização de custos e a otimização de desempenho. Esta série de melhores práticas de desempenho tem como foco obter o melhor desempenho do SQL Server em Máquinas Virtuais do Azure. Se a sua carga de trabalho tem menos demanda, talvez você não precise realizar todas as otimizações recomendadas. Considere suas necessidades de desempenho, custos e padrões de carga de trabalho ao avaliar essas recomendações.

Para obter detalhes abrangentes, confira os outros artigos desta série: Lista de verificação, Armazenamento, Segurança, Configuração de HADR e Coletar linha de base.

Lista de verificação

Examine a seguinte lista de verificação para obter uma breve visão geral das melhores práticas de tamanho da VM abordadas mais detalhadamente no restante do artigo:

  • Identifique as características de desempenho da carga de trabalho para determinar o tamanho apropriado da VM para sua empresa.
  • Se você estiver migrando para o Azure, use ferramentas como o Assistente de Migração de Dados e a recomendação de SKU para encontrar o tamanho certo da VM para sua carga de trabalho existente do SQL Server e migre com o Azure Data Studio.
  • Use imagens do Azure Marketplace para implantar suas VMs do SQL Server à medida que as configurações do SQL Server e as opções de armazenamento são configuradas para um desempenho ideal.
  • Use tamanhos de VM com 4 ou mais vCPUs.
  • Use tamanhos de máquina virtual com otimizado para memória para obter o melhor desempenho das cargas de trabalho do SQL Server.
    • As séries Edsv5 e Msv3 e Mdsv3 oferecem uma taxa ideal de memória para vCore recomendada para cargas de trabalho OLTP.
    • As VMs da série Mbdsv3 oferecem o melhor desempenho para cargas de trabalho do SQL Server em VMs do Azure. Considere esta série primeiro para cargas de trabalho críticas do OLTP e do SQL Server do data warehouse.
    • A série Ebdsv5 fornece uma alta taxa de transferência de E/S para vCore, juntamente com uma taxa de memória para vCore de 8:1. Essa série oferece o melhor desempenho de preço para cargas de trabalho do SQL Server em VMs do Azure. Considere essas VMs primeiro para a maioria das cargas de trabalho do SQL Server.
    • A família da série M oferece VMs com a maior alocação de memória no Azure.
    • As VMs das séries Mbsv3 e Mbdsv3 fornecem uma alocação de memória alta e a maior taxa de transferência de E/S para vCore dentro da família da série M, juntamente com uma taxa de memória para vCore consistente de pelo menos 8:1.
  • Inicie ambientes de desenvolvimento com as séries D, B ou Av2 de camada inferior e aumente seu ambiente ao longo do tempo.

Para comparar a lista de verificação de tamanhos da VM com as outras, confira a Lista de verificação de melhores práticas de desempenho completa.

Visão geral

Ao criar um SQL Server na VM do Azure, considere cuidadosamente o tipo de carga de trabalho necessário. Se você estiver migrando um ambiente existente, colete uma linha de base de desempenho para determinar seus requisitos do SQL Server na VM do Azure. Use a configuração de vCPU e memória do computador de origem como uma linha de base para migrar um banco de dados do SQL Server local atual para o SQL Server em VMs do Azure. Se você tiver o Software Assurance, aproveite o Benefício Híbrido do Azure para levar suas licenças para o Azure e economizar nos custos de licenciamento do SQL Server.

Se essa for uma nova VM, crie sua nova VM do SQL Server com base nos requisitos do aplicativo. Se você estiver criando uma nova VM do SQL Server para um novo aplicativo criado para a nuvem, poderá dimensionar facilmente sua VM do SQL Server à medida que seus dados e requisitos de uso evoluem. Inicie ambientes de desenvolvimento com as séries D, B ou Av2 de camada inferior e aumente seu ambiente ao longo do tempo.

Considere a seguinte série de VMs com base em suas cargas de trabalho do SQL Server:

  • Alocação de memória mais alta para cargas de trabalho críticas de missão: as VMs das séries Mbsv3 e Mbdsv3 oferecem a maior alocação de memória no Azure, com o melhor desempenho de armazenamento.
  • Alta taxa de transferência de E/S para vCore: as VMs das séries Mbsv3 e Mbdsv3 oferecem a maior taxa de transferência para vCore de qualquer série de VM em qualquer nuvem. As VMs da série Ebdsv5 oferecem a segunda maior taxa de transferência para vCore no Azure. Se você não souber os requisitos de E/S para sua carga de trabalho do SQL Server, as VMs da série Ebdsv5 serão as mais propensas a atender às suas necessidades. Confira o artigo sobre armazenamento para saber mais.
  • Processamento paralelo para computadores maiores: as VMs Msv3 e Mdsv3 oferecem processamento paralelo, tornando-as boas opções para ambientes de data warehouse maiores.

Ambientes críticos e de data warehouse do SQL Server geralmente precisarão ser dimensionados além da taxa de memória para vCore 8:1. Para ambientes médios, talvez você queira escolher uma taxa de memória para vCore 16:1 e uma taxa de memória para vCore 32:1 para ambientes de data warehouse maiores.

Use as imagens do marketplace da VM do SQL Server com a configuração de armazenamento no portal. Isso facilita a criação apropriada dos pools de armazenamento necessários para obter o tamanho, a IOPS e a taxa de transferência necessários para suas cargas de trabalho. É importante escolher VMs do SQL Server que dão suporte ao desempenho de armazenamento premium. Confira o artigo sobre armazenamento para saber mais.

VMs da série M com otimização de memória

A série M oferece contagens de vCore e memória para algumas das maiores cargas de trabalho do SQL Server.

O seguinte lista os recursos das VMs da série M:

Séries Mbsv3 e Mbdsv3

As séries Mbsv3 e Mbdsv3 são VMs com otimização de memória projetadas para grandes bancos de dados na memória e cargas de trabalho com altas necessidades de taxa de memória para CPU. As VMs nesta série são criadas com base no Intel® Xeon® Scalable de 4ª geração e oferecem uma variedade de tamanhos de memória e contagens de vCPU para atender às necessidades de suas cargas de trabalho do SQL Server. As VMs das séries Mbsv3 e Mbdsv3 são recomendadas para cargas de trabalho de missão crítica e de data warehouse.

As VMs das séries Mbsv3 e Mbdsv3 dão suporte a grandes bancos de dados na memória e cargas de trabalho com uma alta taxa de memória para CPU perfeita para servidores de banco de dados relacionais, data warehousing, relatórios pesados, caches grandes e análise na memória.

Veja a seguir as características das VMs nesta série:

  • A série Mbsv3 oferece até 176 vCores e 1.536 GiB de memória, com uma taxa de memória de 8:1 para vCore consistente, 650.000 IOPS e 6.000 MBps de taxa de transferência de armazenamento.
  • A série Mbdsv3 oferece até 176 vCores e 4 TiB de memória, 650.000 IOPS e 10.000 MBps de taxa de transferência de armazenamento. Esta série de VM oferece mais de 50% de melhoria no IOPS e na taxa de transferência para a série Ebdsv5 de alto desempenho, tornando o Mbdsv3 uma das opções de VM de melhor desempenho disponíveis em qualquer nuvem. A série de VMs Mbdsv3 compartilha características de desempenho semelhantes com a série de VMs Mbsv3, mas inclui um armazenamento local e efêmero forte, tornando-o perfeito para otimização de desempenho temporário, relatórios, OLAP crítico de missão e cargas de trabalho de data warehouse.

Séries Msv3 e Mdsv3

As máquinas virtuais Msv3 e Mdsv3 são projetadas com capacidade de computação e memória em níveis médios, altos e muito altos de memória. Essas VMs fornecem melhor desempenho, escalabilidade e resiliência a falhas em comparação com as VMs Mv2 de geração anterior.

O seguinte lista as VMs desta série:

  • VMs Msv3 e Mdsv3 de memória média: alimentadas por processadores escalonáveis Intel® Xeon® de 4ª geração e oferece tamanhos de VM de até 4 TiB de memória, 416 vCPUs, 130.000 IOPS e 4.000 MBps de taxa de transferência de armazenamento remoto com a interface NVMe.
  • VMs Msv3 e Mdsv3 de memória alta: são projetadas para cargas de trabalho de memória alta com memória variando de 6 TiB a 16 TiB, até 832 vCPUs, até 260.000 IOPS e 8.000 MBps de taxa de transferência para armazenamento remoto com a interface NVMe.
  • Série Mdsv3 de memória muito alta: alimentada por processadores Intel® Xeon® Platinum 8490H (Sapphire Rapids) de 4ª geração, e têm o maior volume de memória de qualquer uma das máquinas virtuais baseadas em série M que oferecem até 32 TiB de memória, 1.792 vCPUs, até 200.000 IOPS e 8.000 MBps de taxa de transferência de armazenamento remoto.

Cuidado

Desabilite o SMT para usar o SQL Server em VMs do Azure que excedem 64 vCores por nó NUMA.

VMs da série E com otimização de memória

As VMs da série E são projetadas para cargas de trabalho com uso intensivo de memória, como bancos de dados grandes, análise de Big Data e aplicativos empresariais que exigem quantidades significativas de RAM para manter o alto desempenho.

Série Ebdsv5

A série Ebdsv5 é uma série de VMs com otimização de memória que oferecem a maior taxa de transferência de armazenamento remoto disponível no Azure. Essas VMs têm uma taxa de memória para vCore de 8:1 que, juntamente com a alta taxa de transferência de E/S, as torna ideais para a maioria das cargas de trabalho do SQL Server. As VMs da série Ebdsv5 oferecem a melhor relação entre custo e desempenho para cargas de trabalho do SQL Server em execução em máquinas virtuais do Azure e as recomendamos para a maioria das cargas de trabalho do SQL Server de produção.

Observação

Os tamanhos maiores da série Ebdsv5 (48 vCPUs e mais) oferecem suporte para o acesso de armazenamento habilitado para NVMe. Para aproveitar esse alto desempenho de E/S, você precisa implantar sua máquina virtual usando NVMe.

Série Edsv5

A série Edsv5 foi projetada para aplicativos com uso intensivo de memória e é ideal para cargas de trabalho do SQL Server que não exigem uma taxa de transferência de E/S tão alta quanto a série Ebdsv5 oferece. Essas VMs têm uma grande capacidade de armazenamento local SSD, até 672 GiB de RAM e a maior taxa de transferência de armazenamento local e remoto. Há quase 8 GiB de memória consistentes por vCore na maioria dessas máquinas virtuais, o que é ideal para cargas de trabalho padrão do SQL Server.

A maior máquina virtual deste grupo é a Standard_E104ids_v5 que oferece 104 vCores e 672 GiBs de memória. Essa máquina virtual é notável porque é isolada, o que significa que tem a garantia de ser a única máquina virtual em execução no host e, portanto, ser isolada de outras cargas de trabalho do cliente. Ela tem uma proporção de memória para vCore menor do que o recomendado para o SQL Server, só devendo, portanto, ser usada se o isolamento for necessário.

As máquinas virtuais da série Edsv5 suportam armazenamento premium e o cache de armazenamento premium.

ECadsv5-series

Os tamanhos de máquina virtual da série ECadsv5 são VMs confidenciais do Azure otimizadas para memória com um disco temporário. Confira VMs confidenciais para obter informações sobre os benefícios de segurança das VMs confidenciais do Azure.

Como os recursos de segurança das VMs confidenciais do Azure podem introduzir sobrecargas de desempenho, teste sua carga de trabalho e selecione um tamanho de VM que atenda aos seus requisitos de desempenho.

Uso Geral

Os tamanhos de máquina virtual de uso geral foram projetados para fornecer proporções balanceadas de memória/vCore para cargas de trabalho menores de nível de entrada, como desenvolvimento e teste, servidores Web e servidores de banco de dados menores.

Por conta das proporções menores de memória para vCore nas máquinas virtuais de Uso Geral, é importante monitorar cuidadosamente os contadores de desempenho baseados em memória para garantir que o SQL Server possa obter a memória cache do buffer necessária. Confira Linha de base de desempenho de memória para obter mais informações.

Como a recomendação inicial para cargas de trabalho de produção é uma proporção de memória/vCore igual a 8, a configuração mínima recomendada para uma VM de uso geral que executa o SQL Server é 4 vCPU e 32 GiB de memória.

Série Ddsv5

A série Ddsv5 oferece uma combinação justa de vCPU, memória e disco temporário, mas com suporte menor de memória para vCore.

As VMs Ddsv5 incluem menor latência e armazenamento local de maior velocidade.

Esses computadores são ideais para implantações de aplicativo e SQL lado a lado que exigem acesso rápido aos bancos de dados de armazenamento temporário e relacional departamental. Há uma proporção de memória para vCore padrão igual a 4 em todas as máquinas virtuais dessa série.

Por esse motivo, recomendamos usar a D8ds_v5 como a máquina virtual inicial dessa série, que tem 8 vCores e 32 GiBs de memória. A maior máquina é a D96ds_v5, que tem 96 vCores e 256 GiBs de memória.

As máquinas virtuais da série Ddsv5 suportam armazenamento premium e o cache de armazenamento Premium.

Observação

A série Ddsv5 não tem a proporção de memória para vCore igual a 8 que é recomendada para cargas de trabalho do SQL Server. Assim, considere o uso dessas máquinas virtuais somente para aplicativos menores e cargas de trabalho de desenvolvimento.

DCadsv5-series

Os tamanhos de máquina virtual da série DCadsv5 são VMs confidenciais do Azure de uso geral com disco temporário. Confira VMs confidenciais para obter informações sobre os benefícios de segurança das VMs confidenciais do Azure.

Como os recursos de segurança de VMs confidenciais do Azure podem introduzir sobrecargas de desempenho, teste sua carga de trabalho e selecione um tamanho de VM que atenda aos seus requisitos de desempenho.

Série B

Os tamanhos de máquina virtual da série B com capacidade de intermitência são ideais para cargas de trabalho que não precisam ter um desempenho consistente, como prova de conceito e servidores de aplicativos e desenvolvimento muito pequenos.

A maioria dos tamanhos de máquina virtual da série B com capacidade de intermitência tem uma proporção de memória para vCore igual a 4. A maior série B com capacidade de intermitência é a Standard_B20ms com 20 vCores e 80 GiB de memória.

Essa série é exclusiva, pois os aplicativos têm a capacidade de intermitência durante o horário comercial com créditos com capacidade de intermitência variáveis de acordo com o tamanho do computador.

Quando os créditos são esgotados, a VM volta ao desempenho do computador de linha de base.

O benefício da série B é a economia de computação que pode ser obtida em comparação com os outros tamanhos de VM de outras séries, especialmente se você precisa ter uma capacidade de processamento com moderação ao longo do dia.

Essa série dá suporte ao armazenamento Premium, mas não dá suporte ao cache de armazenamento Premium.

Observação

A série B com capacidade de intermitência não tem a proporção de memória para vCore igual a 8 que é recomendada para cargas de trabalho do SQL Server. Assim, considere o uso dessas máquinas virtuais somente para aplicativos menores, servidores Web e cargas de trabalho de desenvolvimento.

Série Av2

As VMs da série Av2 são mais adequadas para cargas de trabalho de nível de entrada, como desenvolvimento e teste, servidores Web de tráfego baixo, bancos de dados de aplicativos pequenos a médios e prova de conceito.

Somente a Standard_A2m_v2 (2 VCores e 16 GiB de memória), a Standard_A4m_v2 (4 vCores e 32 GiBs de memória) e a Standard_A8m_v2 (8 vCores e 64 GiBs de memória) têm uma boa proporção de memória para vCore igual a 8 para essas três principais máquinas virtuais.

Essas máquinas virtuais são boas opções para computadores menores de desenvolvimento e teste do SQL Server.

A Standard_A8m_v2 de 8 vCore também pode ser uma boa opção para aplicativos pequenos e servidores Web.

Observação

A série Av2 não dá suporte ao armazenamento Premium e, assim, não é recomendada para cargas de trabalho de produção do SQL Server mesmo com as máquinas virtuais que têm uma proporção de memória para vCore igual a 8.

Otimizado para armazenamento

Os tamanhos de VM otimizados para armazenamento destinam-se a casos de uso específicos. Essas máquinas virtuais foram projetadas especificamente com taxa de transferência e E/S de disco otimizadas.

Série Lsv2

A série Lsv2 apresenta alta taxa de transferência, baixa latência e armazenamento de NVMe local. As VMs da série Lsv2 são otimizadas para usar o disco local no nó anexado diretamente à VM em vez de usar discos de dados duráveis.

Essas máquinas virtuais são opções estáveis para Big Data, data warehouse, relatórios e cargas de trabalho de ETL. A alta taxa de transferência e a IOPS do armazenamento de NVMe local são um bom caso de uso para o processamento de arquivos que serão carregados no banco de dados e outros cenários em que os dados podem ser recriados com base no sistema de origem ou em outros repositórios, como o Armazenamento de Blobs do Azure ou o Azure Data Lake. As VMs da série Lsv2 também podem oferecer intermitência para o desempenho de disco por até 30 minutos por vez.

Essas máquinas virtuais dimensionam de 8 a 80 vCPU com 8 GiB de memória por vCPU e para cada 8 vCPUs há 1,92 TiB de SSD NVMe. Isso significa que para a maior VM desta série, a L80s_v2, há 80 vCPU e 640 BiB de memória com 10x1,92 TiB de armazenamento NVMe. Há uma proporção consistente de memória para vCore igual a 8 em todas essas máquinas virtuais.

O armazenamento de NVMe é efêmero, o que significa que os dados serão perdidos nesses discos se você desalocar a máquina virtual ou se ela for movida para um host diferente para recuperação de serviço.

As séries Lsv2 e Ls dão suporte ao armazenamento Premium, mas não ao armazenamento em cache Premium. Não há suporte para a criação de um cache local para aumentar os IOPs.

Aviso

O armazenamento dos arquivos de dados no armazenamento de NVMe efêmero poderá resultar na perda de dados quando a VM for desalocada.

VCores restritos

Em geral, as cargas de trabalho de alto desempenho do SQL Server precisam de quantidades maiores de memória, IOPS e taxa de transferência sem as maiores contagens de vCore.

A maior parte das cargas de trabalho OLTP são bancos de dados de aplicativos controlados por um grande número de transações menores. Com cargas de trabalho OLTP, apenas um pequeno volume de dados é lido ou modificado, mas os volumes de transações controlados por contagens de usuários são muito maiores. É importante ter a memória do SQL Server disponível para planos de cache, armazenar dados acessados recentemente para desempenho e garantir que as leituras físicas possam ser lidas na memória rapidamente.

Esses ambientes OLTP precisam de mais quantidades de memória, armazenamento rápido e largura de banda de E/S necessárias para serem executados de maneira ideal.

Para manter esse nível de desempenho sem os custos maiores de licenciamento do SQL Server, o Azure oferece tamanhos de VM com contagens de vCPU restritas.

Isso ajuda a controlar os custos de licenciamento reduzindo os vCores disponíveis, mantendo a mesma memória, armazenamento e largura de banda de E/S da máquina virtual pai.

A contagem de vCPUs pode ser restrita à metade ou a um quarto do tamanho da VM original. A redução dos vCores disponíveis para a máquina virtual atinge proporções maiores de memória para vCore, mas o custo de computação permanecerá o mesmo.

Esses novos tamanhos VM têm um sufixo que especifica o número de vCPUs ativos para facilitar a identificação.

Por exemplo, a M64-32ms só exige o licenciamento de 32 vCores do SQL Server com a memória, a E/S e a taxa de transferência da M64ms, e a m64-16ms só exige o licenciamento de 16 vCores. Embora a M64-16ms tenha um quarto do custo de licenciamento do SQL Server da M64ms, o custo de computação da máquina virtual é o mesmo.

Observação

  • Cargas de trabalho médias a grandes de data warehouse ainda podem se beneficiar das VMs com vCores restritos, mas as cargas de trabalho de data warehouse geralmente são caracterizadas por menos usuários e processos que lidam com volumes maiores de dados por meio de planos de consulta executados em paralelo.
  • O custo de computação, que inclui o licenciamento do sistema operacional, permanecerá o mesmo da máquina virtual pai.

Próximas etapas

Para saber mais, confira os outros artigos desta série de melhores práticas: