Windows 32操作系统中虚拟内存的性能设置(sql)
2009-06-27 11:27
281 查看
如果你使用的是64位的硬件,并安装64位版本的操作系统和SQL数据库,那么不需担心3GB,PAE,AWE等32位硬件所需的设置
Windows 32 操作系统执行的应用程序都认为本身最戏码拥有2GB的连续内存(称虚拟内存),当应用程序在访问内存是,操作系统会将其映射(mapping)到某块物理内存,若不足,操作系统就把物理内存中某些较少用到的区块写至硬盘。
应避免让数据库的文档与操作系统交换文档放在同一颗实例硬盘中。以避免互争硬盘的状况。
虚拟内存地址列表 ----> PageTable ----> 真实内存 / 磁盘
=========== ======== =======
--
若要启动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的内存。
微软在其上生成AWE API,让应用程序可以实例固定寻址2的36次方内存空间,即64GB。
SQL Server 支持AWE选线,可扩充32位应用程序的功能,允许访问与操作系统一样多的物理内存。AWE将64GB的子集对应到至用户地址空间来完成此项工作。应用程序缓冲集区和AWE内存之间的对应,是通过Windows虚拟内存数据表的操作来处理。
相关系细节可参阅SQL Server 联机丛书。
程序中寻址空间内的分页(page)有三种状态:free, reserved, committed.
通过性能计数器的 Process: Working Set, Process: Working Set Peak 与 Process: Page Faults/Sec 可以看到属于某个程序的工作组运行情形。
按照分配的方式可分为:
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
如下图:
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无法正确的显示提供某个程序使用的内存大小。
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
如下图:
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无法正确的显示提供某个程序使用的内存大小。
相关文章推荐
- Windows200864位操作系统下的SQLPLUS.EXE 无法找到入口解决办法和Oracle环境变量的设置
- Windows200864位操作系统下的SQLPLUS.EXE 无法找到入口解决办法和Oracle环境变量的设置
- Windows Linux Unix 系统的兼容性能与操作系统之间的相对比较
- windows系统下 虚拟内存设置终极攻略
- 解决X64操作系统PL/SQL连接报错问题 make sure you have the 32 bits oracle client installed
- 设置windows性能监视器
- 支持多操作系统和多区域设置,包括Windows, MAC, Linux和Unix
- 在Windows操作系统下通过PL/SQL连接到VM中Linux安装的Oracle
- 64 位 windows 2003 server sp2 操作系统安装 sql 2008 数据库
- Windows性能查看器:系统的性能信息(I/O,IIS最大连接数,Sql) ,以及解决 asp.net IIS 一二百多用户并发
- 解决X64操作系统PL/SQL连接报错问题 make sure you have the 32 bits oracle client installed
- 解决X64操作系统PL/SQL连接报错问题 make sure you have the 32 bits oracle client installed
- Windows 2008 server 64位英文操作系统下PL/SQL中文乱码
- 通过sqlserver sa密码修改windows操作系统密码
- 操作系统管理内存的机制——为什么要设置虚拟内存
- LR-性能-windows Resources设置
- 根据不同的操作系统(64/32),设置文件以64位运行。又可解决问题:“试图加载不正确的程序”。
- 异常详细信息: System.Data.SqlClient.SqlException: 无法打开物理文件 。。。 操作系统错误 32:"32(另一个程序正在使用此文件,进程无法访问。
- 【怎么设置Windows 7系统虚拟内存技巧】
- 解决X64操作系统PL/SQL连接报错问题 make sure you have the 32 bits oracle client installed