32位Windows Server地址> 4GB RAM – 如何?

这对我来说是新闻。 我总是觉得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位处理器上的MMU实际上可以支持超过4GB的物理内存,尽pipe一个进程在其虚拟地址空间中一次只能看到4GB的内存。 这种CPU可以安装超过4GB的RAM,并且可以支持多个使用超过4GB RAM的进程。 但是,任何时候,一个进程只能使用4GB的RAM(减去操作系统的一些开销)。

在Xeon上,这个工具被称为物理地址扩展 (PAE),一些操作系统具有API,这些API允许进程操纵MMU来交换进出虚拟地址空间的物理内存。 在Windows上,该API被称为地址窗口化扩展 (AWE),但在所有版本的Windows上都不可用。 Linux和其他种类的Unix支持类似的机制。

为了使用这个工具,程序必须被明确地devise来支持它 – AWE不会自动扩展进程的虚拟地址空间。 例如,某些版本的SQL Server支持它,虽然我不知道IIS是这样做的。

编辑:在这里,我们去。 find了。 Stackoverflow上的这篇文章链接了PAE机制的更多细节。

编辑2:如果这个论坛张贴是相信的,那么IIS不支持AWE。

使用PAE可以在32位上处理大于4GB的数据。 对于进程内存限制,你可以阅读这个

为了logging,在Windows 2003(企业和数据中心)的高端版本,工作与> 4GB。 我有一台配有14GB内存的HP DL380,而W2K3 EE则全部是14GB。 VMWare服务器能够使用超过4GB。 我们用ESXi 3.5 U3取代了W2K3,可以使用全部14GB。

从我的阅读中,微软试图在其他版本的Windows(如XP)上启用它,发现当内存大于4GB时,许多驱动程序都有问题。 至less部分问题是DMA(硬件的内存地址将被截断为32位,并开始损坏内存)。 所以有一个SP摆脱了大多数老版本的Windows的PAE,以防止稳定性问题。

这里是关于这个复杂主题的文章列表:

http://blogs.msdn.com/oldnewthing/archive/2004/08/22/218527.aspx