usando SQL 2008 R2 com SP2 com um servidor com 64 GB de RAM. Eu defini a memória máxima do servidor para 58 GB, considerando que o SQL Server está limitado apenas a serviços relacionados ao mecanismo de banco de dados. Eu tenho uma pergunta relacionada à configuração da memória mínima do servidor
Se eu definir a memória mínima do servidor para 48 GB, isso significa
a) Se o Windows enviar uma notificação de pouca memória para o SQL - o servidor SQL cortará todo o seu pool e tentará manter o uso de memória em até 48 GB de memória?
b) Em caso de corte agressivo do conjunto de trabalho pelo Windows - isso deixaria o uso de memória do servidor SQL para 48 GB, definindo um "piso" para o uso de memória do SQL.
c) Existe alguma recomendação sobre a memória mínima do servidor?
Pesquisando na web - a internet tem muitas informações para a memória máxima do servidor, mas apenas alguns lugares que li (blog Brent Ozar para práticas recomendadas de configuração) para definir a memória mínima do servidor para 50% do total de RAM disponível no servidor.
Eu sugiro que você deixe a memória do servidor MIN para DEFAULT.
A memória mínima do servidor controla a quantidade mínima de memória física que o SQL Server tentará manter comprometida. Quando o serviço do SQL Server é iniciado, ele não adquire toda a memória configurada em Min Server Memory, mas inicia apenas com o mínimo necessário, crescendo conforme necessário. Depois que o uso da memória aumentar além da configuração Min Server Memory, o SQL Server não liberará nenhuma memória abaixo desse valor.
Bob Dorr explica essas configurações como:
Isso ocorre porque essas configurações são menos ajustadas (as pessoas apenas definem como padrão); em vez disso, a memória máxima é o que geralmente é ajustado, pois é o "teto" para o buffer pool. Um bom valor para a memória máxima garantirá que o Windows e outros processos em execução no servidor tenham memória física suficiente para executar seu trabalho sem forçar o sql server a cortar .
Em relação às suas perguntas sobre "notificação de memória baixa" e "corte agressivo do conjunto de trabalho", o SQL Server tentará reduzir para a quantidade mínima de memória definida. Algumas coisas boas a saber:
Concordo que, para a maioria dos SQL Servers, 50% é provavelmente uma boa configuração mínima de memória.
A partir do SQL Server 2019 CTP3.1, você pode configurar a memória MIN e MAX durante a configuração e utilizar
Recommended values
:Segundo a documentação , o SQL Server não pode liberar memória abaixo do mínimo.
Quanto às recomendações para memória mínima, 50% deve ser uma boa base, mas depende do servidor e do tipo de carga que ele possui.
Vejo a configuração do valor mínimo apenas se soubermos que todos os dias haverá uma carga/atividade que exigirá muita memória para que, quando a atividade ocorrer, o SQL SERVER não precise solicitar mais memória todos os dias. (embora tenha que solicitar pela primeira vez).
responda à sua pergunta: "Se o Windows enviar uma notificação de pouca memória para o SQL - o servidor SQL cortará todo o seu pool e tentará manter o uso da memória em até 48 GB de memória?"
O servidor SQL não ficará abaixo do valor mínimo se já o tiver adquirido. (independentemente de estar em uso no momento), portanto, essa é uma indicação de que o valor MIN definido não era apropriado.
"Em caso de corte agressivo do conjunto de trabalho pelo Windows - isso deixaria o uso de memória do servidor SQL para 48 GB, definindo um "piso" para o uso de memória do SQL?" Não tenho certeza disso. mas meu palpite é que não pode forçar o servidor SQL a realocar a memória adquirida/confirmada. até agora, não encontrei uma maneira de dizer ao sql server que libere qualquer memória não utilizada para o Windows. Eu vi o servidor parar de responder devido ao valor MAX inadequado para o servidor SQL e, em seguida, não há mais nada para o próprio servidor operar.
"Existe alguma recomendação sobre memória mínima do servidor?" Como eu disse antes, a menos que você saiba com que frequência o servidor precisará de uma quantidade específica de memória, não é necessário definir nada mais alto que o padrão.