Windows /3gb 开关与物理 RAM 有何关系?

Windows /3gb 开关与物理 RAM 有何关系?

我有一台 32 位 Windows 服务器,配备 4 GB RAM。

通过阅读网络上的各种文章,我了解到,在 boot.ini 中启用 /3GB 开关意味着在我的 4 GB RAM 中,3 GB 可以分配给用户模式内存。如果没有该开关,则只有 2 GB 会用于用户模式,而系统会保留另外 2 GB 供内核模式使用。

然而,Mark Russinovich 的文章让我认为我之前的结论是错误的 - /3GB 开关所做的只是允许进程使用其 4 GB 地址空间中的 3 GB,而不是仅仅 2GB。

让我们设置几个场景来说明我认为它的工作原理以及开关何时有用:

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

如果没有 /3GB 开关,数据库进程将只能使用 2 GB 内存。使用 /3GB 开关,进程将能够分配最多 3 GB 内存。此开关在此场景中非常有用。

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

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

我是对还是错?如果我错了,/3GB 开关究竟如何影响物理内存使用?

答案1

3GB 和 PAE 开关是独立的并且负责不同的工作。

3GB 交换机- 在 x86 平台上,程序会获得虚拟内存空间。它们不会获得实际的内存地址。此虚拟内存空间被划分为块,用于各种用途。通常,前半部分(2GB)保留用于程序的一般用途。另一半保留用于其他用途(通常是内核内存)。TL/DR:此开关影响虚拟地址空间的分割方式。

PAE 开关- 原始 80386 平台最多可以处理 32 位物理 RAM;即 4GB。为了增加更多,英特尔提出了 4 个额外位,并将它们称为物理地址扩展。如上所述,程序不知道物理内存是什么样子,它们看到的是虚拟地址空间。然而,操作系统可以使用 PAE 添加超过 4GB 的 RAM(实际上约为 3.7GB,因为 BIOS 和内存映射 IO 也占用空间)。TL/DR:此开关影响操作系统如何寻址物理内存。

以上内容已简化轻微地但事情永远都不会像我们所想的那么简单。

相关内容