2015-07-28 60 views
1

我在生产数据库上使用资源调控器来限制最大CPU使用率。但它不能有效地工作。我在不同的服务器上使用相同的结构,并且它正常工作。只有服务器之间的区别是CPU数量。 我的操作系统版本是Windows Server 2012 R2,我的MS SQL Server版本是“Microsoft SQL Server 2014 - 12.0.2495.0(X64) Mar 31 2015 09:47:37 Copyright(c)Microsoft Corporation 企业版:Core-在Windows NT 6.3基于许可(64位)(构建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 

我的最后描述脚本是bel ow:

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。“你可以帮帮我吗?

+0

你需要有日志从SPID 538以前的错误中看看,为什么分类器不工作。此外,我没有看到您创建工作负载组gMAX_CPU_PERCENT_60的脚本,但如果没有,则分类不会映射到任何内容。如果你运行这个“SELECT * FROM sys.dm_resource_governor_workload_groups”,你会看到你的工作负载组吗?你在total_request_count中看到了什么吗? – steoleary

+0

我运行这个脚本,并有一个结果。 http://prntscr.com/8en6f3 有我们的sql服务器错误日志。 http://prntscr.com/8en7hg –

+0

感谢您的关注:) 这是我的gMAX_CPU_PERCENT_60脚本。 USE [主] GO /******对象:WorkloadGroup [gMAX_CPU_PERCENT_60]脚本日期:2015年9月10日9点32分五十秒******/ CREATE WORKLOAD集团[gMAX_CPU_PERCENT_60] WITH( group_max_requests = 0, \t \t重要性=中, \t \t request_max_cpu_time_sec = 0, \t \t request_max_memory_grant_percent = 25, \t \t request_memory_grant_timeout_sec = 0, \t \t max_dop = 0),使用[pMAX_CPU_PERCENT_60] GO –

回答

0

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

Here is full description