Evite incompatibilidades entre os núcleos da CPU - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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.