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

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

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

在 RAMMap 中的“物理页面”选项卡上,所有 AWE 页面的“进程”列均为空。

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

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

我有三个问题:

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

答案1

SQL服务器帐户是否有“锁定内存中的页面”选项?

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

您不希望 SQL 使用 AWE 的具体原因是什么?

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

  • 在 64 位系统上(2005+):
  • AWE 不是必需的(事实上启用它也不会产生任何作用)
  • 启用“内存中的锁定页面”权限可防止缓冲池内存(以及任何使用一次单页内存分配的内容)被调出
  • 当设置“内存中的锁定页面”权限时,SQL Server 使用 Windows AWE API 进行内存分配,因为它的速度更快
  • 标准版和企业版均支持“内存中的锁定页面”(请参阅​​此博客文章以了解如何在标准版中启用它)

也可以看看: 锁定页面、AWE、任务管理器和工作集的乐趣……- 这解释了为什么设置“使用 AWE”为 false 实际上并不能阻止使用 AWE(它仅与 32 位相关)

相关内容