Eu tenho um servidor da edição 2016 Standard com duas instâncias. O servidor tem 8 processadores lógicos e 40 GB de memória (é um servidor de teste no hyper-v, portanto a especificação não é alta!) e não possui nenhuma carga de trabalho existente para o perfil.
O conselho sobre a configuração de arquivos MAXDOP e TempDb ainda é válido em um servidor de várias instâncias?
Meus pensamentos eram dividir os recursos do servidor e aplicar a configuração com base neles.
por exemplo, cada instância teria
- 16 GB de memória MÁX.
- MAXDOP 4
- 4 arquivos TempDB
O governador de recursos é o melhor se você realmente precisa restringir recursos para cada instância, embora, se essa for sua principal preocupação, eu evite empilhar várias instâncias.
Se a divisão de recursos não for uma grande preocupação, eu configuraria a memória total não mais que 36 GB, portanto, 16 GB por instância é bom. Eu ainda configuraria 8 arquivos tempdb para cada instância e provavelmente definiria max dop para cerca de 6, para ser testado em relação à carga de trabalho.
Isso garante que nenhuma instância ou o sistema operacional não consiga obter a memória necessária, mas configurando o maxdop acima da metade dos núcleos, permitirá que os processos usem mais de 4 núcleos, se disponíveis, sem permitir que um único processo dominar toda a máquina.
Eu ainda alocaria 8 arquivos tempdb para a instância, porque sem algo em vigor para fornecer uma restrição rígida, o sql server ainda poderá acessar todos os 8 núcleos e poderia gerar 8 solicitações simultâneas de tempdb.
Uma outra coisa que eu verificaria é que, se isso estiver sendo executado no sql server standard edition, sua VM está configurada com não mais de 4 soquetes, independentemente do número de núcleos. O servidor Sql restringirá o uso da CPU a 4 soquetes e, se você usar uma CPU de núcleo único, poderá acabar com ambas as instâncias tentando compartilhar as primeiras 4 CPUs, enquanto as outras 4 ficam ociosas.