Windows 32操作系统中虚拟内存的性能设置(sql)

 

  如果你使用的是64位的硬件,并安装64位版本的操作系统和SQL数据库,那么不需担心3GB,PAE,AWE等32位硬件所需的设置

 

  Windows 32 操作系统执行的应用程序都认为本身最戏码拥有2GB的连续内存(称虚拟内存),当应用程序在访问内存是,操作系统会将其映射(mapping)到某块物理内存,若不足,操作系统就把物理内存中某些较少用到的区块写至硬盘。

 

  应避免让数据库的文档与操作系统交换文档放在同一颗实例硬盘中。以避免互争硬盘的状况。

 

 

虚拟内存地址列表       ---->         PageTable         ---->        真实内存 / 磁盘

===========                       ========                      =======

 

 

--

虚拟内存 Virtual Menory Space

  默认安装好操作系统后,会自动在硬盘上分配一块物理内存1.5倍的交换空间,其名称为pagefile.sys。我们可以 重新设置交换文件,让他散布在各实际硬盘上,如此可提升虚拟内存运行的性能。但不建议设置在RAID磁盘驱动器上,因为它不需要容错的机制。

 

 

内存寻址空间 Virtual Address Space

  由于虚拟内存可以自行设置要在硬盘上建立其交换文档的大小,因此一般受限制于CPU与操作系统的寻址能力,以32位的CPU与操作系统而言,寻址空间是2的32次方,也就是4294967296字节(4GB)。

 

 

3GB

  所有32位的应用程序都有4GB进程地址空间。Windows操作系统会提供应用程序2GB进程地址空间的访问权限,即所谓的用户模式虚拟地址空间。应用程序拥有的所有线程都共享相同的用户后市虚拟地址空间。剩余的2GB由操作系统保留(该地址也称内核模式地址空间)。

  若要启动3GB用户模式进程空间,必须在boot.ini文件中加入/3GB参数,重启生效。该设置可溶用户的应用程序线程获得3GB的进程地址空间,并保留1GB的进程地址空间给操作系统。

multi(0)disk(0)rdisk(0)partition(0)/Windows="Windows Server 2003, Enterprise" /fastdetect/PAE/3GB

"/PAE/3GB'一起使用,会限制只能使用16GB的内存。

 

 

 

PAE和AWE  Physical Addressing Extensions and Address Windows Extension

  Intel在Xeon系列的CPU上,特别延伸了4条寻址线,并提供Windows2000版本后操作系统的PAE架构。若要启用PEA用户模式进程空间的支持,必须在bool.ini文件中加入/PEA参数,重启生效。

  微软在其上生成AWE API,让应用程序可以实例固定寻址2的36次方内存空间,即64GB。

  SQL Server 支持AWE选线,可扩充32位应用程序的功能,允许访问与操作系统一样多的物理内存。AWE将64GB的子集对应到至用户地址空间来完成此项工作。应用程序缓冲集区和AWE内存之间的对应,是通过Windows虚拟内存数据表的操作来处理。

相关系细节可参阅SQL Server 联机丛书。

 

 

 

 

Reserving和Committing Virtual Memory

  Windows 操作系统提供两阶段的内存访问机制,应用程序可通过系统API选择性的采用这套机制:先保留(reserve)寻址空间,再使用(commit)该空间的实例,不管该实例是在内存上还是硬盘文档中。(尚未真正非配(先保留)的内存空间称 backing store)

程序中寻址空间内的分页(page)有三种状态:free, reserved, committed.

 

 

 

 

工作组 Working Set

  程序的虚拟内存空间中,真正存在物理内存的部分。

通过性能计数器的 Process: Working Set, Process: Working Set Peak 与 Process: Page Faults/Sec 可以看到属于某个程序的工作组运行情形。

 

 

分页错误 Page Fault

  参照到不在working set 中的分页就称为分页错误。这时需要重新分配该页的内存。

按照分配的方式可分为:

hard page fault: 需要重硬盘上的分页文档或 memory-mapped文档读出。

soft page fault:从其他的内存结构中,如 modified,standby, free 或 zero page transition list 中取出。

 

 

 

AWE模式激活:

sp_configure 'show advanced options', 1
RECONFIGURE
GO

sp_configure 'awe enabled', 1
RECONFIGURE

 

如下图:

AWE config

32位的CPU与操作系统受限制于寻址能力(Max=4GB),3GB功能只是在分配多少内存给应用程序,多少内存留给操作系统。

Intel Pentium Pro/Xeon 系列的CUP与“物理地址扩展(Physical Address Extension, PAE)”技术,可让:

Windows 2000 Advanced Server 访问8GB内存,Windows 2000 Data Center 访问64GB内存,Windows Server 2003 Enterprise/DataCenter 访问64GB内存。应用程序用微软提供的“地址窗口扩展(Addres Windows Extension, AWE)” API来使用这些内存。

 

注意:

激活PAE时,执行SQL服务的账号需要有"Lock Pages In Memory"权限,应为它需要锁定一块原来2GB内的用户内存块,以应对延伸出去的物理内存,

激活后,Task Manager无法正确的显示提供某个程序使用的内存大小。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值