Windows / 3gb交换机如何与物理内存相关联?

我有一个32位Windows服务器与4 GB的RAM。

从阅读networking上的各种文章,我了解到启用boot.ini中的/ 3GB开关意味着我的4 GB的RAM,3可以分配给用户模式的内存。 如果没有交换机,用户模式只能使用2 GB,系统预留另外2 GB用于内核模式。

然而,Mark Russinovich的这篇文章让我觉得我以前的结论是错误的 – 所有的/ 3GB交换机都允许进程使用3GB的4GB地址空间而不是2GB。

让我们来设置几个场景来说明我认为它是如何工作的,以及什么时候交换机会有用:

1:数据库服务器 – 一个内存密集型进程

没有/ 3GB开关,数据库进程将只能使用2 GB的内存。 使用/ 3GB开关的过程将能够分配高达3 GB。 在这种情况下,交换机很有用。

2:运行4个进程的服务器,每个进程消耗750 MB的内存。

使用/ 3GB开关不会带来任何好处 – 每个进程已经可以分配所需的所有内存,并且系统可以将所有进程保存在物理内存中。

我是对还是错? 如果我错了,那么/ 3GB交换机如何真正影响物理内存使用?

3GB和PAE交换机是独立的,可以处理不同的事情。

3GB交换机 – 在x86平台上,程序接收虚拟内存空间。 他们没有得到实际的内存地址。 这个虚拟内存空间被分成了几块用于各种目的。 通常前半部分(2GB)是为程序的一般使用保留的。 另一半是为其他东西(通常是内核内存)保留的。 TL / DR :该开关影响虚拟地址空间如何分割。

PAE交换机 – 原装80386平台最多可以处理32位物理内存; 这是4GB。 为了增加更多,英特尔提出了4个额外的位,并称之为物理地址扩展。 如上所述,程序不知道什么是物理内存,他们看到一个虚拟的地址空间。 然而,操作系统可以使用PAE添加超过4GB的RAM(实际上〜3.7GB,因为BIOS和内存映射IO占用空间)。 TL / DR :该开关影响操作系统寻址物理内存的方式。

上面已经简化了一些 ,事情从来没有像我们希望的那样简单。