资源调控器监视

获取每个工作负荷组和资源池的执行统计信息是资源调控器监视和管理策略的一个重要组成部分。利用执行统计信息,可以识别有助于配置的工作负荷特征,及早检测到潜在问题以采取相应的纠正措施,并确保运行持续可靠且可预测。

性能计数器

在资源调控器中,大部分统计信息收集都是基于性能计时器的,原因如下:

  • 无需采用显式 Transact-SQL 轮询即可监视性能计数器。

  • 预期的活动工作负荷组和资源池的总数较小(以 10 为数量级),因此计数器不会对内存产生很大压力。

  • 现有的 sys.dm_os_performance_counters 动态管理视图可用于提取计数器值。原因是它显示了 DBA 可用于计算平均值的原始值。

  • 诸如 Perfmon 之类的现有工具无需修改即可使用。

资源调控器使用下列性能对象收集工作负荷组和资源池统计信息:

性能计数器名称

说明

SQLServer:Workload Group Stats

报告每个活动工作负荷组的统计信息,如活动的请求数和阻止的请求数。

SQLServer:Resource Pool Stats

报告每个活动资源池的统计信息,如资源池中每秒发生的内存授予数和资源池使用的内存量。

事件

除了使用 SQL 跟踪事件以外,资源调控器还引入了新的监视事件。下表介绍了这些新事件。

事件名称

说明

CPU Threshold Exceeded

指示资源调控器检测到查询超过 REQUEST_MAX_CPU_TIME_SEC 中的 CPU 阈值的时间。

PreConnect:Starting

指示 LOGON 触发器或资源调控器分类器函数开始执行的时间。

PreConnect:Completed

指示 LOGON 触发器或资源调控器分类器函数结束执行的时间。

动态管理视图

资源调控器引入了新的动态管理视图,可用于返回当前统计信息以及工作负荷组和资源池的配置数据。下表介绍了新的动态管理视图。

名称

说明

sys.dm_resource_governor_workload_groups

返回工作负荷组统计信息和工作负荷组当前在内存中的配置。

sys.dm_resource_governor_resource_pools

返回当前资源池状态、资源池的当前配置以及资源池统计信息的相关信息。

sys.dm_resource_governor_configuration

返回一个包含资源调控器当前在内存中的配置状态的行。

资源调控器的存储配置数据在目录视图(如 sys.resource_governor_resource_pools)中提供。