1

最大 CPU 使用率を制限するために、運用データベースでリソース ガバナーを使用しています。しかし、それは効率的に働くことができませんでした。異なるサーバーで同じ構造を使用していますが、正しく動作しています。サーバー間の唯一の違いは、CPU 数です。OS のバージョンは Windows Server 2012 R2 で、MS SQL Server のバージョンは「Microsoft SQL Server 2014 - 12.0.2495.0 (X64) 2015 年 3 月 31 日 09:47:37 Copyright (c) Microsoft Corporation Enterprise Edition: Core-based Licensing (64 -bit) Windows NT 6.3 (Build 9600: ) (Hypervisor) で "私の分類子関数スクリプトは次のとおりです。

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

İt は最大 CPU 使用率を制限しません。デフォルトの max_cpu_percent を %60 に設定しましたが、時々 %100 パーセントを使用します。したがって、システムに適切にアクセスできません。これは、私のイベント ログからのエラー メッセージです。経過時間: 0 ミリ秒。」私たちを手伝ってくれますか?

4

1 に答える 1