资源调速器是否有助于保护页面预期寿命?
-
28-09-2020 - |
题
我有几个大表,我需要在事务数据库上复制到分区副本。
我担心这将导致我的生产应用程序的性能。
试图减轻这一点,我正在调查资源调速器。我要将我的脚本设置用于使用限制为5%CPU和内存的资源池。
唯一的一部分,我不确定是对PLE的影响。
正如我理解它,表中的选择将读取缓存中的值。这将强迫缓存中的其他东西。(PLE的基本概念。)但“强制出来”项目仅限于我指定的5%?
我使用了5%的内存后的意思,它将只强制在同一个5%的缓存项目中掉出的缓存项目?(留下其他95%不受影响。)
另一种询问方法是:内存限制为5%的内存限制与5%的缓存限制相同?
解决方案
此MSDN PAGE状态显示内存设置仅影响查询内存:
min_memory_percent和max_memory_percent
这些设置是无法与其他资源池共享的资源池保留的最小和最大内存量。这里引用的内存是查询执行授予存储器,而不是缓冲池内存(例如,数据和索引页)。为池设置最小内存值意味着您确保指定的内存百分比将可用于此资源池中可能运行的任何请求。与Min_cpu_percent相比,这是一个重要的鉴别因子,因为在这种情况下,即使池在属于此池的工作负载组中没有任何请求,存储器也可能保留在给定的资源池中。因此,您在使用此设置时非常小心是至关重要的,因为即使没有活动请求,此内存也不会使用任何其他池。为池设置最大内存值意味着当请求在此池中运行时,它们永远不会超过此百分比的内存。
以上表示缓冲池被排除在资源池限制之外。因此,如果您打算在执行可能导致整个缓冲池的某些操作才能运行此过程,您可能希望确保在OFF小时内运行该过程。
以下是MSDN博客的摘录, sql server页面生活期望:
页面生活期望(PLE)是您的缓冲池是多么挥发(BP)的最佳指示。它是一个完整的计数器,在SQL Server中找到:Buffer Manager Perfmon对象。还有缓冲区节点:页面寿命计数器应考虑用于NUMA系统,每个节点使用相同的逻辑,因为一个在非NUMA系统上。
通过在缓冲池中的页面的平均“生命”(以秒为单位)来测量波动率。如果页面被覆盖或衰老,它就开始了一个全新的生活。
因此,如果经常使用新数据覆盖大量页面,平均PLE将低,我们的BP波动率将很高。
相反,如果BP中的大多数页面仍然很长一段时间而不会被覆盖,则平均PLE将很高,BP波动率将低。
那么为什么我们关心BP波动和PLE?知道BP波动有什么对我们来说能做的?什么是“好”和“坏”的ple图?
Ple可以是您的SQL Server在做多少物质IO的衡量标准。希望我引起了你的注意,因为物理IO是一个重大的性能问题,都是阅读和写作。
在此处的评论中的问题:
什么是“查询内存”,与缓存有何不同?
查询内存用于执行查询。它暂时用于种类,位图创建,哈希表等。缓存包含内存表数据。
听起来我问题的答案是,PLE根本不会受到资源调控器的保护。这听起来对吗?
正确。页面预期寿命是关于数据页面留在内存中的时间。