Computar limites de capacidade por edição do SQL Server

Aplica-se a:SQL Server

Este artigo discute os limites de capacidade de computação das edições diferentes do SQL Server e quais suas diferenças em ambientes físicos e virtuais com processadores de multithreading simultâneo (SMT). Em CPUs Intel, o SMT é chamado Hyper-Threading.

Visão geral

Diagrama mostrando os mapeamentos para calcular os limites de capacidade.

Esta tabela descreve as notações do diagrama anterior:

Valor Descrição
0..1 Zero ou um
1 Exatamente um
1..* Um ou mais
0..* Zero ou mais
1..2 Um ou dois

Para elaborar mais:

  • Uma VM (máquina virtual) tem um ou mais processadores virtuais.
  • Uma ou mais processadores virtuais são alocados a exatamente uma máquina virtual.
  • Zero ou um processador virtual é mapeado para zero ou mais processadores lógicos. Quando o mapeamento dos processadores virtuais para os processadores lógicos é:
    • Um para zero: representa um processador lógico não associado não usado pelos sistemas operacionais convidados.
    • Um para muitos: representa uma superconfirmação.
    • Zero para muitos: representa a ausência de máquina virtual no sistema host. Portanto, as VMs não usam nenhum processador lógico.
  • Um soquete é mapeado para zero ou mais núcleos. Quando o mapeamento do soquete para núcleo é:
    • Um para zero: representa um soquete vazio. Não há chip instalado.
    • Um para um: representa um chip de núcleo único instalado no soquete. Esse mapeamento é raro nos dias atuais.
    • Um para muitos: representa um chip de vários núcleos instalado no soquete. Os valores típicos são 2, 4 e 8.
  • Um núcleo é mapeado para um ou dois processadores lógicos. Quando o mapeamento dos núcleos cores para os processadores lógicos é:
    • Um a um: SMT desligado.
    • Um a dois: SMT ligado.

As definições a seguir aplicam-se aos termos usados neste artigo:

  • Um thread ou processador lógico é um mecanismo de computação lógico da perspectiva do SQL Server, do sistema operacional, de um aplicativo ou de um driver.

  • Um núcleo é uma unidade de processador. Ele pode consistir em um ou mais processadores lógicos.

  • Um processador físico pode consistir em um ou mais núcleos. Um processador físico é o mesmo que um pacote de processadores ou um soquete.

Alteração interruptiva na atualização cumulativa 11 do SQL Server 2022

O SQL Server limita o número de processadores lógicos por nó NUMA a 64. Em servidores com mais de 64 processadores lógicos por nó NUMA, é possível usar uma configuração de BIOS/firmware para alterar o número de nós NUMA por soquete físico apresentado ao sistema operacional, para limitar a um máximo de 64 processadores lógicos.

Você também pode considerar desabilitar o SMT. Em CPUs Intel, o SMT é chamado Hyper-Threading.

Comentários

Os sistemas com mais de um processador físico ou sistemas com processadores físicos que têm vários núcleos e/ou SMT permitem que o sistema operacional execute várias tarefas simultaneamente. Cada thread de execução aparece como um processador lógico. Por exemplo, se você tiver um computador com dois processadores com núcleo quádruplo, SMT habilitado e dois threads por núcleo, você terá 16 processadores lógicos: 2 processadores x 4 núcleos por processador x 2 threads por núcleo. Vale a pena observar que:

  • A capacidade de computação de um processador lógico de um único thread de um núcleo SMT é menor que a capacidade de computação de um processador lógico daquele mesmo núcleo com SMT desabilitado.

  • A capacidade de computação dos dois processadores lógicos no núcleo SMT é maior que a capacidade de computação do mesmo núcleo com SMT desabilitado.

Cada edição do SQL Server tem dois limites de capacidade de computação:

  • Um número máximo de soquetes (ou de processadores físicos ou de pacotes de processadores)

  • Um número máximo de núcleos como relatado pelo sistema operacional

Esses limites se aplicam a uma única instância do SQL Server. Eles representam a capacidade máxima de computação que uma única instância usa. Eles não restringem o servidor onde a instância pode ser implantada. Na verdade, implantar várias instâncias do SQL Server no mesmo servidor físico é um modo eficiente de usar a capacidade de computação de um servidor físico com mais soquetes e/ou núcleos que os permitidos pelos limites de capacidade.

A tabela a seguir especifica os limites de capacidade de computação para uma única instância de cada edição do SQL Server:

SQL Server edição Capacidade máxima de computação para uma só instância (Mecanismo de Banco de Dados do SQL Server) Capacidade máxima de computação para uma única instância (AS, RS)
Edição Enterprise: Licenciamento baseado em núcleo 1 Máximo do sistema operacional Máximo do sistema operacional
Desenvolvedor Máximo do sistema operacional Máximo do sistema operacional
Standard Limitado a menos de 4 soquetes ou 24 núcleos Limitado a menos de 4 soquetes ou 24 núcleos
Express Limitado a menos de 1 soquete ou 4 núcleos Limitado a menos de 1 soquete ou 4 núcleos

1 O licenciamento da Edição Enterprise com Servidor + CAL (licença de acesso para cliente) limita-se a 20 núcleos por instância do SQL Server. (Esse licenciamento não está disponível para novos contratos.) Não há limites no modelo de Licenciamento de Servidor Baseado em Núcleo.

Em um ambiente virtualizado, o limite de capacidade de computação é baseado no número de processadores lógicos, e não de núcleos. O motivo é que a arquitetura dos processadores não é visível aos aplicativos convidados.

Por exemplo, um servidor com quatro soquetes preenchidos com processadores com núcleo quádruplo e com a capacidade para habilitar dois threads SMT por núcleo contém 32 processadores lógicos com o SMT habilitado. No entanto, ele contém só 16 processadores lógicos com SMT desabilitado. Esses processadores lógicos podem ser mapeados para máquinas virtuais no servidor. A carga de computação das máquinas virtuais nesse processador lógico é mapeada para um thread de execução no processador físico no servidor host.

Quando o desempenho de cada processador virtual for importante, você poderá desabilitar o SMT. Você pode habilitar ou desabilitar o SMT usando uma configuração de BIOS para o processador durante a instalação da BIOS, mas é geralmente uma operação no escopo do servidor, que afeta todas as cargas de trabalho que estão sendo executadas no servidor. Você pode considerar separar as cargas de trabalho que são executadas em ambientes virtualizados das cargas de trabalho que se beneficiariam do aumento de desempenho do SMT em um ambiente de sistema operacional físico.

Obter ajuda

Contribua com a documentação do SQL

Você sabia que pode editar conteúdo do SQL por conta própria? Ao fazer isso, além de melhorar nossa documentação, você também será creditado como um colaborador da página.

Para obter mais informações, confira Como contribuir para a documentação do SQL Server