在仅运行 Sql Server 2008 x64 的 Windows 2008 x64 中使用 /3GB 启动开关是好事吗?

在仅运行 Sql Server 2008 x64 的 Windows 2008 x64 中使用 /3GB 启动开关是好事吗?

有很多文章解释了/3GB 启动开关。一般的解释是..

无论系统中的物理内存量是多少,Windows 都使用 4 GB 的虚拟地址空间,其中 2 GB 分配给用户模式进程(例如,应用程序),2 GB 分配给内核模式进程(例如,操作系统和内核模式驱动程序)。在具有 1 GB 或更多物理内存的系统上,这两个启动开关可用于为应用程序分配更多内存(3 GB),为操作系统分配更少内存(1 GB)。

好吧 - 这不难理解。......但这对于 SQL Server 来说是好事吗?答案取决于全部的内存是否存在于服务器中?

对于本次讨论,我们能否将任何答案与

  1. 4GB内存
  2. 16 GB内存

... 服务器包含Windows 2008 标准 x64+SQL 服务器 2008 x64。我希望处理器的数量不会影响答案:P

所以我想我要问的是,Sql Server 是否需要大量 RAM 用于 OS + 内核模式驱动程序?

答案1

/3GB 开关不适用于 64 位版本的 Windows

http://support.microsoft.com/kb/294418

使用 /LARGEADDRESSAWARE 选项编译的应用程序(需要利用 32 位 Windows 中的 /3GB 开关)将自动能够寻址 4 GB 的虚拟内存,而无需任何启动时间开关或对 x64 Windows 的更改。另外,当然,操作系统不必共享这 4 GB 的空间。因此,它完全不受限制

系统页表条目 (PTE) 池,用于映射系统页面,例如 I/O 空间、内核堆栈和内存描述符列表。64 位程序使用 16 TB 调整模型(8 TB 用户和 8 TB 内核)。32 位程序仍使用 4 GB 调整模型(2 GB 用户和 2 GB 内核)。这意味着在 64 位版本的 Windows 上运行的 32 位进程在 4 GB 调整模型(2 GB 用户和 2GB 内核)中运行。64 位版本的 Windows 不支持在启动选项中使用 /3GB 开关。理论上,64 位指针可以寻址高达 16 EB。64 位版本的 Windows 目前已实现高达 16 TB 的地址空间

答案2

对于 SQL Server,内存越多越好。SQL Server 几乎会占用您提供的任何内存。您需要为操作系统保留至少 1 GB,其余的留给 SQL Server。

因为它是 64 位操作系统,所以您不需要操作系统的 3GB 或 AWE 开关。

相关内容