Resource Governor Workload Management Scenarios
Można użyć zasób Governor w różny sposób monitorowania i zarządzania nimi obciążenie pracą w sieci SQL Server System. Ten temat zawiera omówienie sposobów konfigurowania zasób Governor i ilustruje sposób użycia zasób Governor.Dołącz scenariuszy, które zostały udostępnione Transact-SQL Przykłady kodu służącego do tworzenia i zmieniania obciążenia grupy i pule zasób.
Konfigurowanie zasób Governor
Po zainstalowaniu SQL Server 2008Governor zasób jest dostępny do użytku, ale nie jest włączona. Istnieją wewnętrznego i domyślne grupy obciążenia pracą i ich odpowiednich pul zasób.
Tworzenie i używanie własne pule zasób i Obciążenie pracą grup, należy wykonać następujące czynności:
Tworzenie puli zasób, zawierające określone limity.
Tworzenie grupy obciążenia limitów i zasad, które można określić i identyfikowanie puli zasób, do których należy dana grupa obciążenia.
Definiowanie i funkcja klasyfikatora, którego chcesz użyć dla przychodzących żądań.
Po wykonaniu powyższych kroków, zobacz Konfiguracja zasób Governor active i stan wszystkich aktywnych żądań, które są sklasyfikowane.
Określanie pulę zasób i grupa obciążenia wymagania
Twoje wyzwanie jest ustalenie grupa obciążenia i Konfiguracja puli zasób, którego chcesz użyć dla użytkownika SQL Server środowisko. Trzeba wiedzieć, w jaki sposób SQL Server zasoby aktualnie są zużywane przez aplikację.
Rozwiązaniem jest utworzenie grupy obciążenia w puli zasób domyślnie.Uruchom aplikację na kilka dni i używać informacji zbierania odpowiedzi na następujące pytania.
Wymagania dotyczące PROCESORA co to jest?
Określić szacowania przepustowości do procesora CPU, mnożąc średni całkowite obciążenie PROCESORA na żądanie przez średnią liczbę żądań na sekundę.Maksymalna, średnia i odchylenie standardowe użycie PROCESORA może służyć do ustalenia, czy maksymalny limit wykorzystania zasobów PROCESORA jest to konieczne.
Co to jest liczba żądań jednocześnie?
Maksymalna i średnia liczba żądań statystyk służy do określania współczynnika minimalne współbieżność.Co to jest całkowitej pamięci, która jest niezbędna?
Za pomocą maksymalna i średnia całkowita pamięć używane do określania wymagań pamięci.Ilość pamięci jest wymagany dla jednej kwerendzie?
Za pomocą pamięci maksymalna i średnia na kwerendy statystyki określić ilość pamięci jest wymagane.Jest dowolną kwerendę nie działa z powodu braku pamięci?
Średni czas oczekiwania na temat 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 siedem scenariuszy.Scenariusze 1 do 5 są skumulowane; każdy z nich opiera się na poprzednim scenariuszu.Scenariusz 6 nie ma wpływu na poprzednim scenariuszy i Scenariusz 7 opiera się na scenariusz 6.
Scenariusz 1
/ Q: Po prostu I zainstalować nową wersja programu SQL Server i chcesz użyć zasób Governor. Jak mogę użyć go w środowisku sieci?
A: Należy rozważyć korzystanie z narzędzia zasób Governor w celu monitorowania zużycia zasób przez obciążenia pracą. Postępuj zgodnie z instrukcjami poniżej, aby zestaw up środowiska zasób Governor.Przykład konfiguracja jest wpisywana automatycznie.
Tworzenie grup obciążenia dla swojego obciążenia pracą.
Tworzenie funkcja klasyfikacji.
Zarejestruj zasób Governor z funkcja klasyfikacji.
Włącz zasób Governor.
Należy monitorować liczniki wydajności zasób Governor i kwerendy DMVs, która spowoduje zwrócenie informacji dotyczących zużycia zasób dla grupa obciążenia.
Przykład
Uwaga
Następująca konfiguracja nie są określone w puli zasób, które grupa obciążenia powinien być używany.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 ilekroć czy kwerendy w grupy ad hoc (GroupAdhoc) uruchomione dłużej niż 30 sekund.
A: Wykonaj poniższe kroki, aby zmienić bieżącą konfiguracja zasób Governor. Przykład konfiguracja jest wpisywana automatycznie.
zestaw limit na użycie PROCESORA dla grup ad hoc.
Monitorowanie zdarzeń śledzenia SQL (zasób Governor zarządzania klasy zdarzeń).
Akcje są wykonywane 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 obciążenia PROCESORA, gdy wszystkie żądania są łączony.
A: Ponieważ poprzednie scenariuszy domyślnej puli, należy utworzyć nową pulę zasób. Wykonaj poniższe kroki, aby zmienić bieżącą konfiguracja zasób Governor.Przykład konfiguracja jest wpisywana automatycznie.
Utwórz nową pulę zasób i skonfigurować limity PROCESORA.
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ę zagwarantować, że grupy administratorów ma zawsze zasobów, aby uruchomić kwerendę diagnostycznych, ale te kwerendy nie powinien mieć 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 zasób Governor.Przykład konfiguracja jest wpisywana automatycznie.
Utwórz nową pulę zasób i zestaw ograniczeń zasób.
Konfigurowanie administracji 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 w puli zasób domyślnie, ale przy użyciu oddzielne grupa obciążenia (GroupReports), I chcesz upewnić się, że wszystko, co w domyślnej grupie zasób ma niższy priorytet użycia zasób niż raporty.
A: Aby to osiągnąć należy skonfigurować ustawienie znaczenie w domyślnej grupie.
Uwaga
Można zmienić ustawienia dla grupy domyślnej, ale nie domyślnej puli.Jeśli istnieje podejrzenie, że zmiany są potrzebne do domyślnej puli, jest to silne wskaźnika, który chcesz utworzyć nową pulę zasób.
Wykonaj krok poniżej, aby zmienić bieżącą konfiguracja zasób Governor.Przykład konfiguracja jest wpisywana automatycznie.
- 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: Chcę, aby utworzyć nową 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 up nowego środowiska zasób Governor. Przykład konfiguracja jest wpisywana automatycznie.
Utwórz nową pulę zasób z ustawieniami domyślnymi.
Tworzenie nowej grupa obciążenia znajdujący się w istniejącej puli.
Tworzyć i rejestrować nową funkcja obsługi żądań klasyfikatora.
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: I zdecydować, że I nie będzie wymagał grupa obciążenia (utworzona w scenariusz 6), co chcę, aby upuścić grupa obciążenia i puli zasób, że jest on cali
A: Aby zmienić środowisko zasób Governor, wykonaj następujące kroki. Przykład konfiguracja jest wpisywana automatycznie.
Utwórz i Zarejestruj nowych funkcja klasyfikatora, która będzie klasyfikowania żądań do grupy obciążenie pracą pozostałą.
Usuwanie grupa obciążenia.
Usuwanie puli zasób.
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
See Also