这篇 Microsoft 文章 -如何为 64 位版本的 Windows Server 2008 和/或 Windows 2008 R2 确定适当的页面文件大小为计算 64 位 Windows 2008 和 Windows 2008R2 的页面文件大小提供了指导。这无疑适用于通用服务器。我想知道在 Windows 2008/R2 64 位上运行的 SQL Server 2008R2 的指导是什么?
我假设我们希望尽可能少的内存数据访问页面文件,否则 SQL 可能会两次访问磁盘以获取数据。SQL Server 甚至允许内存中的数据访问页面文件吗?我已经通过SQL Server 2008 R2 联机丛书寻找指导,但还没有找到任何关于页面文件使用的提及。
这是一个潜在的使用场景:给定一个具有 64GB RAM 的物理服务器,整个 64GB RAM 是否需要一个页面文件?我们应该为 96GB 的页面文件做准备吗?对于单个文件来说,这似乎有点过分。我知道传统观点认为 Windows 将页面文件与内存结合在一起,以试图在 RAM 上更轻松地换出应用程序,但这是真的吗?小于 64GB 的页面文件会影响性能吗?
SQL Server 没有特殊设置,只正常使用物理内存
只需按照 MS 对 Windows 所说的去做即可
哦,当我们成为主题之一时,无论如何都要购买更多内存......;-)
调查
lock pages in memory
。这样,您可以优先使用 SQL 服务帐户来使用可用 RAM,而不是分页到磁盘。要阅读有关内存中锁定页面的更多信息,请查看此链接。一个片段如下:请在您的系统上使用之前测试此功能。
是的,对于 64GB RAM,您至少需要64GB 交换文件(推荐 96GB)。不是因为潜在的交换,而是因为 Windows 内存管理器的设计。我之前在具有大 RAM 的机器上的系统页面文件大小中写过这个问题:
另一种选择是类似于oom_killer。
所以一定要遵循建议,有时事情比看起来要复杂一些。而且我什至没有触及 AWE 和锁定页面特权带来的复杂性......