Há bons conselhos gerais sobre como configurar o Grau Máximo de Paralelismo (MAXDOP). No entanto, estou em uma circunstância especial. Existem duas instâncias na minha caixa. Se eu tiver 16 núcleos, como devo dividir o MAXDOP entre eles? Que métricas revelariam que fiz uma escolha errada?
Estou no SQL Server 2019 e o conselho padrão para MAXDOP mudou em 2016, portanto, informações anteriores a junho de 2016 (a data de lançamento do SQL Server 2016) podem não ser aplicáveis.
você está fazendo a pergunta errada
Instâncias empilhadas são um erro terrível se você realmente se preocupa com o desempenho de ambos os servidores, porque ambos lutarão pelos mesmos recursos, a menos que estejam perfeitamente alinhados em termos de carga de trabalho para ter seus períodos ocupados em agendas opostas. Mesmo assim, a transição inicial será difícil do ponto de vista da memória.
Evitar a contenção de CPU tem mais a ver com configurar a afinidade de CPU para que cada SQL Server utilize um bloco separado de CPUs.
Em
StackedMistake1
, você executaria:E em
StackedMistake2
, você executaria:Claro, agora você precisa esperar ter memória suficiente para suportar totalmente os
StackedMistake
requisitos de memória do buffer pool, concessões de memória e outros funcionários e caches importantes.Se nenhum dos servidores for importante, então o que você define é de pouca relevância, além de seguir as práticas recomendadas de estoque. Se um servidor for mais importante que o outro, use as configurações para reduzir o menos importante a um menor consumo de CPU e memória para minimizar a contenção de recursos.