适用于SQL Server的Windows O/S页面文件大小

Bra*_*ood 17 windows sql-server

对于运行SQL Server的Windows 2003服务器,是否知道适当的页面文件大小的经验法则?

Rob*_*vis 14

尽管尊重雷木思(我非常尊敬),但我强烈反对.如果页面文件足够大以支持完全转储,则每次都会执行完全转储.如果你有大量的内存,这可能会导致一个小小的昙花一现成为主要的中断.

如果存在一次性瞬态问题,您不希望服务器必须将1 TB的RAM写入磁盘.如果存在重复出现的问题,您可以增加页面文件以捕获完整转储.我会等到你被PSS(或其他有资格分析完全转储的人)请求你捕获一个完整的转储所困扰.极少数DBA知道如何分析完整转储.小型转储足以解决大多数问题.

另外,如果您的服务器配置为允许1 TB完全转储并且出现重复出现问题,那么您建议手头有多少可用磁盘空间?你可以在一个周末填满整个SAN.

当你幸运地拥有一个带有3或4 GB RAM的SQL Server时,页面文件1.5*RAM就成了常态.事实并非如此.我将页面文件保留为所有生产服务器上的Windows默认大小和设置(遇到内存压力的SSAS服务器除外).

仅仅为了澄清,我使用的服务器范围从2 GB的RAM到2 TB的RAM.超过11年后,我只需要增加页面文件以捕获一次完整转储.


Rem*_*anu 11

与RAM的大小无关,您仍然需要一个至少是物理RAM量的1.5倍的页面文件.即使你有一台1 TB的RAM机器也是如此,你需要在磁盘上安装1.5 TB的页面文件(听起来很疯狂,但这是真的).

当进程通过VirtualAlloc/VirtualAllocEx请求MEM_COMMIT内存时,需要在页面文件中保留所请求的大小.在第一个Win NT系统中也是如此,今天仍然如此,请参阅在Win32中管理虚拟内存:

提交内存时,将分配内存的物理页面,并在页面文件中保留空间.

在一些极端奇怪的情况下,SQL Server将始终要求MEM_COMMIT页面.鉴于SQL使用动态内存管理策略,该策略预先保留尽可能多的缓冲池(就VAS而言保留和提交),SQL Server将在页面文件中启动大量空间预留请求.如果页面文件大小不正确,则错误801/802将开始显示在SQL的ERRORLOG文件和操作中.

这总是会造成一些混乱,因为管理员错误地认为大RAM不需要页面文件.事实恰恰相反,大型RAM增加了对页面文件的需求,这仅仅是因为Windows NT内存管理器的内部工作原理.希望保留的页面文件永远不会被使用.