我们有一台数据库服务器,正在将其升级到 64GB RAM,但目前它只有小型 SCSI 驱动器 - 总共刚好超过 400GB(镜像后为 192GB)。我们的数据库相对较小,但每个人都告诉我们页面文件应该是 RAM 的 1-1.5 倍。考虑到我们的磁盘大小较小,我们需要设置某种最大大小,但仅仅为了存储页面文件而花 500 美元购买 SCSI 磁盘似乎很愚蠢。
答案1
1.5 倍物理 RAM 只是一个指导原则。关于页面文件大小,有一些通用的指示这篇 Technet 文章这表明:
在服务器系统上,一个共同的目标是拥有足够的 RAM,这样就不会出现短缺,页面文件基本上不会被使用。在这些系统上,拥有非常大的页面文件可能毫无用处。
但是对于某些系统(域控制器、Exchange 服务器)来说,完全禁用页面文件并不是一个好主意。特别不适合 DC这是非常糟糕的想法Exchange 服务器我已经在 E2K7 服务器上看到了该文章中描述的 Exchange 行为(由分页引起的极端磁盘抖动),该服务器并不那么繁忙,拥有 32G 的物理 RAM,并且有人将页面文件大小设置为 1G。
我从未发现(或听说过)任何特定的语句表明分页文件对于 SQL 是必要的,除了一般的论点,即如果其他东西出现问题并占用所有物理 RAM,它会有所帮助。
答案2
我自己不会担心这个问题,在我们的物理 MSSQL 盒上,我们专门关闭了分页,有些我们的一次运行四分之一,无需输入。话虽如此,我仍然想让 Windows 管理自己的页面文件,密切关注它,它会告诉你它需要多大。
答案3
正确指定数据库服务器的整个目标是为整个数据库提供足够的 RAM。您最不希望看到的是 SQL 查询导致磁盘 I/O(交换)。找到 MSSQL 数据库文件夹并检查数据库的总磁盘使用情况。在理想情况下,系统中的 RAM 数量至少应为该数量的两倍。这样既有足够的 RAM 来满足数据库增长的需求,也有足够的 RAM 来满足查询缓存等需求。
因此,回答您的问题,对于内存较少的系统,交换空间可以是内存的 1.5 倍,对于内存较大的系统,交换空间通常为 8GB 或更少。如果您开始使用分页,请不要增加交换空间,而应增加 RAM。
答案4
我建议从大小合适但与物理内存相比较小的文件开始。在 32gb 的机器上,8gb 页面文件是一个不错的开始。测试一段时间后,您可以根据需要调整该数字。确保授予 SQLserver “锁定内存中的页面”的权限,以便数据库服务器本身无法分页。
有关内存大小的精彩文章,请参阅: