Quais são as configurações corretas para memória mínima e memória máxima neste caso de uso?
O servidor possui 8 GB de RAM, processadores Intel Xeon duplos, executando o Windows Server 2008 R2 / Sql Server 2008 Standard Edition. Ele está executando vários bancos de dados que variam de 30 GB a 5 GB de tamanho.
Originalmente, o uso de memória foi definido para as configurações padrão (min=0 max=2.147.483.647). Nessas configurações, a maior parte do uso de memória foi ocupada pelo sqlservr.exe e o servidor eventualmente precisaria ser reiniciado a cada um ou dois dias. Ele seria executado normalmente no início, mas dentro de um dia começaria a expirar em operações simples, como procurar um registro usando a chave primária.
Eu mudei min=4.096 e max=6.144. Isso resulta em apenas 1,4 GB de uso de memória. No entanto, agora todos os quatro cpus estão rodando com 50-60% de uso da CPU constantemente. As tarefas estão demorando cerca de 1/3 a mais para serem executadas, embora o servidor seja muito mais estável.
Observando sua disponibilidade de RAM para este servidor específico e você está executando vários bancos de dados que variam de 30 GB a 5 GB , você definitivamente precisa de mais RAM neste servidor.
Você não mencionou que esta é uma instância autônoma ou que este servidor está tendo mais de uma instância do sql server em execução.
Suas configurações de memória MAX parecem corretas para um servidor com 8 GB de RAM. Veja estas configurações de práticas recomendadas sugeridas por Glenn Berry .
Eu recomendo que você faça uma linha de base do seu ambiente usando os contadores PERFMON abaixo para obter um bom valor da sua configuração de memória:
Memória total do servidor: quantidade de memória atualmente alocada para o Buffer Pool e não a quantidade total de memória para o SQL Server
Memória do servidor de destino: tamanho ideal do pool de buffers correspondente à memória máxima da instância.
Nota: Se Memória total do servidor > Memória do servidor de destino, isso sugere pressão de memória.
O script abaixo o ajudará a encontrar notificações de memória LOW ou HIGH da
sys.dm_os_ring_buffers
sessão de integridade do sistema:Algumas boas referências: