AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 990091
Accepted
Tobias
Tobias
Asked: 2019-11-01 00:32:15 +0800 CST2019-11-01 00:32:15 +0800 CST 2019-11-01 00:32:15 +0800 CST

SQL Server 页面文件位置 - 放在哪里?

  • 772

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

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

  • 视窗磁盘
  • 一个安装了 SQL Server 应用程序的磁盘
  • 用于 SQL 数据文件 (mdf/ndf) 的磁盘
  • 用于事务日志文件 (ldf) 的磁盘
  • 一张用于手动备份和其他临时文件的磁盘。

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

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

sql-server
  • 2 2 个回答
  • 8039 Views

2 个回答

  • Voted
  1. Best Answer
    AMtwo
    2019-11-01T21:01:48+08:002019-11-01T21:01:48+08:00

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

    老实说,您永远不希望您的 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.5x 页面文件。

    该建议假定您希望您的服务器进行分页。您不希望您的服务器分页。SQL Server 在开始分页时可能会崩溃,如果不这样,您的性能将慢得像爬行一样。您可以为您的页面文件购买某种超快速 NVMe 驱动器,这可能会使性能可以接受。

    互联网是错误的。

    我说的那个页面文件...

    我什至不在乎它有多大。我永远不会使用它。它可以很小。它可以在 C:\ 驱动器上。C:\ 驱动器可能很慢。

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

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

    • 3
  2. Alberto Morillo
    2019-11-01T06:57:28+08:002019-11-01T06:57:28+08:00

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

    • 2

相关问题

  • sql server 连接字符串上的网络数据包大小以提高吞吐量

  • 基于 Microsoft 的服务器(IIS、MSSQL 等)上的病毒扫描应排除哪些内容?

  • SQL 洗衣清单

  • OPENROWSET、二进制文件、varchars 和 varbinaries

  • 聚集索引与非聚集索引?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve