Configurar RAM para SQL Server e NUMA

10

Administrador acidental de banco de dados aqui.

Questão:

Você ainda limitaria manualmente a RAM máxima para o SQL Server, mesmo que o único objetivo desse servidor seja atender somente ao mecanismo de banco de dados do SQL Server?

Eu tenho o Microsoft Windows 2012 R2 Server, SQL Server 2012 Std, com 32 GB de RAM.

Admin faça o login constantemente no SQL Server para usar seu console e tudo.

Em segundo lugar, como você verifica se este servidor Windows está habilitado para NUMA?

volantis
fonte

Respostas:

9

Você ainda limitaria manualmente o máximo de RAM máxima para o evento MSSQL, embora o único objetivo desse servidor seja servir apenas o MSSQL?

Esse é um tópico pouco discutível, considerando que você possui o SQL Server 2012 aqui. Se você tivesse feito a mesma pergunta sobre o SQL Server 2005/2008, que estava no Windows Server 2003/2008, sugiro definir um limite máximo de memória do servidor devido a erros existentes no sistema operacional Windows (2003/2008). Mas a configuração de memória e desempenho OS mudou significativamente a partir do SQL Server 2012 em diante e Windows Server 2008/2012 R2 em diante, respectivamente, se você perguntar a minha opinião, You can leave max server memory configuration to default if you have enough RAM on system and you are just using database engine features.Se você perguntar MS engenheiros sobre isso, eles também diria que o SQL Server é codificado bem para gerenciar memória próprio e se você tiver um sistema dedicado apenas ao mecanismo de banco de dados SQL, poderá deixar a memória máxima do servidor SQL Server como padrão. O SQL Server o gerenciará com eficiência.

De qualquer forma, se você ainda deseja configurar, pode ler Perguntas e respostas semelhantes fornecidas Neste Tópico do SE

Há situações em que a memória máxima do servidor é necessária. Eu descrevi isso neste tópico SE

Em segundo lugar, como você verifica se este servidor Windows está habilitado para NUMA?

Uma pequena pesquisa levaria você a este artigo Blogs.msdn . Ele possui várias descrições pictóricas quando o SQL Server reconhece o NUMA e o está usando.

Shanky
fonte
2
Eu gosto de usar a tabela de Brent Ozar para uma referência rápida sobre configurações de memória para casos de uso gerais.
LowlyDBA
3
Isso é claro para referência rápida e atua como ponto de partida para um valor. Tenho certeza de que, se você perguntar a ele, ele diria que precisa examinar mais detalhadamente os contadores de perfmon para alcançar o valor ideal . É por isso que adicionei um link SE para o caso de o OP querer definir a memória máxima do servidor.
Shanky
2

O SQL NUMAsabe que você pode encontrar NUMAinformações usando uma consulta. Você também pode usar esta consulta para ver quantos NUMAnós você possui e qual CPU e núcleos estão atribuídos a quais NUMA:

SELECT parent_node_id, scheduler_id, cpu_id
FROM sys.dm_os_schedulers WITH (NOLOCK) 
WHERE [status] = N'VISIBLE ONLINE';

Ou quantas NUMA:

select COUNT(distinct Parent_node_id)
from sys.dm_os_schedulers
where [STATUS] = 'VISIBLE ONLINE'
    and Parent_node_ID < 64
hpk89
fonte
-2

Sim, você deve limitar a memória máxima do SQL Server, mesmo que o servidor tenha apenas uma finalidade. Caso contrário, o SQL Server poderá começar a usar a memória que o próprio Windows precisa para funcionar bem. É comum deixar 1 GB -> 20% da RAM total no Windows, dependendo das suas necessidades.

A configuração NUMA do servidor é exibida no Gerenciador de tarefas, selecionando um processo, clique com o botão direito do mouse e selecione Definir afinidade. O Windows Resource Monitor também exibe as informações de NUMA.

Vemund Haga
fonte