Vorrei il tuo contributo al riguardo. Ho un server sql 2008r2 Ent. Ed. 64 bit con 16 core e 64 GB di RAM. Esiste un'istanza del server SQL completamente patchata a partire da 2011-2014.
Il ram massimo è impostato su 60000 MB. La quantità di RAM gratis è 0 secondo il task manager dopo alcuni giorni online.
Se cambio la RAM massima a meno di 53 GB, dopo alcuni giorni si stabilizzerà e avrò una RAM libera.
È il processo sql che alloca la ram in base al task manager. Come posso venire a patti con quale sia realmente il problema? Inutile dire che ho già fatto molti test ma non l'ho ancora risolto a mio piacimento. e ohh non otteniamo il tipico ritardo della fame di memoria quando il ram disponibile è fino a 0 libero.
Aggiornamento 1:
Ispirato da un altro Q / A relativo alla RAM in questa pagina /dba//a/7062/2744 . Ho usato questi due per vedere a cosa serve 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 ) ;
Gli importi utilizzati da questi sono prima selezionati 7948432 Kb secondo 44030,57812 MB che è un totale di circa 52 GB utilizzati dal server sql ... quindi dove è andato il resto della mia RAM? :-) Task manager mostra ora 363 cache, disponibile 401, 40 gratis e sqlservr.exe ha memoria privata impostata 64 459 656. Max Ram impostato su 60000 MB come prima.