我希望您对此提供意见。我有一个sql server 2008r2 Ent。埃德 具有16个内核和64GB RAM的64位。截至20111014,有一个完全修补的SQL Server实例。
最大ram设置为60000MB。在线几天后,根据任务管理器,免费ram的数量为0。
如果我将最大RAM更改为低于53GB,几天后它将稳定下来并有一些可用RAM。
是sql进程根据任务管理器分配ram。我该如何解决真正的问题?不用说,我已经做了很多测试,但是还没有按照我的喜好解决。当可用的内存降低到0时,我们不会得到典型的内存短缺。
更新1:
受到此页面上与RAM相关的另一个问题的启发,网址为/dba//a/7062/2744。我用这两个来查看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放在哪里了?:-)任务管理器现在显示已缓存363,可用401,免费40,并且sqlservr.exe的“内存”专用集为64 459656。最大Ram设置为60000MB。