ITPub博客

首页 > Linux操作系统 > Linux操作系统 > [收集]管理 AWE 内存

[收集]管理 AWE 内存

原创 Linux操作系统 作者:sanxiagirl 时间:2009-04-17 16:03:37 0 删除 编辑

管理 AWE 内存

Microsoft® SQL Server™ 2000 使用 Microsoft Windows® 2000 Address Windowing Extensions (AWE) API 以支持非常大的内存空间。SQL Server 2000 可使用 Windows 2000 Advanced Server 或 Windows 2000 Datacenter Server 允许使用的所有内存空间。有关 AWE API 的更多信息,请在 MSDN® Online Microsoft Web 中搜索"awe memory"主题。

说明  仅有 SQL Server 2000 企业版和开发版提供此项功能。

使用 AWE 内存

若要使用 AWE 内存,必须在 Windows 2000 帐户下运行 SQL Server 2000 数据库引擎,并且已为该帐户指派了 Windows 2000 的"锁定内存页"特权。

SQL Server 安装程序将自动授予 MSSQLServer 服务帐户使用"锁定内存页"选项的权限。如果正在使用 sqlservr.exe 从命令提示符下启动 SQL Server 2000 实例,则必须使用 Windows 2000 组策略实用工具 (gpedit.msc) 为交互式用户帐户手工指派该权限,否则在未作为服务运行时,SQL Server 将不能使用 AWE 内存。

启用锁定内存页选项

若要使 SQL Server 2000 实例能够使用 AWE 内存,应设置 sp_configure 选项为 awe enabled。然后,重新启动 SQL Server 以激活 AWE。因为从 SQL Server 启动到 SQL Server 关机这段时间内一直启用 AWE 选项,所以,当 awe enabled 处于使用状态时,SQL Server 将通过向 SQL Server 错误日志发送"已启用 Address Windowing Extension"消息通知用户。有关 awe enabled 配置选项的更多信息,请参见 awe enabled 选项

有关使用 AWE 内存的更多信息,请参见 Windows 2000 文档。

AWE 内存和系统资源

当启用 AWE 内存时,SQL Server 2000 实例并不动态管理地址空间的大小。因此,当启用 AWE 内存并启动 SQL Server 2000 实例时,将出现以下情况:

  • 如果已设置 sp_configure max server memory 并且计算机上至少有 3 吉字节 (GB) 的可用空间,则实例将获得 max server memory 所指定的内存空间。如果计算机上可用内存空间小于 max server memory(但大于 3 GB),则实例将获得几乎所有的可用内存,并可能至多剩下 128 兆字节 (MB) 的可用内存。

  • 如果尚未设置 max server memory 并且计算机上至少有 3 GB 的可用内存,则实例将获得几乎所有的可用内存并可能至多剩下 128 MB 的可用内存。

  • 如果计算机上可用内存不足 3 GB,则动态分配内存,并且,不管 awe enabled 的参数设置如何,SQL Server 都将以非 AWE 的模式运行。
评估内存使用

不能将使用 AWE 的 SQL Server 2000 实例的内存池换出到页文件中。如果 Windows 2000 需要使用附加的物理内存,则必须换出其它应用程序,但这可能干扰其它应用程序的性能。

因此,必须确保除所有 SQL Server 实例使用的内存之外还有足够的内存,可满足计算机上运行的其它应用程序的虚拟内存需求。

使用系统监视器(Microsoft Windows NT® 4.0 中的性能监视器)检索有关 SQL Server 内存使用及可用内存的信息。任务管理器不为 AWE 提供准确的内存使用信息。因此,报告的 sqlservr.exe 所占用的内存量并不正确。若要获得正确的 SQL Server 内存使用情况,可使用"总的服务器内存 (KB)"性能计数器(该计数器可通过系统监视器激活),或从 sysperfinfo 中选择内存使用。有关更多信息,请参见监视内存的使用

运行多个实例

如果正在同一台计算机上运行多个 SQL Server 2000 实例,而每个实例都使用 AWE 内存,则必须确保:

  • 每一个实例都有 max server memory 设置。

  • 所有实例的 max server memory 值的总和小于计算机的物理内存量。

    如果设置总和超过了计算机的物理内存,则一些实例或者不能启动,或者其内存将小于 max server memory 中指定的内存大小。例如,假设某计算机具有 16 GB 的物理 RAM,并且该计算机上运行 3 个 SQL Server 2000 实例。此外,每个实例的 max server memory 设置为 8 GB。如果停止并重新运行所有 3 个实例,则:

    • 第一个实例启动时使用全部 8 GB 内存。

    • 第二个实例启动时使用的内存将略低于 8 GB(最多减少 128 MB)。

    • 第三个实例将以动态内存模式启动,此时只剩 128 MB 或更少的可用内存。
Windows 2000 使用考虑

针对 AWE 内存配置 Windows 2000 之前,请考虑以下事项:

  • 若要启用 Windows 2000 Advanced Server 或 Windows 2000 Datacenter Server 支持大于 4 GB 的物理内存,必须将参数 /pae 添加到 boot.ini 文件中。

  • 若要启用 Windows 2000 Advanced Server 和 Windows 2000 Datacenter Server 支持 3-GB 虚拟地址空间,必须将参数 /3gb 添加到 boot.ini 文件中。这使用户应用程序得以对 3 GB 的虚拟内存进行寻址,并为操作系统保留 1 GB的虚拟内存。

    但是,如果计算机上有超过 16 GB 的可用物理内存,Windows 2000 则需要 2 GB 的虚拟内存地址空间供系统使用,因此,只能支持 2-GB 的虚拟地址空间。

    为了使 AWE 能够使用超过 16 GB 的内存范围,应确保 boot.ini 文件中无参数 /3gb。否则,Windows 2000 将不能对超过 16 GB 的任何内存进行寻址。当在 32-GB 系统上分配 SQL Server AWE 内存时,Windows 2000 可能需要至少 1 GB 的可用内存以便管理 AWE。因此,在启用 AWE 的情况下启动 SQL Server 实例时,建议最好不要使用默认的 max server memory 设置,而应将其限制为 31 GB 或更少。

有关更多信息,请参见使用 Windows 2000 上的 AWE 内存

使用故障转移群集

如果正在使用 SQL Server 2000 故障转移群集和 AWE 内存,则必须确保所有实例的 max server memory 设置值总和小于故障转移群集内任何服务器的最小可用物理 RAM 量。如果故障转移节点的物理内存比原节点少,则 SQL Server 2000 实例可能无法启动,或者可能以比在原节点上少的内存启动。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10640532/viewspace-590817/,如需转载,请注明出处,否则将追究法律责任。

下一篇: Windows时间同步
请登录后发表评论 登录
全部评论

注册时间:2008-01-02

  • 博文量
    142
  • 访问量
    500581