我们有一个数据库服务器,我们正在升级到 64GB 的 RAM,但目前它只有小型 SCSI 驱动器 - 总计刚刚超过 400GB(镜像后为 192GB)。我们的数据库比较小,但是大家告诉我们pagefile应该是1-1.5X RAM。考虑到我们的小磁盘大小,我们需要设置某种类型的最大大小,但是仅仅为了页面文件存储而购买 500 美元的 SCSI 磁盘似乎很愚蠢。
我们有一个数据库服务器,我们正在升级到 64GB 的 RAM,但目前它只有小型 SCSI 驱动器 - 总计刚刚超过 400GB(镜像后为 192GB)。我们的数据库比较小,但是大家告诉我们pagefile应该是1-1.5X RAM。考虑到我们的小磁盘大小,我们需要设置某种类型的最大大小,但是仅仅为了页面文件存储而购买 500 美元的 SCSI 磁盘似乎很愚蠢。
1.5 倍物理 RAM 只是一个指导原则。在这篇 Technet 文章中有一些关于页面文件大小的一般指示,这说明了这一点:
然而,对于某些系统(域控制器、Exchange 服务器)来说,完全禁用页面文件并不是一个好主意。对于 DC 来说,这是特别禁忌的,对于Exchange Server来说这是一个非常糟糕的主意。我已经在 E2K7 服务器上看到了该文章中描述的 Exchange 行为(由分页引起的极端磁盘抖动),该服务器对 32G 的物理 RAM 并不十分忙碌,其中有人将页面文件大小设置为 1G。
我从来没有发现(或听说过)任何特定的语句表明分页文件对于 SQL 是必需的,除了一般的论点之外,如果其他东西变得流氓并咀嚼所有物理 RAM,它会有所帮助。
我自己不会担心,在我们的物理 MSSQL 框上,我们专门关闭了分页,我们的一些在没有输入的情况下一次运行几个季度。也就是说,我仍然很想让 Windows 管理它自己的页面文件,密切关注它,它会告诉你它需要多大。
正确指定数据库服务器的整个目标是为整个数据库提供足够的 RAM。您最不想看到的是导致磁盘 I/O(交换)的 SQL 查询。找到 MSSQL 数据库文件夹并检查您的数据库/s 总磁盘使用情况。在理想情况下,您应该在系统中至少拥有两倍的 RAM。这为 dbase 的增长以及查询缓存等留下了足够的 RAM。
因此,要回答您的问题,对于内存较低的系统,swap 可以是内存的 1.5 倍,而对于具有大量内存的系统,通常是 8GB 或更少。如果您开始使用分页,请不要增加交换 ..增加您的 RAM。
我建议从大小合适的东西开始,但与你的物理内存相比要小。在 32gb 的机器上,8gb 的页面文件是一个好的开始。测试一段时间后,您可以根据需要移动该数字。确保赋予 SQLserver“在内存中锁定页面”的权限,这样数据库服务器本身就不能被分页。
有关内存大小的精彩文章,请参阅:
http://support.microsoft.com/kb/889654