AWE 内存使用量随着 SQL Server 2012 的增长而增长

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。

  • SQL 服务器的最大内存设置为 3GB。
  • 服务器上的物理内存为 10GB。
  • 我不能再给 SQL Server 分配更多内存了——我有一台占用 4GB 空间的虚拟机、Visual Studio、Outlook、IIS 等。
  • 有点不寻常的是,它并没有真正用作服务器,而是用作开发机器,因此数据库工作负载往往很轻(尽管我说没有任何硬性指标)。

Seb*_*ine 6

如果启用了“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 工程师文章:

锁定页面、AWE、任务管理器和工作集的乐趣