为什么我的 SQL Server 使用 AWE 内存?为什么这在 RAMMap 中不可见?

Mar*_*ica 5 windows memory sql-server

我们有一个 Windows Server 2008 R2(64 位)8GB 服务器,根据 Sysinternals RAMMap,使用 AWE 分配了 2GB 内存。据我了解,这意味着这些页面保留在物理内存中,永远不会被推出。这会导致其他应用程序被推出物理内存。

在 RAMMap 的 Physical Pages 选项卡上,所有 AWE 页面的 Process 列都为空。

我们在那个盒子上运行 SQL Server,但是(通过 SQL Server Management Studio,在服务器属性 -> 内存,在服务器内存选项下)它说配置为不使用 AWE。

但是,当停止SQL Server 时,AWE 页面突然消失了。所以它确实是罪魁祸首。

所以我有三个问题:

  • 为什么 RAMMap 不知道/显示 SQL Server 进程负责该 AWE 内存?
  • 为什么SQL Server Management Studio 说AWE 内存没有使用?
  • 我们如何配置 SQL Server 以真正不使用 AWE 内存?

Mar*_*wul 3

SQL Server 帐户是否有“锁定内存页”选项?

\n\n

简而言之,1)这种方式分配速度更快,2)SQL 需要防止其内存被调出。

\n\n

您不希望 SQL 使用 AWE 有什么具体原因吗?

\n\n

参考:http://www.sqlskills.com/blogs/paul/a-sql-server-dba-myth-a-day-530-awe-must-be-enabled-on-64-bit-servers/

\n\n
\n
    \n
  • 在 64 位系统 (2005+) 上:
  • \n
  • 不需要 AWE(事实上启用它没有任何作用)
  • \n
  • 打开“内存中的锁定页”权限可防止缓冲池内存(以及任何使用一次单页\n内存分配的内容)被换出页面
  • \n
  • 设置“内存中的锁定页面”权限后,SQL Server 使用 Windows AWE API 进行内存分配,因为速度更快一点
  • \n
  • 标准版和企业版支持“内存中的锁定页面”(有关如何在标准版中启用它的信息,请参阅此博客文章)
  • \n
\n
\n\n

另请参阅:\n锁定页面、AWE、任务管理器和工作集的乐趣\xe2\x80\xa6 - 这解释了为什么设置“使用 AWE”为 false 实际上并不会阻止使用 AWE(它只是相关的)在 32 位上)

\n