Bes*_*ska 1 sql-server memory sql-server-2012
我在 Windows 2008 R2 x64 机器上安装 SQL Server 2012 时遇到问题。
因为我的记忆似乎正在迅速消失(根据任务管理器图),但我看不到任何程序在使用它,所以我下载了 RAMMap 以更好地了解正在发生的事情。原来我所有的记忆都被 AWE 吞噬了。
我的内存很快就被 SQL Server 吃掉了,达到我允许实例拥有的最大值(当前为 3GB)。
然而,当我尝试研究这个时,每个人似乎都说 SQL Server 2012 64 位系统没有启用 AWE,因为它不需要;AWE 启用的扩展内存可直接访问。但是系统仍然会很高兴地在 AWE 中咀嚼内存,直到达到极限。
不知道还有哪些其他信息可以帮助诊断这一点……或者即使我完全误解了某些东西……我现在对此的了解已达到极限。请不要假设我有很多知识......虽然我通常精通技术,但我绝对不是 DBA。
如果启用了“lock pages in memory”,SQL Server 将使用 AWE 内存分配 API 来分配缓冲池内存。
如果未设置SQL Server 的最大服务器内存设置,SQL Server 最终将根据需要使用尽可能多的内存。这将在很大程度上显示为 RAMMap 中的 AWE 内存。可以在此处找到更多详细信息,此处解释了所有 SQL Server 内存设置。
您应该设置最大服务器内存设置,以便为操作系统提供足够的内存。如果操作系统没有足够的可用内存,则可能会发生分页并导致性能问题。一个好的起点是为操作系统保留 3 到 4 GB,但请注意适当的计数器,看看操作系统是否处于内存压力之下。
您可以在以下链接中获取有关如何选择正确的最大服务器内存设置的更多信息:
有关 SQL Server 如何使用 AWE 和锁定页面的完整详细信息,请参阅 Microsoft CSS SQL Server 工程师文章: