资源调控器运行不正常

时间:2015-07-28 10:57:11

标签: event-log sql-server-2014 resource-governor

我在生产数据库上使用资源调控器限制最大CPU使用率。但它无法有效地工作。我在不同的服务器上使用相同的结构,它可以正常工作。服务器之间的区别仅在于CPU数量。 我的操作系统版本是Windows Server 2012 R2,我的MS SQL Server版本是“Microsoft SQL Server 2014 - 12.0.2495.0(X64)     2015年3月31日09:47:37     版权所有(c)Microsoft Corporation     企业版:Windows NT 6.3上的基于核心的许可(64位)(Build 9600:)(管理程序) “ 我的分类器功能脚本如下:

USE [master]
GO
/****** Object:  UserDefinedFunction [dbo].[rgclassifier_MAX_CPU]    Script Date: 28.7.2015 13:24:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[rgclassifier_MAX_CPU]() RETURNS sysname 
WITH SCHEMABINDING
AS
BEGIN
    DECLARE @workload_group_name AS sysname
      IF (ORIGINAL_DB_NAME() = 'DeFacto' )
          SET @workload_group_name = 'gMAX_CPU_PERCENT_60'
    RETURN @workload_group_name
END;

我的资源池脚本如下:

USE [master]
GO

/****** Object:  ResourcePool [pMAX_CPU_PERCENT_60]    Script Date: 28.7.2015 13:24:21 ******/
CREATE RESOURCE POOL [pMAX_CPU_PERCENT_60] WITH(min_cpu_percent=0, 
        max_cpu_percent=60, 
        min_memory_percent=0, 
        max_memory_percent=100, 
        cap_cpu_percent=100, 
        AFFINITY SCHEDULER = AUTO
, 
        min_iops_per_volume=0, 
        max_iops_per_volume=0)

GO

我的最终描述脚本如下:

USE [master]
GO

ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = [dbo].[rgclassifier_MAX_CPU]);
GO

ALTER RESOURCE GOVERNOR WITH (MAX_OUTSTANDING_IO_PER_VOLUME = DEFAULT);
GO

ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

不限制最大CPU使用率。我设置默认值max_cpu_percent是%60但有时它使用%100%。因此,我们无法正确访问系统。 这是我的事件日志中的错误消息: “无法运行资源调控器分类器用户定义的函数'dbo.rgclassifier_MAX_CPU'。上一个错误8525,状态1.有关详细信息,请参阅会话ID 538中SQL Server错误日志中的先前错误。分类器已用时间:0 ms。”你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

请注意,最大CPU百分比是机会最大值。如果有可用的CPU容量,则工作负载最多使用100%。最大值仅适用于存在CPU资源争用的情况。

Here is full description