3
评估合理的缓冲池大小的确定方法是什么?
我试图提出一种理智的方法来了解max server memory (mb)设置是否合适(应该设置得更低还是更高,或者保持原样)。我知道max server memory (mb)应该始终足够低以为操作系统本身等留出空间。 我正在查看的环境有几百台服务器;我需要一个可靠的公式来确定缓冲池的当前大小是否合适,因为RAM是按分配给每个服务器的每GB的成本来计算的。整个环境已虚拟化,分配给VM的“物理” RAM可以轻松更改。 我现在正在查看一个特定的SQL Server实例,它的PLE为1,100,052秒,相当于12.7天(服务器已启动的时间)。该服务器的最大服务器内存设置为2560MB(2.5GB),其中实际仅提交了1380MB(1.3GB)。 我读过几个项目,包括一个由Jonathan Keheyias(职位),另一个由保罗·兰德尔(岗位),和其他几个人。Jonathan提倡监视每4GB缓冲池中的PLE在300以下,因为它太低了。对于上述SQL Server实例,300 * (2.5 / 4) = 187目标PLE确实非常低,低于300。此实例具有290GB的SQL Server数据(不包括日志文件),仅用于集成测试。假设在过去的12天代表该服务器的典型用法的,我想说的max server memory (mb)设置可能会降低。 在规模的另一端,我有另一台集成测试服务器,其PLE为294,其max server memory (mb)设置仅为1GB。该服务器仅具有224MB的SQL Server数据(不包括日志),并且正在运行某些BizFlow数据库。该服务器可能会受益于更高的max server memory (mb)设置。 我正在考虑为可能分配过多内存的目标提供一个良好的起点,其中包括: SELECT RamMB = physical_memory_in_bytes / 1048576 , BufferPoolCommittedMB = bpool_committed * 8192E0 / 1048576 , BufferPoolCommitTargetMB = …