sql server awe怎么设置

sql server awe怎么设置,第1张

由于32位Windows用户进程有4GB的虚拟地址空间。其中2GB给核心态,剩下2GB给用户态。这两部分严格分开。Windows不会因为其中某一块

内存地址空间用尽而将另外一块的空间让出。

由于SQLSERVER的绝大部分指令都运行在用户态下,就是说SQLSERVER的内存基本上使用用户态地址空间资源。现在的情况是2GB地址空间资源

对于SQLSERVER来说严重阻碍了SQLSERVER有效利用硬件资源

所以SQLSERVER引入了AWE address windowsing extensions(地址空间扩展)。这是允许32位应用程序分配64GB物理内存,并把视图或窗口

映射到2GB虚拟地址空间的机制。

使用AWE,使得一个应用程序能够访问最多达64GB的物理内存!!!

在SQL2000的企业版,SQL2005/2008的企业版和标准版都支持这个技术,也能够享受这个技术带来的好处

开启这个功能的语句,执行完之后,重启SQLSERVER服务即可

1 EXEC sys.sp_configure @configname = 'AWE Enabled', -- varchar(35)

2 @configvalue = 1 -- int

3 RECONFIGURE

4 GO

AWE具体实现图

有几点需要注意的:

(1)开启这个功能需要SQLSERVER启动帐户在Windows上的lock pages in memory权限。没有这个权限,AWE就不能成功被开启。

启动的SQLSERVER这时候只能使用2GB的地址空间。

所以DBA要确认一下SQLSERVER的errorlog里有没有相关的信息

成功开启:server Address Windowing Extensions enabled

消息

Address Windowing Extensions is enabled. This is an informational message onlyno user action is required.

开启失败:Cannot use Address Windowing Extensions because lock memory privilege was not granted

(2)这个功能是在应用层面有意识地使用,而不是在Windows层面实施的。也就是说SQLSERVER在申请内存时,通过特殊API调用申请到的,

如果SQLSERVER不调用这个功能,就还会在普通的2GB虚拟地址空间申请内存。在SQLSERVER中不是所有的内存申请都会调用AWE技术,

只有先reserve,再commit的内存调用,SQLSERVER才使用AWE让他们使用到扩展的内存。其他方式申请的内存只能使用普通的2GB地址空间。

正因为这样,AWE不能称为解决SQLSERVER地址空间不足的最终解决方案。使用64位的服务器,虚拟地址空间可以达到8TB,

大于现在绝大多数的单个服务器的物理内存数。在64位下运行的SQLSERVER,其性能往往比在32位上有比较明显的提高。

最后附上各个版本Windows上支持的最大内存数

配置 应用虚拟地址空间大小最大物理内存数 是否支持AWE/locked pages support

32位SQLSERVER 2GB64GB YES

32位SQLSERVER + /3GB boot.ini参数 3GB16GB YES

32位SQLSERVER 应用在x64位 *** 作系统(WOW) 4GB64GB YES

32位SQLSERVER 应用在IA64 *** 作系统(WOW)2GB 2GB NO

64位SQLSERVER 应用在x64 *** 作系统 8TB 2TBYES

64位SQLSERVER 应用在IA64 *** 作系统 7TB 2TBYES

SQL Server 支持地址窗口化扩展插件 (AWE),从而允许在 32 位版本的 Microsoft Windows *** 作系统上使用超过 4 GB 的物理内存,最多可支持 64 GB 的物理内存。默认情况下,禁用 Windows 策略“锁定内存页”选项。对于 32 位 *** 作系统,在将 AWE 配置为用于 SQL Server 之前,必须授予“锁定内存页”权限,必须启用此权限才能配置地址窗口化扩展插件 (AWE)。此策略将确定哪些帐户可以使用进程将数据保留在物理内存中,从而阻止系统将数据分页到磁盘的虚拟内存中。在 32 位 *** 作系统中,如果在不使用 AWE 的情况下设置此权限会显著降低系统性能。

如何启用“锁定内存中的页”选项:

1.在“开始”菜单上,单击“运行”。在“打开”框中,键入 gpedit.msc。

将打开“组策略”对话框。

2.在“组策略”控制台上,展开“计算机配置”,再展开“Windows 设置”。

3.展开“安全设置”,再展开“本地策略”。

4.选择“用户权利指派”文件夹。

细节窗格中随即显示出策略。

5.在该窗格中,双击“锁定内存中的页”。

6.在“本地安全策略设置”对话框中,单击“添加”按钮。

7.在“选择用户或组”对话框中,添加有权运行 sqlservr.exe 的帐户。

若要使 32 位 *** 作系统支持 4 GB 以上的物理内存,则必须向 boot.ini 文件添加 /pae 参数并重新启动计算机。

使用如下语句启用AWE并配置实例所使用的缓冲池内存量:

sp_configure 'show advanced options', 1RECONFIGUREGOsp_configure 'awe enabled', 1RECONFIGUREGO sp_configure 'min server memory', 2048RECONFIGUREGOsp_configure 'max server memory', 4096RECONFIGUREGO 或在“服务器内存选项”下,选择“使用 AWE 分配内存”,并分配最小/最大服务器内存。

由于 *** 作系统上运行的 SQL Server 2005 不支持动态分配 AWE 映射内存,因此,强烈建议为每个实例都设置 max server memory 选项,且所有实例的 max server memory 值的总和应小于计算机的总物理内存。转载

使用 SQL Server 性能监视器 Total Server Memory (KB) 计数器可以确定在 AWE 模式下运行的 SQL Server 实例所分配的内存量,也可以从 sysperfinfo 中选择内存使用量来确定实例所分配的内存量。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6353612.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-20
下一篇 2023-03-20

发表评论

登录后才能评论

评论列表(0条)

保存