设置 SQL Server 2005 以使用 32 位 Windows Server 2003 中的所有可用内存 - 并进行验证

设置 SQL Server 2005 以使用 32 位 Windows Server 2003 中的所有可用内存 - 并进行验证

有许多类似这样的问题 - 但它们有时要么互相矛盾,要么没有显示如何正确验证一切是否正常 - 希望这可以是全面的......

我在 Windows Server 2003 R2 Standard 上运行 SQL Server 2005 SP3 Standard。我的服务器安装了 8GB 内存 - 我的系统几乎完全用作数据库服务器 - 它们上运行着一些服务,但操作系统 + 服务可以在 1GB RAM 内运行。

我做了什么(如果我做错了,请告诉我):

  • /3GB。(要增加可用的用户空间内存量 -信息
  • boot.ini 中的 /PAE。(Windows 声称即使没有此开关,也能执行 PAE。)
  • 在 SQL Server 中启用 AWE。
  • 为用户系统和本地服务启用内存页面锁定选项。(信息)。SQL Server Standard 似乎直到累积更新 4 才使用此功能,而我的服务器上尚未安装该更新。(信息
  • 将最小/最大内存设置为:1024Mb/5112Mb

完成上述所有操作后,我们确实看到了一定程度的改进 - 但我现在想验证我的设置,确保我充分利用了可用的内存。(当最大值 = 7Gb 时似乎速度变慢了,所以我偏离了该值,但这可能只是感知上的。)

为了验证,我检查了 PerfMon 中的以下级别:

  • 进程(sqlserv):工作集:76386304
  • SQL Server(内存管理器):服务器总内存:3538944(我看到一份文档指出这不是满的SQL Server 使用的内存,所以我不确定是否信任它)

所以——我的问题是……

  1. 我的最大容量应该在 7Gb 左右吗?如果不是,应该是多少?
  2. 为什么服务器总内存为 5G,但实际只有 3.5G?
  3. 分配给 SQL Server 的内存量的适当指标是什么?工作集似乎有点大……
  4. 我是否可能遗漏了设置过程中的某些步骤?
  5. 关于现在开始调整缓存系统,有没有什么推荐的资源?

谢谢

答案1

您将无法在 Windows 2003 Standard 中使用 AWE。您需要 Enterprise,请参阅Windows Server 2003 和 Windows 2000 均支持大内存

PAE 是 IA32 处理器新增的功能,用于处理超过 4 GB 的物理内存。以下操作系统可以使用 PAE 来利用超过 4 GB 的物理内存:

* Microsoft Windows 2000 Advanced Server
* Microsoft Windows 2000 Datacenter Server
* Microsoft Windows Server 2003, Enterprise Edition
* Microsoft Windows Server 2003, Datacenter Edition

要启用 PAE,请使用 Boot.ini 文件中的 /PAE 开关。

您看到的工作集是 7MB,而不是 7GB。这是进程的正常工作集,因为工作集不衡量内存量已分配到某个进程,但只有工作集它总是小得多:

显示此进程工作集中的当前字节数。工作集是进程中的线程最近接触的内存页面集。如果计算机中的可用内存超过某个阈值,即使页面未被使用,也会留在进程的工作集中。当可用内存低于某个阈值时,页面将从工作集中删除。如果需要这些页面,则在离开主内存之前,会通过软故障将它们重新放回工作集中。

你需要看看Process\Virtual Bytes

显示进程正在使用的虚拟地址空间的当前大小(以字节为单位)。使用虚拟地址空间并不一定意味着相应地使用磁盘或主内存页面。虚拟空间是有限的,如果使用过多,进程可能会限制其加载库的能力。

SQL Server 内存为 3GB,这是它在 Windows 标准上使用 /3GB 开关可以分配的全部内存。

因此,您需要购买企业版 Windows 许可证,或者简单地转移到 64 位操作系统和 64 位 SQL 部署(这实际上是唯一明智的选择)。

答案2

如果没有 64 位操作系统,您将无法使用全部 8GB 内存。

答案3

马其顿共和国:

对于 32 位 Windows 2003 标准版,最大内存限制为 4GB。

http://msdn.microsoft.com/en-us/library/aa366778(VS.85).aspx

相关内容