Scenariusze zarządzania obciążenia Resource Governor

Można użyć Resource Governor w różny sposób monitorowania i zarządzania obciążeń na Twoje SQL Server systemu.Ten temat zawiera omówienie sposobów konfigurowania Resource Governor i ilustruje sposób użycia Resource Governor.Zawierają scenariusze, które są dostarczane Transact-SQL Przykłady kodu służącego do tworzenia i zmieniania obciążenia grupy i pule zasób.

Konfigurowanie Resource Governor

Po zainstalowaniu SQL Server 2008, Resource Governor jest dostępne, ale nie jest włączona.Istnieje wewnętrznego i domyślne grupy obciążenia oraz ich odpowiednich pul zasób.

Tworzenie i używanie własne pule zasób i obciążenie grupy, należy wykonać następujące czynności:

  • Tworzenie puli zasób ma użytkownik określa granice.

  • Tworzenie grupy obciążenia limitów i zasad, które można określić i zidentyfikować puli zasób, do której należy grupa obciążenia.

  • Definiowanie i funkcja klasyfikatora, którego chcesz użyć dla przychodzących żądań.

Po wykonaniu powyższych kroków można zobaczyć aktywnej konfiguracja Resource Governor i stan wszystkich aktywnych żądań, które są sklasyfikowane.

Określanie puli zasobów i obciążenie grupy wymagania

Twoje wyzwanie jest ustalenie grupa obciążenia i Konfiguracja puli zasób, którego chcesz użyć dla swojego SQL Server środowiska.Trzeba wiedzieć, jak SQL Server zasoby aktualnie są konsumowane przez aplikację.

Rozwiązaniem jest utworzenie grupa obciążenia w puli zasób domyślnie.Uruchom aplikację na kilka dni, a następnie użyj informacje zbierane odpowiedzi na następujące pytania.

  • Co to jest wymóg Procesora?
    Określić szacowania przepustowości Procesora, mnożąc średni całkowite użycie Procesora na żądanie przez średnią liczbę żądań na sekundę.

    Maksymalna, średnia i odchylenie standardowe użycie Procesora może służyć do określenia, czy konieczne jest maksymalny limit wykorzystania zasobów Procesora.

  • Co to jest liczba równoczesnych żądań?
    Maksymalna i średnia liczba żądań statystyki służy do określania współczynnika minimalnego współbieżność.

  • Co to jest pamięć jest wymagana?
    Użyj maksymalna i średnia całkowita pamięć używane do określania wymagań pamięci.

  • Ilość pamięci jest niezbędne dla pojedynczej kwerendy?
    Korzystają z pamięci maksymalna i średnia na statystyki kwerendy, aby określić potrzebne ilości pamięci.

  • Wszystkie kwerendy nie działa z powodu braku pamięci?
    Średni czas oczekiwania na statystyki kolejki pamięci służy do określenia, czy wszystkie kwerendy są blokowane z powodu dostępności pamięci.

scenariusze

Jako przykłady zostały zamieszczone siedmiu scenariuszy.Scenariusze 1 do 5 kumulują się; Każdy z nich opiera się na poprzednim scenariuszu.Nie ma wpływu na powyższych scenariuszy Scenariusz 6 i Scenariusz 7 bazuje na scenariusz 6.

Scenariusz 1

/ Q: Wystarczy zainstalować nową wersja programu SQL Server i chcesz użyć Resource Governor. Jak można ich używać w środowisku Moje?

A: Warto rozważyć zasób Governor do monitorowania zużycia zasób przez obciążeń.Wykonać poniższe kroki, aby zestaw środowiska Resource Governor w górę.Przykład konfiguracja jest dostarczany.

  1. Tworzenie grup obciążenia dla swojego obciążeń.

  2. Tworzenie funkcja klasyfikacji.

  3. Zarejestruj Resource Governor z funkcja klasyfikacji.

  4. Włącz Resource Governor.

  5. Monitorować liczniki wydajności zasób Governor i DMVs, które spowoduje zwrócenie informacji dotyczących zużycia zasób dla grupa obciążenia kwerendy.

Przykład

Ostrzeżenie

Następująca konfiguracja nie określono grupa obciążenia należy używać puli zasób.Domyślnie grupy obciążenia użyje domyślnej puli.

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

Scenariusz 2

/ Q: W zależności od wyniki monitorowania z scenariusz 1 chcę Zobacz zdarzenie w każdym czas że kwerenda w grupie ad hoc (GroupAdhoc) jest wykonywana dłużej niż 30 sekund.

A: Wykonaj poniższe kroki, aby zmienić bieżącą konfiguracja Resource Governor.Przykład konfiguracja jest dostarczany.

  1. Ustawić limit użycie Procesora dla grupy ad hoc.

  2. Monitorowanie zdarzeń śledzenia SQL (Resource Governor zarządzania klasy zdarzenie).

  3. Wykonywanie akcja na zdarzenie.Na przykład Ignoruj zdarzenie, Wyślij wiadomość e-mail, wysyłanie strona lub wykonać polecenia "zabicia" na żądanie.

Przykład

-- 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

Scenariusz 3

/ Q: Chcę, aby bardziej ograniczyć grupy ad hoc, tak aby nie przekracza 50 procent użycia Procesora, gdy wszystkie żądania są skumulowane.

A: Ponieważ poprzednich scenariuszach używane domyślnej puli, należy utworzyć nową pulę zasób.Wykonaj poniższe kroki, aby zmienić bieżącą konfiguracja Resource Governor.Przykład konfiguracja jest dostarczany.

  1. Utwórz nową pulę zasób i skonfiguruj limity Procesora.

  2. Konfigurowanie ad hoc grupa obciążenia używać nowej puli zasób.

Przykład

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

Scenariusz 4

/ Q: Teraz chcę gwarantują, że grupy Administrator ma zawsze zasobów do uruchamiania diagnostycznego kwerend, ale te kwerendy nie powinien trwać więcej niż 10 procent zasobów pamięci serwera.

A: Aby to zrobić, należy utworzyć nową pulę zasób.Wykonaj poniższe kroki, aby zmienić bieżącą konfiguracja Resource Governor.Przykład konfiguracja jest dostarczany.

  1. Utwórz nową pulę zasób i zestaw ograniczeń zasób.

  2. Konfigurowanie administracyjnego grupa obciążenia używać nowej puli.

Przykład

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

Scenariusz 5

/ Q: Ponieważ Moje raporty są obecnie domyślnej puli zasób, ale przy użyciu osobne grupa obciążenia (GroupReports) I chcesz upewnić, że nic w domyślnej grupie zasób ma niższy priorytet obciążenie zasób niż raporty.

A: Dla osiągnięcia tego celu należy skonfigurować ustawienie znaczenie grupy domyślnej.

Ostrzeżenie

Można zmienić ustawienia domyślnej grupy, ale nie domyślnej puli.Jeśli uważasz, że wymagana jest zmiana domyślnej puli jest silne wskaźnika, który trzeba utworzyć nową pulę zasób.

Wykonaj krok poniżej, aby zmienić bieżącą konfiguracja Resource Governor.Przykład konfiguracja jest dostarczany.

  1. Zmień ustawienie dla grupy domyślnej.

Przykład

-- 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

Scenariusz 6

/ Q: Utwórz nowy grupa obciążenia używający istniejącej puli zasób. Następnie chcę zmienić funkcja klasyfikatora przesuwania grupy do nowej puli zasób.

A: Wykonaj następujące kroki, aby zestaw nowego środowiska Resource Governor w górę.Przykład konfiguracja jest dostarczany.

  1. Tworzenie nowej puli zasób z ustawieniami domyślnymi.

  2. Tworzenie nowej grupa obciążenia w istniejącej puli.

  3. Tworzyć i rejestrować nową funkcja klasyfikatora do obsługi żądań.

Przykład

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

Scenariusz 7

/ Q: Zdecydować, że I nie wymagają grupa obciążenia (utworzona w scenariuszu 6), tak, chcę upuść grupa obciążenia i że puli zasób w.

A: Aby zmienić środowisko Resource Governor, wykonaj następujące kroki.Przykład konfiguracja jest dostarczany.

  1. Utworzyć i zarejestrować nowych funkcja klasyfikatora sklasyfikują żądania do pozostałych grupa obciążenia.

  2. Usuwanie grupa obciążenia.

  3. Usuwanie puli zasób.

  4. Zastosuj zmiany konfiguracja.

Przykład

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