我们有一台
Windows Server 2008 R2(64位)8GB服务器,根据Sysinternals
RAMMap,使用AWE分配2GB内存.据我所知,这意味着这些页面保留在物理内存中,永远不会被推出.这会导致其他应用程序被推出物理内存.
在RAMMap中,在Physical Pages选项卡上,Process列对于所有AWE页面都是空的.
我们在该框上运行sql Server,但是(通过sql Server Management Studio,在“服务器属性” – >“内存”下,在“服务器内存选项”下),它表示配置为不使用AWE.
但是,当停止sql Server时,AWE页面突然消失了.所以这真的是罪魁祸首.
所以我有三个问题:
>为什么RAMMap不知道/显示sql Server进程负责该AWE内存?
>为什么sql Server Management Studio会说不使用AWE内存?
>我们如何使sql Server配置为真正不使用AWE内存?
解决方法
sql Server帐户是否具有“内存中的锁定页面”选项?
简而言之,1)分配这种方式要快一些,并且2)需要sql来防止其内存被分页.
您是否有特定原因要求sql使用AWE?
- On 64-bit systems (2005+):
- AWE is not required (and in fact enabling it does nothing)
- Turning on the “Locked Pages in Memory” privilege prevents the buffer pool memory (and anything that uses single-page-at-a-time
memory allocations) from being paged out- When the “Locked Pages in Memory” privilege is set,sql Server uses the Windows AWE API to do memory allocations as it’s a little bit
faster- “Locked Pages in Memory” is supported by Standard and Enterprise editions (see this blog post for how to enable it in Standard edition)
也可以看看:
Fun with Locked Pages,AWE,Task Manager,and the Working Set… – 这解释了为什么设置“use AWE”为false并不会实际阻止使用AWE(它仅与32位相关)