我希望你对此有所了解.我有一个sql server 2008r2 Ent.埃德. 64位,16核,64GB RAM.截至20111014,有一个sql服务器实例已完全修补.
最大内存设置为60000MB.根据任务经理在线几天后,免费ram的数量为0.
如果我将max ram更改为低于53GB,它将在几天后稳定并有一些免费的ram.
sql进程根据任务管理器分配ram.我如何解决问题的真正含义?不言而喻,我已经做了很多测试,但还没有按照我的喜好来解决这个问题.哦,当可用的ram降到0时,我们没有得到典型的内存饥饿滞后.
更新1:
受此页面https://dba.stackexchange.com/a/7062/2744上与RAM相关的另一个Q / A的启发.我用这两个来看看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 ) ;
这些使用的数量是
首先选择7948432 Kb
第二个44030,57812 MB
这是sql server使用的总共约52GB …所以其余的RAM去了哪里?