Gostaria da sua opinião sobre isso. Eu tenho um servidor sql 2008r2 Ent. Ed. 64 bits com 16 núcleos e 64 GB de RAM. Há uma instância do SQL Server totalmente corrigida a partir de 20111014.
A ram máxima é configurada para 60000MB. A quantidade de RAM livre é 0, de acordo com o gerenciador de tarefas, depois de alguns dias online.
Se eu alterar o número máximo de RAM para abaixo de 53 GB, ele passará alguns dias para estabilizar e ter um pouco de RAM livre.
É o processo sql que aloca o carneiro de acordo com o gerenciador de tarefas. Como chego a um acordo sobre qual é realmente o problema? Escusado será dizer que eu já fiz muitos testes, mas ainda não o resolvi ao meu gosto. e ohh, não temos o atraso típico da falta de memória quando a memória RAM disponível está abaixo de 0 livre.
Atualização 1:
Inspirado por outra pergunta / resposta relacionada à RAM nesta página /dba//a/7062/2744 . Eu usei esses dois para ver o que a RAM está sendo usada.
SELECT TOP ( 10 )
[type] AS [Memory Clerk Type] ,
SUM(single_pages_kb) AS [SPA Mem, Kb]
FROM sys.dm_os_memory_clerks
GROUP BY [type]
ORDER BY SUM(single_pages_kb) DESC
OPTION ( RECOMPILE ) ;
SELECT DB_NAME(database_id) AS [Database Name] ,
COUNT(*) * 8 / 1024.0 AS [Cached Size (MB)]
FROM sys.dm_os_buffer_descriptors
--WHERE database_id > 4 -- system databases
-- AND database_id <> 32767 -- ResourceDB
GROUP BY DB_NAME(database_id)
ORDER BY [Cached Size (MB)] DESC
OPTION ( RECOMPILE ) ;
A quantidade usada mostrada por eles é o primeiro selecione 7948432 Kb, o segundo 44030,57812 MB, que é um total de cerca de 52 GB usado pelo servidor sql ... então, para onde foi o restante da minha RAM? :-) No momento, o gerenciador de tarefas mostra em cache 363, disponível 401, 40 grátis e sqlservr.exe com o conjunto privado de Memória 64 459 656. Max Ram definido como 60000MB como antes.