Aracılığıyla paylaş


Kaynak Governor Workload Yönetim senaryoları

Kaynak çeşitli şekillerde Governor üzerinde çalışma yüklerinin yönetmek ve izlemek için kullanabileceğiniz, SQL Server SYSTEM (Sistem). Bu konu, kaynak Governor yapılandırma hakkında genel bir bakış sağlar ve kaynak Governor nasıl kullanılabileceğini göstermektedir.Sağlanan senaryolar içerir. Transact-SQL iş grupları ve kaynak havuzlarını değiştirme ve oluşturmak için kod örnekleri sağlar.

Kaynak Governor yapılandırma

Yüklemeden sonra SQL Server 2008Kaynak Governor kullanılabilir, ancak etkin değil. Iç varsayılan iş grupları ve onların karşılık gelen kaynak havuzu yok.

Kendi kaynak havuzu ve iş yükünü grupları oluşturmak için aşağıdaki adımları tamamlamalısınız:

  • Belirttiğiniz sınırlar olan bir kaynak havuzu oluşturun.

  • Belirttiğiniz ilkelerde ve sınırlamaları olan iş yükü grubu oluşturun ve iş yükünü grubun ait olduğu kaynak havuzunu tanımlar.

  • Gelen istekleri için kullanmasını istediğiniz bir Sınıflandırıcısı işlevini etkinleştirmek ve tanımlayın.

Önceki adımlar tamamlandığında, kaynak Governor etkin konfigürasyondan ve sınıflandırılır tüm etkin istekleri durumunu görebilirsiniz.

Kaynak havuzunu ve Workload Grup gereksinimlerini belirleme

Bilgisayarınızı sınama için kullanmak istediğiniz iş yükü grubu ve kaynak havuzunu yapılandırma belirlemektir, SQL Server Ortam. Bunun için bilmemiz gereken nasıl SQL Server kaynakları, şu anda bir uygulama tarafından tüketilecektir.

Çözüm, varsayılan kaynak havuzundaki bir iş yükü grubu oluşturmaktır.Birkaç gün için uygulamayı çalıştırın ve aşağıdaki soruları yanıtlayın topladığınız bilgileri kullanın.

  • CPU gereksinim nedir?
    Bir CPU bant genişliği tahmini istekleri saniyedeki ortalama sayısı tarafından istek başına ortalama toplam CPU kullanımı çarpılarak belirler.

    En büyük, ortalama ve standart sapması, CPU kullanımı en yüksek CPU sınırı gerekli olup olmadığını belirlemek için kullanılır.

  • Eşzamanlı istek sayısı nedir?
    Eş zamanlı istekler istatistikleri en çok ve ortalama sayısı en az bir eşzamanlılık etmeni belirlemek için kullanın.

  • Gereken toplam bellek nedir?
    Bellek gereksinimi belirlemek için kullanılan en çok ve ortalama toplam bellek kullanır.

  • Ne kadar bellek için tek bir sorguda gerekli?
    Sorgu istatistik başına en çok ve ortalama bellek gerekli bellek miktarını belirlemek için kullanın.

  • Herhangi bir sorgu bellek yetersizliği nedeniyle çalışıyor mu?
    Ortalama saat bellek sıra istatistiği bekleyen herhangi bir sorgu bellek kullanılabilirlik nedeniyle engellenmiş olup olmadığını belirlemek için kullanın.

Senaryoları

Örnek olarak yedi senaryolarda sağlamış öneririz.Senaryolar 1-5 arası büyük/küçük harfe birikimlidir, her biri önceki senaryosunda da oluşturur.Senaryo 6 önceki senaryoları için ilgisiz; Senaryo 7, 6 senaryosunda da oluşturur.

Senaryo 1

S: BANA yalnızca SQL Server'ın yeni sürüm yüklü ve kaynak Governor kullanmak istiyorsunuz. Nasıl, benim ortamında kullanabilir MIYIM?

C: Iş yükleri ile kaynak tüketimini izlemek için kaynak Governor kullanmayı düşünün. Aşağıdaki adımları küme bir kaynak Governor ortamı yedeklenir.Bir yapılandırma örneği için sağlanmıştır.

  1. Kendi iş için iş yükünü grupları oluşturun.

  2. Sınıflandırma bir işlev oluşturun.

  3. Sınıflandırma işlev ile kaynak Governor kaydedin.

  4. Kaynak Governor etkinleştirin.

  5. Sorgu iş yükü grubu için kaynak kullanımı hakkında bilgi veren DMVs ve kaynak Governor performans sayaçlarını izleyin.

Örnek

Not

Aşağıdaki yapılandırma, iş yükü grubu kullanması gereken bir kaynak havuzu belirtmiyor.Varsayılan olarak, varsayılan havuzu iş yükünü grupları kullanır.

BEGIN TRAN;
-- Create 3 workload groups based on the nature of their workload.
-- One handles ad hoc requests, the second handles reports, and the
-- third handles admin requests. These groups all use the default 
-- settings for workload groups.
-- These workloads are divided into groups that cover ad hoc queries,
-- reports, and administration jobs. 
CREATE WORKLOAD GROUP GroupAdhoc;
CREATE WORKLOAD GROUP GroupReports;
CREATE WORKLOAD GROUP GroupAdmin;
GO
COMMIT TRAN;
-- Create a classification function.
-- Note that any request that does not get classified goes into 
-- the 'default' group.
CREATE FUNCTION dbo.rgclassifier_v1() RETURNS sysname 
WITH SCHEMABINDING
AS
BEGIN
    DECLARE @grp_name sysname
      IF (SUSER_NAME() = 'sa')
          SET @grp_name = 'GroupAdmin'
      IF (APP_NAME() LIKE '%MANAGEMENT STUDIO%')
          OR (APP_NAME() LIKE '%QUERY ANALYZER%')
          SET @grp_name = 'GroupAdhoc'
      IF (APP_NAME() LIKE '%REPORT SERVER%')
          SET @grp_name = 'GroupReports'
    RETURN @grp_name
END;
GO
-- Register the classifier function with Resource Governor
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION= dbo.rgclassifier_v1);
GO
-- Start Resource Governor
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

Senaryo 2

S: Senaryo 1 izleme sonuçlar bağlı olarak, bir olay, her saat 30 saniyeden daha uzun bir sorgudaki bir geçici grup (GroupAdhoc) çalıştığını görmek istiyorum.

C: Geçerli kaynak Governor değiştirmek için aşağıdaki adımları izleyerek yapılandırma. Bir yapılandırma örneği için sağlanmıştır.

  1. küme CPU kullanımı ad hoc grubu için bir sınır.

  2. SQL izleme olayları (olay kaynak Governor Yönetim sınıfı) izler.

  3. Eylem olayı gerçekleştirin.Örneğin, olay Yoksay e-posta göndermek bir sayfa göndermek veya KILL komutu, istek çalıştırmak.

Örnek

-- Specify a limit on CPU usage for the ad hoc workload group.
-- An event is automatically generated when the limit is reached.
ALTER WORKLOAD GROUP GroupAdhoc
WITH (REQUEST_MAX_CPU_TIME_SEC = 30);
GO
-- Apply the changes to the Resource Governor in-memory configuration.
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

Senaryo 3

S: Geçici grup biriktirilen tüm istekleri, CPU kullanımı yüzde 50'si geçmediği böylece daha fazla kısıtlamak istediğiniz.

C: Önceki senaryo varsayılan havuzunu kullanıldığından, yeni bir kaynak havuzu oluşturmanız gerekir. Geçerli kaynak Governor değiştirmek için aşağıdaki adımları izleyerek yapılandırma.Bir yapılandırma örneği için sağlanmıştır.

  1. Yeni bir kaynak havuzu oluşturmak ve CPU sınırlarını yapılandırın.

  2. Ad hoc iş yükü grubu, yeni kaynak havuzu kullanmak üzere yapılandırın.

Örnek

BEGIN TRAN;
-- Create a new resource pool and set a maximum CPU limit.
CREATE RESOURCE POOL PoolAdhoc
WITH (MAX_CPU_PERCENT = 50);
-- Configure the workload group so it uses the new resource pool. 
-- The following statement moves 'GroupAdhoc' from the 'default' pool --- to 'PoolAdhoc'
ALTER WORKLOAD GROUP GroupAdhoc
USING PoolAdhoc;
COMMIT TRAN;
GO
-- Apply the changes to the Resource Governor in-memory configuration.
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

Senaryo 4

S: Şimdi yönetim grubu, her zaman tanılama sorgular çalıştırmak için gereken kaynakları var, ancak birden çok sunucu bellek kaynaklarının yüzde 10 Bu sorgular gerçekleştirebileceğiniz garanti istiyorum.

C: Bunu yapmak için yeni bir kaynak havuzu oluşturmanız gerekir. Geçerli kaynak Governor değiştirmek için aşağıdaki adımları izleyerek yapılandırma.Bir yapılandırma örneği için sağlanmıştır.

  1. Yeni bir kaynak havuzu oluşturmak ve küme kaynak sınırlar.

  2. Yönetim yapılandırma iş yükü grubu yeni havuzu kullanmak üzere.

Örnek

BEGIN TRAN;
-- Create a new resource pool and set resource limits.
CREATE RESOURCE POOL PoolAdmin
WITH (
     MIN_CPU_PERCENT = 10,
     MIN_MEMORY_PERCENT = 10,
     MAX_MEMORY_PERCENT = 10);
-- Note that no limit is specified for MAX CPU on this pool.
-- Configure the admin group to use the new pool.
-- The following statement moves 'GroupAdmin' from the 'default' pool 
-- to 'PoolAdmin'.
ALTER WORKLOAD GROUP GroupAdmin
USING PoolAdmin;
COMMIT TRAN;
GO
-- Apply the changes to the Resource Governor in-memory configuration.
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

Senaryo 5

S: Varsayılan kaynak grubundaki herhangi bir şey, raporlarımı, şu anda varsayılan kaynak havuzunda bulunan, ancak ayrı bir iş yükü grubu (GroupReports) kullanarak, emin olmak istiyorum raporlarını daha alt bir kaynak kullanım önceliği vardır.

C: Bunun için varsayılan grubu önem ayarı yapılandırmanız gerekir.

Not

Varsayılan Grup, ancak varsayılan havuzunu ayarlarını değiştirebilirsiniz.Varsayılan havuzu için bir değişiklik gerektiğini düşünüyorsanız, bu yeni bir kaynak havuzu oluşturmak için gereken bir güçlü göstergedir.

Geçerli kaynak Governor yapılandırmasını değiştirmek için aşağıdaki adımı uygulayın.Bir yapılandırma örneği için sağlanmıştır.

  1. Varsayılan grubu ayarı değiştirin.

Örnek

-- Configure the IMPORTANCE setting.
ALTER WORKLOAD GROUP [default] 
WITH (IMPORTANCE = LOW);
GO
-- Apply the changes to the Resource Governor in-memory configuration.
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

Senaryo 6

S: Varolan bir kaynak havuzunu kullanan yeni bir iş yükü grubu oluşturmak istiyorum. Sonra yeni bir kaynak havuzu, grubu taşır; böylece Sınıflandırıcısı işlevini değiştirmek istiyorum.

C: Için aşağıdaki adımları kullanın küme bu yeni kaynak Governor ortamı yedeklenir. Bir yapılandırma örneği için sağlanmıştır.

  1. Yeni bir kaynak havuzu, varsayılan ayarlarla oluşturun.

  2. Varolan bir havuzu içinde yeni bir iş yükü grubu oluşturun.

  3. Oluşturabilir ve istekleri işlemek için yeni bir Sınıflandırıcısı işlev.

Örnek

BEGIN TRAN;
-- Create a new resource pool with the default pool settings.
CREATE RESOURCE POOL MyNewPool;
-- Create a new workload group that is in an existing 
-- resource pool named 'MyPool'.
CREATE WORKLOAD GROUP MyNewGroup USING MyPool;
GO
COMMIT TRAN;
GO
-- Create a classifier function that is based on a user login.
CREATE FUNCTION dbo.rgclassifier_v2 () 
RETURNS sysname
WITH SCHEMABINDING 
AS
BEGIN
    DECLARE @grp_name sysname
    IF SUSER_SNAME() = 'DOMAIN\username'
        SET @grp_name = 'MyNewGroup'
    ELSE
        SET @grp_name = 'MyGroup'
    RETURN @grp_name
END;
GO
-- Register the function with Resource Governor and 
-- then start Resource Governor.
ALTER RESOURCE GOVERNOR
    WITH (CLASSIFIER_FUNCTION = dbo.rgclassifier_v2);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

Senaryo 7

S: ı (Senaryo 6'da oluşturulan) iş yükü grubu artık gereksinim, bu iş yükü grubu ve kaynak havuzunu istiyorsanız, BT olduğundan in. ben karar

C: Kaynak Governor ortamı değiştirmek için aşağıdaki adımları kullanın. Bir yapılandırma örneği için sağlanmıştır.

  1. Oluşturabilir ve istekleri kalan iş yükünü gruba classify yeni Sınıflandırıcısı işlev.

  2. iş yükü grubu bırakın.

  3. Kaynak havuzu bırakın.

  4. Yapılandırma değişikliklerini uygulayın.

Örnek

BEGIN TRAN;
GO
-- Create a new classifier function.
CREATE FUNCTION dbo.rgclassifier_v3 () 
RETURNS sysnameE 
WITH SCHEMABINDING
AS
BEGIN
    DECLARE @grp_name sysname
    IF suser_sname() = 'DOMAIN\username'
        SET @grp_name = 'MyGroup'
    RETURN @grp_name
END;
GO
COMMIT TRAN;
GO
-- Register the new function and start Resource Governor.
ALTER RESOURCE GOVERNOR
    WITH (CLASSIFIER_FUNCTION = dbo.rgclassifier_v3);
GO
-- Wait for all the current sessions that use 'MyNewGroup' to drain,
-- or KILL the sessions.
BEGIN TRAN;
GO
-- You have to drop the workload group before you can drop the
-- resource pool it is in.
DROP WORKLOAD GROUP MyNewGroup;
GO
DROP RESOURCE POOL MyNewPool;
GO
COMMIT TRAN;
-- Update the Resource Governor in-memory configuration
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO