Me gustaría su opinión sobre esto. Tengo un servidor sql 2008r2 Ent. Ed. 64 bits con 16 núcleos y 64 GB de RAM. Hay una instancia de SQL Server parcheada completamente a partir de 20111014.
El ram máximo está configurado en 60000MB. La cantidad de memoria RAM gratuita es 0 según el administrador de tareas después de unos días en línea.
Si cambio la memoria RAM máxima a menos de 53 GB, después de unos días se estabilizará y tendrá algo de memoria RAM libre.
Es el proceso sql el que asigna el RAM según el administrador de tareas. ¿Cómo llego a un acuerdo con cuál es realmente el problema? No hace falta decir que ya hice muchas pruebas, pero aún no lo he resuelto a mi gusto. y, ohh, no obtenemos el retraso típico de falta de memoria cuando la memoria RAM disponible está a 0 libre.
Actualización 1:
Inspirado en otro Q / A relacionado con RAM en esta página /dba//a/7062/2744 . Usé estos dos para ver para qué se usa la RAM.
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 ) ;
La cantidad utilizada mostrada por estos son primero seleccione 7948432 Kb segundo 44030,57812 MB que es un total de aproximadamente 52 GB utilizados por el servidor sql ... entonces, ¿a dónde se fue el resto de mi RAM? :-) El administrador de tareas muestra ahora en caché 363, 401 disponible, 40 gratis y sqlservr.exe tiene un conjunto privado de memoria 64 459 656. Max Ram configurado a 60000 MB como antes.