互联网是错误的。

互联网是错误的。

关于 Windows 页面文件的大小有很多建议。我正在寻找正确的位置。

我们在具有多个独立虚拟磁盘的 Server 2012R2 VM 上运行 MS SQL 服务器:

  • Windows 磁盘
  • 一个安装 SQL 服务器应用程序的磁盘
  • 一个磁盘用于 SQL 数据文件 (mdf/ndf)
  • 一个磁盘用于事务日志文件 (ldf)
  • 一个磁盘用于手动备份和其他临时内容。

目前,Windows 控制着页面文件。它将其大小设置为 38GB(内存为 265),并将其与日志文件一起放在磁盘上。据我所知,这种放置方式不合逻辑:包含 SQL 事务日志文件的磁盘是 SQL 服务器上 I/O 最重的磁盘。这真的是页面文件的最佳位置吗?至于存储空间,我可以轻松地将文件移动到另一个驱动器。

我知道,Windows 可能有理由将文件放在那里 - 但如果是这样,那会是什么呢?还是我的想法错了?

答案1

在您担心页面文件大小之前....

说实话,你绝不希望您的 SQL Server 开始分页。当其内存分页到磁盘时,SQL Server 往往会出现问题。

SQL Server 的最佳做法是将配置Max Server Memory设置为一个足够大的数字,以使 SQL Server 拥有足够的内存,但又足够小,以使您的操作系统和服务器上运行的任何其他程序都拥有足够的内存。关于如何配置这一点,有一些很好的建议这里, 和这里

对于具有 256GB 内存的服务器,以及仅有的对于服务器上正在运行的 SQL Server,我建议从将最大服务器内存配置为 235929 MB 开始,这样可以提供大约 25GB 的余量。这应该足以防止分页。

EXEC sys.sp_configure 'max server memory (MB)', '235929'; 
RECONFIGURE;

互联网对该页面文件的评价……

互联网上有很多建议说您的页面文件应该是内存大小的 1.5 倍。在具有 256GB 内存的服务器上,这将需要 386GB 的页面文件。您可能希望将此页面文件放在与数据和日志文件分开的驱动器上(否则,分页到数据/日志驱动器将加剧分页引起的性能问题)。您的 C:\ 驱动器可能不够大,除非您正在构建具有 512GB C:\ 驱动器的服务器。您还希望驱动器速度快(否则,分页到慢速磁盘将加剧分页引起的性能问题)。可能,您需要一个专用磁盘来存放该 1.5 倍页面文件。

这个建议假设你您的服务器进行分页。您不希望您的服务器进行分页。SQL Server 可能会在开始分页时崩溃,如果不这样做,您的性能将变得非常缓慢。您可以为您的页面文件购买某种超快的 NVMe 驱动器,这可能会使性能变得可以接受。

互联网是错误的。

关于该页面文件我怎么说......

我甚至不关心它有多大。我永远不会用它。它可能很小。它可能位于 C:\ 驱动器上。C:\ 驱动器可能很慢。

  • 确保正确设置最大服务器内存(参见上文)
  • 如果您的服务器需要更多内存,请在服务器上安装更多内存——不要分页到磁盘。
  • 您应该将页面文件从日志驱动器移到 C:。如果如果你使用它,你会希望它脱离你的数据/日志驱动器。如果你必须这样做更小适合 C:\,那就去做吧。
  • 不要为你的页面文件花钱购买快速磁盘——把这笔钱花在另一块 RAM 上。

如果系统崩溃并产生内存崩溃转储,我的页面文件可能不够大,无法处理该转储。但在具有大量内存的系统上,将 1TB 内存转储到磁盘以进行崩溃转储需要很长时间,即使在快速磁盘上也是如此,而且我通常希望快速让 SQL Server 恢复在线并捕获崩溃转储。作为故障排除的一部分,我可以重新配置出现重复问题的服务器。

答案2

不要将 Windows 页面文件 (Pagefile.sys) 放在数据库或日志文件所在的同一磁盘上。您可以将其保留在系统驱动器上或为其分配一个新驱动器。如果系统驱动器存储是 SSD,您可以将页面文件保留在那里,并根据 RAM 量 x 1.5 设置页面文件的起始大小。

答案3

我不同意这样的理由:既然您永远不希望 SQL 服务器分页,那么您可以忽略在非 C/数据驱动器上设置大型页面文件。显然,我们希望设置我们的服务器以避免这种情况,但除非您的服务器专门用于 SQL 并完全由您管理,否则您将希望设置一个真正的页面文件以防出现问题。没有足够大小的页面文件和 C 驱动器上没有足够的空间将导致您的服务器崩溃。在您可以解决问题之前,让您的服务器保持运行的方法是遵循建议的做法,即在非 C 驱动器上拥有高达 1.5 倍的内存,并且没有任何 SQL 相关文件或任何其他重要活动。我使用专用驱动器。说“永远不要让您的服务器分页”很容易,但在现实世界中,您在同一台服务器上运行第三方软件,多个用户可以访问并可能做一些愚蠢的事情,您希望为事情变糟做好准备。

相关内容