Evite incompatibilidades entre os núcleos da CPU
Escolher um servidor que tenha um número maior de núcleos do que as coberturas de sua licença pode causar distorção da CPU e desperdício de energia da CPU. Isso se deve ao mapeamento entre os núcleos lógicos e reais. Quando você usa o SQL Server com uma Licença de Acesso para Cliente (CAL), alguns agendadores serão VISIBLE ONLINE e os demais serão VISIBLE OFFLINE. Isso pode levar a problemas de desempenho com topologias de acesso não uniforme à memória (NUMA), porque os nós do agendador não estão sendo utilizados de maneira ideal.
Por exemplo, se você executar o SQL Server em uma instância m5.24xlarge, ele detectará dois soquetes com 24 núcleos e 48 processadores lógicos por soquete, o que resultará em um total de 96 processadores lógicos. Se você tiver uma licença para apenas 48 núcleos, verá uma mensagem semelhante à seguinte no log de erros do SQL Server:
2020-06-08 12:35:27.37 Server O SQL Server detectou 2 soquetes com 24 núcleos por soquete e 48 processadores lógicos por soquete, 96 processadores lógicos no total; usando 48 processadores lógicos baseados no licenciamento do SQL Server. Esta é uma mensagem informativa; nenhuma ação do usuário é necessária.
Se você observar uma diferença entre o total de núcleos e o número de núcleos usados pelo SQL Server, verifique se há desequilíbrio no uso da CPU ou use um tipo de servidor que tenha o mesmo número de núcleos que sua licença suporta.
CPU skew: para o tipo de instância em nosso exemplo (m5.24xlarge), o SQL Server cria oito nós NUMA por padrão. Somente quatro desses nós (ID do nó pai 0,1,2,3) têm agendadores com o status VISIBLE
ONLINE. Os horários restantes são todos VISIBLE OFFLINE. Essa disparidade entre os programadores pode levar à degradação do desempenho.
Para verificar as informações e o status do agendador, use:
$ select * from sys.dm_os_schedulers
Se você quiser usar uma instância de servidor que tenha um número maior de núcleos do que a sua licença do SQL Server suporta, considere personalizar o número de núcleos seguindo as instruções em Especificar opções de CPU para sua instância na documentação do Amazon EC2.