Windows 32bit 系统如何识别,使用 3GBytes 以上内存

Windows 2003 Server

转帖来自 : http://blog.fufuok.com/Article/Windows_2003_4G.aspx

 

前阵子为爱机配置了4G内存,使用32位 Windows Server 2003,平时使用 Photoshop 退出程序的时候有时会出现内存错误。

程序也重新安装过,除了PS不是原版程序的兼容性原因外,在网上搜索了一下关于Windows 2003 4G内存方面的原因。

我只知道 Windows XP 32位是不支持4G内存的,默认只能检测到3.25G。

而Windows Server 2003 Enterprise Edition(企业版):

* 支持8节点集群、NUMA;支持8路SMP 
* 内存支持: (i386)32位版支持32GB内存 (X64)64位版支持64GB内存

Windows 2003 默认只支持小内存模式(最大3G),大于3G需要编辑Boot.ini加 /pae 参数开启大内存模式才能支持3G以上内存,按以上操作编辑Boot.ini重新启动仍有问题就是你内存兼容有问题。

下面给出一个 Win2003 boot.ini  的例子:

[boot loader] 
timeout=0 
default=multi(0)disk(0)rdisk(0)partition(1)/WINDOWS 
[operating systems] 
multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="Windows Server 2003, Enterprise" /fastdetect /usepmtimer /NoExecute=OptIn /PAE

背景知识:

Windows Server 2003 Web版:为快速开发、部署Web服务与应用程序,提供Web托管与服务平台。支持2路SMP(对称多处理)系统、2GB内存。 
Windows Server 2003标准版:面向中小型企业和部门级应用。支持4路SMP、4GB内存。 
Windows Server 2003企业版:适合中心与大型组织使用,有32位和64位两个版本。支持8节点集群、NUMA;支持8路SMP,其中32位版支持32GB内存,64位版支持64GB内存。 
Windows Server 2003数据中心版:面向要求强伸缩性和高可用性的企业,有32位和64位两个版本。32位版支持32路SMP、64GB内存;64位版支持64路SMP、512GB内存;两个版本均支持8节点集群、NUMA 
要启用 Windows 2003 支持大于4GB的物理内存,必须将参数 /pae 添加到 boot.ini 文件中。

物理地址扩展 (PAE) 和地址窗口化扩展 (AWE)

PAE 提高了 IA32 处理器处理大于 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 来利用超出 4GB 的物理内存。若要启用 PAE,需要在 Boot.ini 文件中使用 /PAE 参数。

注意:只有在服务器使用热添加内存设备时,Windows Server 2003 Enterprise Edition 和 Windows Server 2003 Datacenter Edition 才自动启用 PAE。在这种情况下,不需要在配置为使用热添加内存设备的系统上使用 /PAE 开关。在其他情况下,必须在 Boot.ini 文件中使用 /PAE 开关来利用大于 4GB 的内存。

典型情况是,在 Windows 2000 或 Windows Server 2003 下运行的进程最多可以访问 2 GB 的内存地址空间(假设未使用 /3GB 参数),其中一些内存是物理内存,另一些是虚拟内存。运行的程序越多(因而进程也越多),占用的内存地址空间也就越接近 2 GB 这一最大值。

当出现这种情况时,分页进程将显著增加并且会对性能产生负面影响。Windows 2000 和 Windows Server 2003 内存管理器使用 PAE 向程序提供更多的物理内存。这会降低对交换页面文件内存的需要,从而提高了性能。程序本身并不知道实际的内存大小。所有的内存管理和 PAE 内存分配都由内存管理器处理,与运行的程序无关。

当使用 /3GB 参数时,上述信息对于运行的程序有效。要求 3 GB 内存的程序更有可能让其所需的内存有更多部分在物理内存中,而不是在分页的虚拟内存中。这将增强那些能够使用 /3GB 参数的程序的性能。但例外情况是当 /3GB 参数与 /PAE 参数一起使用时。在这种情况下,操作系统将不使用任何超过 16 GB 的内存。此行为是由内核虚拟内存空间考虑导致的。因此,如果系统使用 Boot.ini 文件中的 /3GB 项重新启动,并且系统的物理内存超过 16 GB,则操作系统不使用额外的物理随机存取内存 (RAM)。重新启动计算机时如果不使用 /3GB 开关,将能够使用所有的物理内存。

AWE 是内存管理器功能的一套应用程序编程接口 (API),它使程序能够寻址更多内存 — 超过标准 32 位寻址的 4 GB 内存空间。AWE 使程序能够将物理内存保留为非分页内存,然后将非分页内存部分动态映射到程序的内存工作集。此过程使内存密集型程序(如大型数据库系统)能够为数据保留大 量的物理内存,而不必交换分页文件以供使用。相反,数据在工作集中进行交换,并且保留的内存超过 4 GB 范围。此外,超出 4 GB 的内存范围对内存管理器是公开的,并且 AWE 通过 PAE 发挥作用。没有 PAE,AWE 就无法保留超出 4 GB 的内存。

以下是一个 Boot.ini 文件的示例,其中已添加了 PAE 开关: 
[boot loader] 
timeout=30 
default=multi(0)disk(0)rdisk(0)partition(2)/WINDOWS 
[operating systems] 
multi(0)disk(0)rdisk(0)partition(2)/WINDOWS="Windows Server 2003, Enterprise" /fastdetect /PAE

总之,PAE 是 Windows 2000 和 Windows Server 2003 内存管理器的一项功能,它为请求内存的程序提供了更多物理内存。程序并不知道它正使用的内存中有些在大于 4 GB 的范围内,正如程序不知道它请求的内存实际上是在页面文件中一样。

AWE 是一个 API 集,它使程序能够保留大内存块。保留的内存是非分页的,并且只可以由该程序来使用。

一段来自cnBeta网友评论中的话:

我们都知道内存寻址不能超过3.5G,其中只有2G是给程序的,剩下1G是给内核的,Server 32bit用的pae算是一种技术,但是效能低下,远比不上64的系统。

我装的 Windows 2003 Datacenter 版,内存显示正常,据网友说 Vista SP1 解决了支持4G内存的问题,难道2003也出补丁修补了?XP呢,网友都反映XP无法正常识别4G内存。

研究还不太确切,不过可以记住一句话:

要让32位 Windows 2003 支持大于4G内存,需要修改 Boot.ini 文件,在启动项后加上 /PAE 。

XP系统在 Boot.ini 中加上‘/execute=optin ’试试,即:

multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="Microsoft Windows XP Professional" /execute=optin /fastdetect

 

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

Windows 2003 Server EE 版本:

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

 

Windows XP 系统

转帖来至 : http://benyouhui.it168.com/viewthread.php?tid=800541

 

TITAL:Windows XP SP3 32bit 4G内存使用方案

FROM: http://www.maizero.net/Article_110368
BY:Maizero
     三更半夜睡不着爬起来逛坛子,发现有人还是对32位XP上4G内存纠缠不清的在问,于是发个帖子把自己的使用方法SHOW下。   首先,系统能否认出4G内存和系统是32位还是64位无关,这点在32位的2000系统在服务器硬件平台上能正常的使用8G内存就可以说明。其次,能不能在32位XP下“用”到4G内存,取决你的BIOS里能不能正常识别出4G内存,如果你板子不支持,BIOS也不识别,那系统层面再怎么努力也枉然了。
  OK,我假设你主板已经认到4G但是系统只认到3G。

  如果本子的显卡会动态共享你的内存,希望你知道,也是从这3G里扣的,而不是它吃掉了你的1G。

  看,我的显卡就扣了我的384M内存动态共享了。

  OK,为了更节约内存,“省”出来给我们的应用程序使用,我有必要在boot.ini里开启XP的3G模式,意义何在?看官劳烦搜索下~既然今天是讲我的方案的话,这里就不科普了。

  

 

  然后我们用Gavotte RAMDisk挖出那系统不认识的1G内存,虚拟成一个1G的硬盘,有什么用等下分晓。

  注意,要导入一个注册表文件,好让那RAMDISK的驱动能开启PAE模式,这样才能认到那1G“消失了的内存”。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/RRamdisk/Parameters]
"UsePAE"=dword:00000001

  

 

  这样成功后,我们多出一个内存虚拟的硬盘,但是实际上,查看任务管理器里的内存“可用数”并没有改变。如果失败,现象是PF使用立马加大1G,可用数减少1G。为什么失败?看下面分解。

 

  有人说,要XP在最后能挖出系统不认的那1G内存,需要在boot.ini里开启PAE模式,经过我测试,不行。加上/PAE后,反而让RAMDISK从3G里挖内存……这就是很多人为什么用了RAMDISK,但是任务管理器里的可用内存会变少,PF使用量立马变大(没能挖出那1G的表现)的原因。

  好,我们开始设置系统缓存的环境变量,指向这个虚拟盘,这样的好处是应用程序临时交换文件的目录不用读写磁盘,毕竟内存虚拟盘的速度比硬盘快多了。

  我们把虚拟内存也设置到这个盘里。

  很多人到这里就喜欢设置IE的缓存指向这个盘,但是这个虚拟盘有个毛病,一重启了啥都没了,临时文件和页面文件倒无所谓,但是我们的浏览器记录啊、COOKIES啊(记录论坛登陆状态、密码什么的)重启就没了,每次登陆论坛都要输入密码,多烦人啊,其实可以用另外一个SuperSpeed RAMDISK解决。它虚拟出的内存盘重启后,可以恢复里面的COOKIES等内容,具体设置自己搜索下吧。

  我设置的128M的虚拟盘,给IE缓存用,这样开网页,基本不写硬盘,速度较快(明显)。

 

  既然用到SuperSpeed的RAMDISK,就不能不提到SuperSpeed的Supercache II,这也是今天我想写这个帖子的原因,因为这个软件对降低硬盘速度过慢带来的瓶颈有较大的作用(经过测试工具测试和直观使用感觉得知,非YY)。
  我是给非系统盘(2个)设置了384M的缓存,具体参数设置我给的截图是参考。软件有个毛病就是,如果给系统盘(我的是C盘)开启缓存,会进不了系统……(XP滚动条一直在滚,有的是黑屏)。
  

  另外,用THINKPAD的朋友会郁闷,XP下讯盘成了摆设,不过有一个软件倒是可以模仿讯盘的作用,eBoostr可以加快系统的启动速度(明显)。
  我是给分配了512M的内容作为预读。


  自此,你用测试软件测试,和之前的系统整体速度,有一定的提升了,当然,这只是想办法充分利用到4G内存的一个方案罢了,如果想真的飞快,还是更新硬件平台吧~期待SSD硬盘+7200转的大容量数据盘……贴上使用软件方案前后的硬盘测试数据对比。

  

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值