32位Windows服务器地址> 4GB RAM-如何?


8

这对我来说是新闻。我总是对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?这是真的?

谢谢邓肯


稍作谷歌搜索就可以得出合理的引用,断言IIS不支持AWE,因此我认为可以假设您分配的空间不能超过3GB(4GB-系统开销)是非常安全的。
ConcernedOfTunbridgeWells,2009年

Answers:


14

一些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。



2

此处仅作记录,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,以防止稳定性问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.