SQL Server 2008 最大内存设置不生效

SQL Server 2008 最大内存设置不生效

我在限制 Windows Server 2008 服务器上的 SQL Server 2008 内存使用量时遇到了麻烦。系统有 11GB 的 RAM,我尝试通过将“最大服务器内存(以 MB 为单位)”设置为 8500 来将 SQL 的内存使用量限制为 8.5GB,但它目前仍然使用了超过 9.5GB 的内存(即使在重新启动后)。

有什么想法可以正确地限制它吗?

谢谢你的时间

答案1

这些设置仅适用于缓冲池。SQL Server 还会从此区域之外分配内存。请参阅以下摘自 SQL Server 联机丛书的内容

SQL Server 作为一个进程获取的内存比 max server memory 选项指定的内存要多。内部和外部组件都可以在缓冲池之外分配内存,这会消耗额外的内存,但分配给缓冲池的内存通常占 SQL Server 所消耗内存的最大部分。

欲进一步了解,请参阅:SQL Server 内存选项

答案2

最大内存设置并不涵盖 SQL Server 所做的所有事情,而只涵盖缓冲池,我将其大致描述为保存在内存中而不是磁盘上的数据。

鲍尔

“SQL Server 作为一个进程获取的内存比最大服务器内存选项指定的内存更多。内部和外部组件都可以在缓冲池之外分配内存,这会消耗额外的内存,但分配给缓冲池的内存通常代表 SQL Server 消耗的最大部分内存。”

答案3

我认为 John 在这方面的判断是正确的。使用 Max 服务器内存,只能控制数据缓存/缓冲池区域。SQL Server 仍将内存用于其他区域,如扩展过程、OLE 自动化调用、链接服务器、OLEDB 提供程序、SQL CLR,还用于大于 8KB (>8KB) 的分配,也称为多页分配。

Jonathan Kehayias 发表了几篇出色的文章来帮助您了解这些领域,有机会的话您可能想阅读一下这些文章。

http://sqlblog.com/blogs/jonathan_kehayias/archive/2009/07/07/understanding-the-vas-reservation-aka-memtoleave-in-sql-server.aspx

http://sqlblog.com/blogs/jonathan_kehayias/archive/2009/08/24/troubleshooting-the-sql-server-memory-leak-or-understanding-sql-server-memory-usage.aspx

答案4

您如何测量内存使用情况?性能监视器计数器?SQL 工具中的显示?任务管理器?

您所查看的读数可能并未完全显示您试图限制的内存池。如果您告诉我们您从哪里获取读数,希望您会得到更具体的答案。

相关内容