Compartilhar via


Personalização VM vCore para SQL Server em VMs do Azure

Aplica-se a:SQL Server em VM no Azure

Este artigo mostra como otimizar o desempenho e reduzir os custos de licenciamento para seu SQL Server em Azure Virtual Machines (VMs) usando a personalização de vCore da VM do Azure, que inclui Núcleos Restritos Configuráveis (CCC) e a capacidade de desabilitar as configurações de Simultaneous Multithreading (SMT).

Observação

A customização de vCore da VM está atualmente em pré-visualização para SQL Server em VMs do Azure.

Visão geral

Núcleos Restritos Configuráveis (CCC) melhora o modelo de vCPU restrito original das VMs do Azure. Ele fornece controle mais preciso sobre o número de vCores ativos (também conhecidos como vCPUs) do que a máquina virtual pai. O CCC oferece aos clientes do SQL Server a capacidade de alocar vCores independentemente da memória da VM e da E/S. Essa configuração fornece uma economia significativa para licenças por núcleo, preservando ainda a memória necessária e o espaço de cabeçalho de E/S para o pool de buffers, columnstore, tempdb, taxa de transferência de backup/restauração e largura de banda de armazenamento.

Opcionalmente, você pode combinar o CCC com a desabilitaçãodo SMT (Multithreading Simultâneo) /hiperthreading (definir Threads por núcleo = 1) para cargas de trabalho sensíveis à latência.

Juntas, essas opções de personalização de VM oferecem controle granular sobre a apresentação da CPU para o sistema operacional convidado sem sacrificar outros recursos de tamanho de VM.

Modelo de vCPU restrito original

O modelo de vCPU restrito original é um recurso de VMs do Azure projetadas para otimizar a eficiência de custo para cargas de trabalho que não precisam utilizar a capacidade de computação completa de uma VM. VCPUs restritas permitem selecionar tamanhos de VM com um número reduzido de vCPUs, mantendo ainda os mesmos recursos de memória, armazenamento e rede que o tamanho original da VM. Esse recurso é especialmente útil para aplicativos com uso mais intensivo de memória ou entrada/saída, em vez de serem limitados pelo processamento.

Por exemplo, imagine que você implantou uma VM da família M com uma configuração de memória alta para um aplicativo que usa uma fração dos recursos de CPU disponíveis. Usando o recurso de vCPU restrito, você pode implantar a mesma VM da série M, mas com menos vCPUs ativas. Essa redução nas vCPUs pode levar a uma economia de custos significativa, especialmente para o licenciamento de software com base no número de vCores, como o SQL Server.

vCPUs restritos são incorporados na seleção de tamanho de VM, onde o nome da VM indica a contagem reduzida de núcleos. Por exemplo, o tamanho da VM E96-24ads_v5 tem 24 vCPUs ativas, ao invés das 96 vCPUs completas disponíveis no tamanho da VM pai E96ads_v5. Ele ainda mantém 672 GB de RAM e o desempenho de armazenamento e rede da máquina virtual mãe. Para obter mais informações, consulte a lista completa de tamanhos disponíveis com vCPUS restrita.

VCPUs restritas são ideais para:

  • Servidores de banco de dados em que o desempenho de memória e armazenamento é crítico, mas o uso da CPU é menor.
  • Aplicativos com custos de licenciamento por núcleo mais altos.

Com vCPUs restritas, você paga por menos vCores, mas ainda paga pelos custos de computação e pelo licenciamento do Windows Server para a máquina virtual pai ou host.

Principais benefícios e recursos do modelo de vCPU restrito original

A lista a seguir descreve alguns dos principais benefícios e recursos do uso de vCPUs restritas para SQL Server em VMs do Azure:

  • Vantagens de preço/desempenho: você pode escolher tamanhos de VM com 50% ou 75% das vCPUs originais, o que reduz significativamente os custos de licenciamento do SQL Server.
  • Memória: a alocação de memória é a mesma que a configuração da VM pai, portanto, cargas de trabalho pesadas de memória não são comprometidas.
  • Armazenamento: o desempenho de armazenamento é o mesmo que a configuração de VM pai, portanto, cargas de trabalho intensivas de armazenamento não são afetadas.
  • Desempenho: a redução de vCPUs pode melhorar o desempenho reduzindo a contenção de threads e alinhando o uso da CPU com as necessidades do aplicativo.

Observação

O SQL Server não dá suporte a configurações com mais de 64 processadores lógicos por nó NUMA. Se você tentar instalar o SQL Server em um servidor que exceda esse limite, começando com o SQL Server 2022 CU15, a instalação falhará e o log de erros indicará uma configuração NUMA sem suporte.

Desvantagens do modelo de vCPU restrito original

Embora o modelo principal restrito original forneça economia de custos e flexibilidade significativas, ele tem algumas desvantagens:

  • Suporte inconsistente entre famílias de VM: nem todas as famílias de VM do Azure dão suporte a vCPUs restritas.
  • Flexibilidade limitada: o modelo vCPU restrito original restringe você a apenas 25% ou 50% dos vCores da VM pai, sem granularidade mais fina. Essa limitação é problemática para cargas de trabalho que exigem os recursos completos de uma VM pai, mas apenas um número específico e menor de vCores.
  • Desafios de dimensionamento: à medida que os tamanhos da VM aumentam, a falta de granularidade se torna mais pronunciada. Por exemplo, a Standard_M416ms_v2 VM oferece 416 vCores e até mesmo a opção restrita (208 vCores) pode exceder em muito as necessidades de muitas implantações do SQL Server.

Melhorias introduzidas com núcleos restritos configuráveis (CCC)

O modelo CCC (Núcleos Restritos Configuráveis) da VM do Azure resolve as desvantagens do modelo de vCPU restrito original introduzindo a verdadeira flexibilidade e consistência para implantações de VM do SQL Server, como os seguintes recursos:

  • Seleção de núcleo granular: o CCC permite que você especifique o número de vCPUs ativos para sua VM, em vez de estar limitado a frações predefinidas. Isso significa que você pode selecionar qualquer contagem de vCPU com suporte, como 16, 32 ou 48, mantendo a memória completa, o armazenamento e a largura de banda de E/S do tamanho da VM pai.
  • Disponibilidade consistente: o CCC está disponível em um amplo conjunto de famílias de VM, reduzindo o risco de suporte inconsistente. Você pode selecionar com confiança a melhor VM para suas necessidades de carga de trabalho e licenciamento.
  • Licenciamento otimizado e utilização de recursos: ao alinhar o número de vCPUs ativos com seus direitos de licença e requisitos de carga de trabalho do SQL Server, o CCC ajuda você a evitar pagar por núcleos não utilizados, o que garante que você possa usar totalmente as características de desempenho de tamanhos de VM maiores.
  • Melhor satisfação do cliente: ao usar o CCC, você obtém a flexibilidade para otimizar o custo e o desempenho, reduzindo a probabilidade de despesas inesperadas ou configurações abaixo do ideal, melhorando sua satisfação geral com implantações de VM do SQL Server.

O CCC capacita os clientes do SQL Server a adaptar suas implantações de VM do Azure, maximizando a eficiência de licenciamento e a utilização de recursos, minimizando o custo e a complexidade.

Práticas recomendadas do CCC para SQL Server em VMs do Azure

Núcleos Restritos Configuráveis (CCC) é um recurso particularmente útil para o SQL Server em VMs do Azure. Você pode otimizar sua implantação para desempenho e custo.

  • Alinhe o licenciamento por núcleo do SQL Server com a necessidade real da CPU: se a carga de trabalho do SQL Server for associada à memória ou à E/S em vez de vinculada à CPU, selecione um tamanho maior de VM para a taxa de transferência de memória e disco, mas restrinja vCPUs ativas para corresponder aos núcleos licenciados. Essa opção pode reduzir os custos de licenciamento do SQL Server mantendo as mesmas características de E/S e memória de VM.
  • Melhorar a consistência de latência: para alguns padrões OLTP e de banco de dados sensíveis à latência, desabilitar o SMT (Threads por núcleo = 1) pode reduzir a contenção de núcleo lógico e a latência de cauda para consultas críticas ou em cargas de trabalho de sincronização. Você pode combinar o SMT Off com o CCC em uma única implantação.
  • Planeje a implantação: antes de implantar, analise sua carga de trabalho do SQL Server para determinar o número ideal de vCPUs necessárias. Você pode alterar as configurações de CCC e SMT somente durante a criação inicial da VM ou durante uma operação de redimensionamento. Não é possível alterar essas opções em uma VM em execução e o redimensionamento requer uma reinicialização.
  • Alocar adequadamente vCPUs: ao especificar valores, o número de vCPUs ativos (vCPUsAvailable) não deve exceder a contagem de vCPU padrão para o tamanho da VM selecionada. Para tamanhos de VM que usam hiperthreading (dois encadeamentos por núcleo), os valores válidos para vCPUsAvailable são números pares (como 2, 4, 6 e assim por diante), enquanto tamanhos sem hiperthreading permitem incrementos de um. As configurações de CCC e SMT persistirão se você redimensionar a VM para outro tamanho compatível. Se o tamanho da VM de destino não der suporte a esses recursos, a operação de redimensionamento será bloqueada. Se você ativar o Benefício Híbrido do Azure ou usar o licenciamento por núcleo, defina vCPUsAvailable como a contagem de núcleos licenciada que pretende executar. O SQL Server vê apenas esse número de processadores lógicos. Essa opção permite selecionar uma memória maior ou VM de E/S (para pool de buffers ou taxa de transferência) sem pagar por núcleos SQL desnecessários. Valide a contagem de núcleos dentro do Windows com o Gerenciador de Tarefas e sys.dm_os_sys_info no SQL Server.
  • Desabilitar o SMT: algumas cargas de trabalho OLTP se beneficiam da desabilitação do SMT devido à redução da contenção em recursos de núcleo compartilhados. Outras cargas de trabalho, como a análise ou cargas de trabalho altamente paralelas, podem se beneficiar de deixar o SMT habilitado. Teste ambos para sua carga de trabalho usando testes de carga representativos antes de finalizar.
  • NUMA e MAXDOP: O CCC altera apenas a contagem lógica de CPU, não a memória de VM subjacente ou a taxa de transferência de E/S. Examine o MAXDOP e o limite de custo para paralelismo depois de restringir núcleos para garantir o paralelismo ideal nas CPUs reduzidas. Aplique as práticas recomendadas de desempenho geral ajustando de acordo com a carga de trabalho do SQL Server.
  • Grupos de disponibilidade e backups: limitar o uso de núcleos não altera os recursos de desempenho de disco do tamanho da VM. Você pode continuar a usar a largura de banda de armazenamento da VM maior para backup e restauração e sincronização de grupo de disponibilidade. Essa taxa de transferência é um driver comum para escolher tamanhos maiores de memória ou E/S com menos núcleos ativos.
  • Sem custo adicional: não há custo adicional de VM do Azure para usar controles CCC ou SMT/HT, pois o preço da computação da VM permanece o mesmo que o tamanho selecionado, que inclui custos de computação, memória e armazenamento. A economia potencial vem de software licenciado por núcleo (como o SQL Server) que reconhece a redução da contagem de vCPUs. Examine os termos de licenciamento para estimar a economia e os custos gerais.

Exemplo de padrões de implantação do SQL Server

Considere os seguintes padrões de implantação de carga de trabalho do SQL Server de exemplo:

  • OLTP com uso intensivo de memória: selecione uma VM da série E ou Ebdsv5 para memória alta. Definido vCPUsAvailable para corresponder à sua licença do SQL Server (como oito núcleos) e, opcionalmente, definido vCPUsPerCore = 1 para desabilitar o SMT para cargas de trabalho sensíveis à latência. Essa configuração preserva a memória e a E/S da VM, reduzindo os custos de licenciamento.
  • OLAP/DW com uso intensivo de memória e armazenamento: selecione uma VM da série M para memória e armazenamento elevados. Definido vCPUsAvailable para corresponder à sua licença do SQL Server (como 32 núcleos) e, opcionalmente, definido vCPUsPerCore = 1 para desabilitar o SMT para cargas de trabalho sensíveis à latência.
  • Taxa de transferência de backup e restauração: escolha uma VM com otimização de armazenamento para obter a largura de banda máxima para blob ou discos gerenciados. Defina vCPUsAvailable como o número de núcleos SQL necessários, mantendo alta taxa de transferência de disco ao licenciar menos núcleos.

Introdução ao CCC

Você pode definir as configurações de CCC e SMT para sua VM do Azure usando o portal do Azure, a CLI do Azure, o PowerShell e os modelos do ARM. Para saber mais, examine a personalização do VM vCore.

Depois de implantar ou redimensionar sua VM do Azure, valide a configuração da CPU dentro do sistema operacional convidado e no SQL Server para garantir que suas configurações sejam aplicadas corretamente.

Validar a configuração da CPU no Windows

Utilize o Gerenciador de Tarefas (Desempenho → CPU) para verificar a contagem de processadores lógicos.

Execute wmic cpu get NumberOfCores,NumberOfLogicalProcessors em um prompt de comando administrativo para confirmar o status do SMT.

Validar a configuração da CPU no SQL Server

Execute SELECT cpu_count, hyperthread_ratio FROM sys.dm_os_sys_info; para verificar o número de CPUs lógicos e o SMT.

Examine e ajuste o grau máximo de paralelismo (MAXDOP) e o limite de custo para paralelismo para a nova contagem de CPU.

Limitações

Considere as seguintes limitações de uso da personalização VM vCore para SQL Server em VMs do Azure:

  • As imagens com suporte incluem imagens de primeira parte, como Windows Server, Ubuntu, RHEL, SUSE e imagens personalizadas. Não há suporte para imagens de terceiros do Marketplace. Não há suporte para imagens preteridas de SQL VM Linux do Marketplace.
  • Atualmente, o CCC está disponível em regiões selecionadas, como Centro-Oeste dos EUA, Norte da Europa, Leste da Ásia e Sul do Reino Unido.
  • Você pode definir CCC/SMT somente durante operações de criação ou redimensionamento . Não há suporte para alterações dinâmicas de runtime. O redimensionamento provoca uma reinicialização.

Perguntas frequentes (FAQ)

Considere as seguintes perguntas frequentes:

O CCC altera a taxa de transferência de memória ou armazenamento da minha VM?

Não. O CCC altera apenas quantas vCPUs são apresentadas ao sistema operacional convidado. Você mantém a memória e a E/S do tamanho da VM selecionada.

Posso ativar ou desativar o CCC sem tempo de inatividade?

Não. Você deve habilitar o CCC no momento da criação da VM ou durante um redimensionamento. Ocorre uma reinicialização.

O SQL Server reconhecerá a contagem de núcleos reduzida para licenciamento?

Sim. O SQL Server e outros softwares licenciados por núcleo enxergam apenas o valor vCPUsAvailable que o sistema operacional recebe. Verifique os termos de licenciamento para confirmar.