这对我来说是新闻。我总是对32位操作系统只能寻址2 ^ 32(即4GB RAM)的印象。期。
但是,这是什么-http: //www.crucial.com/uk/kb/answer.aspx ? qid=3743 & click=true?
这怎么可能?而且这是否还意味着每个进程> 4GB?即如果我有IIS,ASP.NET是否可以分配超过4GB?
编辑:感谢您的答复。为了说明这一点,这是针对Web开发的。如此看来w3wp.exe(ASP.NET辅助进程)仍将限制为4GB?这是真的?
谢谢邓肯
这对我来说是新闻。我总是对32位操作系统只能寻址2 ^ 32(即4GB RAM)的印象。期。
但是,这是什么-http: //www.crucial.com/uk/kb/answer.aspx ? qid=3743 & click=true?
这怎么可能?而且这是否还意味着每个进程> 4GB?即如果我有IIS,ASP.NET是否可以分配超过4GB?
编辑:感谢您的答复。为了说明这一点,这是针对Web开发的。如此看来w3wp.exe(ASP.NET辅助进程)仍将限制为4GB?这是真的?
谢谢邓肯
Answers:
一些32位处理器上的MMU实际上可以支持超过4GB的物理RAM,尽管单个进程一次只能在其虚拟地址空间中看到4GB。这种CPU可以配备超过4GB的RAM,并且可以使用总共超过4GB的RAM支持多个进程。但是,单个进程在任何给定时间只能使用4GB RAM(减去操作系统的一些开销)。
在Xeon上,此功能称为物理地址扩展(PAE),某些操作系统具有API,这些API允许进程操纵MMU在进程的虚拟地址空间内外交换物理内存。在Windows上,此API被称为地址窗口扩展(AWE),但并非在所有Windows版本上都可用。Linux和其他种类的Unix支持类似的机制。
为了使用此功能,必须明确设计程序以支持该程序-AWE不会自动扩展进程的虚拟地址空间。例如,尽管我不知道IIS支持,但某些版本的SQL Server支持它。
编辑:我们走了。找到了。 Stackoverflow上的此帖子链接了有关PAE机制的更多详细信息。
编辑2:如果可以相信此论坛发布,则IIS不支持AWE。
使用PAE可以在32位上寻址超过4GB 。有关进程内存限制,您可以阅读Bruce Sanderson的Windows常规信息。RAM,虚拟内存,PageFile和所有其他内容
有关每个进程的内存,请阅读上面“常规Windows信息”链接上的1.2节(“地址空间和进程”)和2.5节(“应用程序内存调整-/ 3GB开关”)。
此处仅作记录,Windows 2003的更高版本(企业和数据中心)可以使用大于4GB的内存。我有一台具有14GB RAM的HP DL380,W2K3 EE看到了全部14GB。VMWare Server能够使用超过4GB。我们用ESXi 3.5 U3替换了W2K3,它能够使用全部14GB。
根据我的阅读,Microsoft尝试在其他版本的Windows(例如XP)上启用它,并发现内存大于4GB时许多驱动程序出现问题。至少部分问题是DMA(硬件的内存地址将被截断为32位并开始破坏内存)。因此,对于大多数较旧版本的Windows,都有一个SP摆脱了PAE,以防止稳定性问题。