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

这个问题有很多问题 – 但是它们有时可能会相互矛盾,或者没有说明如何正确地validation一切是否真正起作用 – 希望这可以是全面的。

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

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

  • / 3GB在boot.ini中。 (要增加可用的用户空间量 – 信息 )
  • / boot.ini中的PAE。 (即使没有这个开关,Windows也声称会做PAE)。
  • 在SQL Server中启用AWE。
  • 为用户系统和本地服务启用内存locking页面选项。 ( 信息 )。 累积更新4(未安装在我的服务器上)之前似乎没有使用SQL Server Standard。 ( 信息 )
  • 设置最小/最大内存为:1024Mb / 5112Mb

完成上述所有操作之后,我们肯定会看到一些改进 – 但是现在我想validation一下我的设置,确保充分利用可用的内存。 (当最大值= 7Gb时,似乎有一个放缓,所以我从这个值中减去了,但它可能只是感性的。)

为了validation,我在PerfMon中检查了以下级别:

  • 进程(sqlserv):工作集:76386304
  • SQL Server(内存pipe理器):总服务器内存:3538944(我看到一个文件,指出这不是SQL Server使用的全部内存,所以我不知道是否信任它)

所以 – 我的问题

  1. 我的最大应该在7Gb左右? 如果不是,应该是什么?
  2. 为什么总共的服务器内存在3.5G,当它被分配了5G?
  3. 分配给SQL Server的内存量的适当度量是什么? 工作集似乎有点大…
  4. 我可能会错过设置中的任何步骤?
  5. 现在开始调整caching系统的推荐资源?

谢谢

您将无法在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部署(这确实是唯一的select)。

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

FYR:

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

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