Partilhar via


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

Aplica-se a:SQL Server em VM do Azure

Este artigo mostra-lhe como otimizar o desempenho e reduzir os custos de licenciamento do seu SQL Server em Máquinas Virtuais Azure (VMs), utilizando a personalização VM vCore das VMs Azure, que inclui Configurable Constrained Cores (CCC) e a capacidade de desativar as definições de Multithreading Simultâneo (SMT).

Observação

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

Visão geral

Configurable Limitred Cores (CCC) melhora o modelo original Restrained vCPU das VMs Azure. Dá-lhe um controlo mais fino sobre o número de vCores ativos (também conhecidos como vCPUs) do que a máquina virtual principal. O CCC oferece aos clientes do SQL Server a capacidade de alocar vCores independentes da memória e I/O da VM. Esta configuração proporciona poupanças significativas por licenças por núcleo, enquanto preserva a memória necessária e a margem de manobra de IO para o pool de buffers, armazenamento em colunas, tempdb, a largura de banda de armazenamento e o throughput de backup/restauro.

Pode, opcionalmente, combinar CCC com a desativaçãodo Multithreading Simultâneo (SMT) / hyperthreading (definir Threads por núcleo = 1) para cargas de trabalho sensíveis à latência.

Juntas, estas opções de personalização de VM dão-lhe controlo granular sobre a apresentação da CPU ao sistema operativo convidado sem sacrificar outras capacidades de tamanho de VM.

Modelo original de vCPU com restrições

O modelo original de vCPU restrita é uma funcionalidade das VMs Azure concebida para otimizar a eficiência de custos para cargas de trabalho que não precisam de utilizar toda a capacidade de computação de uma VM. As vCPUs restritas permitem-lhe selecionar tamanhos de VM com um número reduzido de vCPUs, mantendo ainda assim a mesma memória, armazenamento e recursos de rede do tamanho original da VM. Esta funcionalidade é especialmente útil para aplicações que exigem mais memória ou IO, em vez de limitações computacionais.

Por exemplo, imagine que implementa uma VM da família M com uma configuração de alta memória para uma aplicação que usa uma fração dos recursos disponíveis da CPU. Ao usar a funcionalidade vCPU restrita, pode implementar a mesma VM da série M, mas com menos vCPUs ativas. Esta redução nos vCPUs pode levar a poupanças significativas de custos, especialmente para o licenciamento de software baseado no número de vCores, como o SQL Server.

VCPUs restritas estão integradas na seleção do tamanho da VM, onde o nome da VM indica a redução do número de núcleos. Por exemplo, o tamanho E96-24ads_v5 da VM tem 24 vCPUs ativas em vez dos 96 vCPUs completos disponíveis no tamanho da VM principal E96ads_v5 . Ainda mantém 672 GB de RAM e o armazenamento e desempenho de rede da máquina virtual principal. Para mais informações, consulte a lista completa de tamanhos disponíveis com vCPUs restritos.

VCPUs restritas são ideais para:

  • Servidores de base de dados onde o desempenho da memória e armazenamento é crítico, mas o uso da CPU é menor.
  • Aplicações com custos de licenciamento por núcleo mais elevados.

Com vCPUs restritas, pagas por menos vCores, mas ainda pagas pelos custos de computação e licenças do Windows Server para a máquina virtual mãe ou anfitriã.

Principais benefícios e características do modelo original de vCPU restrita

A lista seguinte descreve alguns dos principais benefícios e funcionalidades de usar vCPUs restritas para SQL Server em VMs Azure:

  • Vantagens preço-desempenho: 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 principal, por isso cargas de trabalho com muita memória não são comprometidas.
  • Armazenamento: O desempenho do armazenamento é o mesmo da configuração da VM principal, pelo que as cargas de trabalho intensivas em armazenamento não são afetadas.
  • Desempenho: Reduzir vCPUs pode melhorar o desempenho ao diminuir a contenda de threads e alinhar o uso da CPU com as necessidades da sua aplicação.

Observação

O SQL Server não suporta configurações que tenham mais de 64 processadores lógicos por nó NUMA. Se tentar instalar o SQL Server num servidor que exceda este limite, começando pelo SQL Server 2022 CU15, a instalação falha e o registo de erros indica uma configuração NUMA não suportada.

Desvantagens do modelo original de vCPU restrita

Embora o modelo original de núcleo restrito proporcione poupanças significativas de custos e flexibilidade, apresenta algumas desvanções:

  • Suporte inconsistente entre famílias de VMs: Nem todas as famílias de VMs Azure suportam vCPUs restritas.
  • Flexibilidade limitada: O modelo original de vCPU restrita limita-te a apenas 25% ou 50% dos vCores da VM principal, sem uma granularidade mais fina. Esta limitação é problemática para cargas de trabalho que requerem todos os recursos de uma VM mãe, mas apenas um número específico e menor de vCores.
  • Desafios de escalabilidade: À medida que o tamanho das VMs aumenta, a falta de granularidade torna-se mais acentuada. Por exemplo, a Standard_M416ms_v2 VM oferece 416 vCores, e mesmo a opção limitada (208 vCores) pode exceder largamente as necessidades de muitas implementações SQL Server.

Melhorias introduzidas com Núcleos Restritos Configuráveis (CCC)

O modelo Azure VM Configurable Constrained Cores (CCC) resolve as desvantagens do modelo original de vCPU restrita ao introduzir verdadeira flexibilidade e consistência para as implementações de VMs SQL Server, tais as seguintes funcionalidades:

  • Seleção granular de núcleos: O CCC permite-lhe especificar o número de vCPUs ativas para a sua VM, em vez de estar limitado a frações pré-definidas. Isto significa que pode selecionar qualquer contagem de vCPU suportada, como 16, 32 ou 48, mantendo ainda toda a memória, armazenamento e largura de banda de I/O do tamanho da VM principal.
  • Disponibilidade consistente: O CCC está disponível numa vasta gama de famílias de VMs, reduzindo o risco de suporte inconsistente. Pode escolher com confiança a melhor VM para a sua carga de trabalho e necessidades de licenciamento.
  • Licenciamento otimizado e utilização de recursos: Ao alinhar o número de vCPUs ativas com os seus direitos de licença SQL Server e requisitos de carga de trabalho, o CCC ajuda-o a evitar pagar por núcleos não utilizados, garantindo que pode aproveitar plenamente as características de desempenho de VMs de maior dimensão.
  • Maior satisfação do cliente: Ao utilizar o CCC, ganha flexibilidade para otimizar tanto o custo como o desempenho, reduzindo a probabilidade de despesas inesperadas ou configurações subótimas, ao mesmo tempo que melhora a sua satisfação geral com as implementações de VMs SQL Server.

O CCC capacita os clientes do SQL Server a adaptarem as suas implementações de VM Azure, maximizando a eficiência do licenciamento e a utilização de recursos, minimizando ao mesmo tempo custos e complexidade.

Melhores práticas CCC para SQL Server em VMs Azure

Os Núcleos Restritos Configuráveis (CCC) são uma funcionalidade particularmente útil para SQL Server em VMs Azure. Pode otimizar a sua implementação tanto em desempenho como em custo.

  • Alinhe o SQL Server por licença de núcleo com a necessidade real de CPU: Se a sua carga de trabalho do SQL Server estiver limitada à memória ou I/O em vez de à CPU, selecione um tamanho de VM maior para a taxa de transferência de memória e disco, mas limite os vCPUs ativos para corresponderem aos seus núcleos licenciados. Esta escolha pode reduzir os custos de licenciamento do SQL Server, mantendo as mesmas características de memória e E/S da VM.
  • Melhorar a consistência da latência: Para alguns padrões OLTP e de bases de dados sensíveis à latência, desativar o SMT (Threads por núcleo = 1) pode reduzir a contenda lógica do núcleo e a latência de cauda para consultas críticas ou cargas de trabalho de sincronização. Podes combinar SMT Off com CCC numa única implementação.
  • Planeie a implementação: Antes de implementar, analise a carga de trabalho do seu SQL Server para determinar o número ótimo de vCPUs necessários. Só pode alterar as definições do CCC e SMT durante a criação inicial da VM ou durante uma operação de redimensionamento. Não podes alterar estas opções numa VM em execução, e redimensionar requer um reinício.
  • Alocar vCPUs de forma adequada: Ao especificar valores, o número de vCPUs ativas (vCPUsAvailable) não deve exceder a contagem padrão de vCPUs para o tamanho da VM selecionado. Para tamanhos de VM que usam hyperthreading (dois threads por núcleo), valores válidos para vCPUsAvailable são números pares (como 2, 4, 6, e assim sucessivamente), enquanto tamanhos sem hyperthreading permitem incrementos de um. As definições CCC e SMT mantêm-se se redimensionar a VM para outro tamanho compatível. Se o tamanho alvo da VM não suportar estas funcionalidades, a operação de redimensionamento é bloqueada. Se ativares o Azure Hybrid Benefit ou usares licença por núcleo, define vCPUsAvailable para o número de núcleos licenciados que pretendes executar. O SQL Server só vê esse número de processadores lógicos. Esta escolha permite selecionar uma VM de memória maior ou I/O (para pool de buffer ou throughput) sem pagar por núcleos SQL desnecessários. Valide a contagem de núcleos dentro do Windows com o Gestor de Tarefas e sys.dm_os_sys_info no SQL Server.
  • Desativar SMT: Algumas cargas de trabalho OLTP beneficiam de desativar SMT devido à redução da contenção nos recursos centrais partilhados. Outras cargas de trabalho, como análises ou cargas de trabalho altamente paralelas, podem beneficiar de manter o SMT ativado. Testa ambos para a tua carga de trabalho usando testes de carga representativos antes de finalizar.
  • NUMA e MAXDOP: O CCC só altera a contagem lógica de CPU, não altera a memória subjacente da VM nem o débito de I/O. Revê o teu MAXDOP e o limiar de custo para paralelismo depois de restringir os núcleos para garantir um paralelismo ótimo nas CPUs reduzidas. Aplicar as melhores práticas gerais de desempenho para otimizar conforme a carga de trabalho do SQL Server.
  • Grupos de disponibilidade e backups: Limitar núcleos não altera os direitos ao débito do disco relacionados ao tamanho da VM. Pode continuar a usar a largura de banda de armazenamento da VM maior para backup, restauro e sincronização de grupos de disponibilidade. Esta taxa de transferência é um fator comum para escolher uma maior capacidade de memória ou tamanhos de I/O com menos núcleos ativos.
  • Sem custos adicionais: Não há custo adicional de VM Azure para usar CCC ou os controlos SMT / HT, pois o preço de computação da VM mantém-se igual ao tamanho selecionado, que inclui custos de computação, memória e armazenamento. As poupanças potenciais vêm do software licenciado por núcleo (como o SQL Server), que reconhece a redução no número de vCPUs. Revise os termos do seu licenciamento para estimar poupanças e custos globais.

Exemplos de padrões de implementação do SQL Server

Considere os seguintes padrões de implementação de cargas de trabalho SQL Server:

  • OLTP intensivo em memória: Selecione uma VM da série E ou Ebdsv5 para alta memória. Defina vCPUsAvailable para corresponder à sua licença SQL Server (como oito núcleos) e, opcionalmente, defina vCPUsPerCore = 1 para desativar o SMT para cargas de trabalho sensíveis à latência. Esta configuração preserva a memória e o I/O da VM, reduzindo os custos de licenciamento.
  • OLAP/DW intensivos em memória e armazenamento: Selecione uma VM da série M para alta memória e armazenamento. Defina vCPUsAvailable para corresponder à sua licença SQL Server (como 32 núcleos) e, opcionalmente, desative vCPUsPerCore = 1 o SMT para workloads sensíveis à latência.
  • Backup e desempenho de restauração: Escolha uma VM otimizada para armazenamento para maximizar a largura de banda para discos do tipo blob ou gerenciados. Defina vCPUsAvailable para o número de núcleos SQL necessários, mantendo um alto rendimento de disco, sendo licenciados menos núcleos.

Comece com o CCC

Pode definir as definições CCC e SMT para a sua VM Azure usando o portal Azure, Azure CLI, PowerShell e templates ARM. Para saber mais, consulte a personalização do VM vCore.

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

Validar a configuração da CPU no Windows

Use o Gestor de Tarefas (Performance → CPU) para verificar a contagem lógica de processadores.

Execute wmic cpu get NumberOfCores,NumberOfLogicalProcessors dentro de um prompt de comandos administrativo para confirmar o estado do SMT.

Validar a configuração da CPU no SQL Server

Executar SELECT cpu_count, hyperthread_ratio FROM sys.dm_os_sys_info; para verificar a contagem lógica de CPU e SMT.

Revise e ajuste o grau máximo de paralelismo (MAXDOP) e o limiar de custo para paralelismo para o novo número de CPUs.

Limitações

Considere as seguintes limitações ao usar a personalização VM vCore para SQL Server em VMs Azure:

  • As imagens suportadas incluem imagens de primeira parte, como Windows Server, Ubuntu, RHEL, SUSE e imagens personalizadas. Imagens do Marketplace de terceiros não são suportadas. Imagens obsoletas do Marketplace SQL VM Linux não são suportadas.
  • O CCC está atualmente disponível em regiões selecionadas, como o Centro Ocidental dos EUA, Norte da Europa, Leste Asiático e Sul do Reino Unido.
  • Podes definir CCC/SMT apenas durante operações de criação ou redimensionamento . Alterações dinâmicas em tempo de execução não são suportadas. O redimensionamento desencadeia um reinício.

Perguntas frequentes (FAQ)

Considere as seguintes perguntas frequentes:

O CCC afeta a memória ou o débito de armazenamento da minha VM?

Não. O CCC só altera o número de vCPUs apresentados ao sistema operativo convidado. Manténs a memória e o I/O do tamanho da VM selecionado.

Posso ligar ou desligar o CCC sem interrupção?

Não. Deve ativar o CCC no momento da criação da VM ou durante o redimensionamento. Ocorre um reinício.

O SQL Server irá reconhecer a redução do número de núcleos para licenciamento?

Yes. O SQL Server e outros softwares licenciados por core veem apenas o vCPUsAvailable valor que o sistema operativo recebe. Verifique os termos da sua licença para confirmar.