Zarządzanie obciążeniami w systemie platformy analizy
Funkcje zarządzania obciążeniami pdW programu SQL Server umożliwiają użytkownikom i administratorom przypisywanie żądań do wstępnie ustawionych konfiguracji pamięci i współbieżności. Wykorzystaj zarządzanie obciążeniem, aby poprawić wydajność swojej pracy, zarówno w przypadku obciążeń stałych, jak i mieszanych, umożliwiając żądaniom dostęp do odpowiednich zasobów, bez pozostawiania któregokolwiek z nich bez zasobów na zawsze.
Na przykład przy użyciu technik zarządzania obciążeniami w programie SQL Server PDW można wykonać następujące czynności:
Przydziel dużą liczbę zasobów do zadania ładowania.
Określ więcej zasobów na potrzeby tworzenia indeksu kolumnowego.
Sprawdź problemy z powolnym sprzężeniem skrótowym, aby ustalić, czy wymaga więcej pamięci, a następnie przydziel jej więcej pamięci.
Podstawy zarządzania obciążeniami
Kluczowe terminy
Zarządzanie obciążeniami
zarządzanie obciążeniami to możliwość zrozumienia i dostosowania wykorzystania zasobów systemowych w celu osiągnięcia najlepszej wydajności dla żądań współbieżnych.
Klasa zasobów
W systemie PDW programu SQL Server klasa zasobów jest wbudowaną rolą serwera, która ma wstępnie przypisane limity pamięci i współbieżności. SQL Server PDW przydziela zasoby do żądań zgodnie z klasą zasobów przypisaną do roli serwera, do której należy logowanie przesyłające żądania.
W węzłach obliczeniowych implementacja klas zasobów używa funkcji Zarządca zasobów w programie SQL Server. Aby uzyskać więcej informacji na temat zarządcy zasobów, zobacz Zarządca zasobów w witrynie MSDN.
Omówienie bieżącego wykorzystania zasobów
Aby zrozumieć wykorzystanie zasobów systemowych dla aktualnie uruchomionych żądań, użyj dynamicznych widoków zarządzania pdW programu SQL Server. Na przykład można użyć widoków dynamicznego zarządzania, aby zrozumieć, czy powolne duże złączenie przez haszowanie może skorzystać z przydzielenia większej ilości pamięci.
Dostosowywanie alokacji zasobów
Aby dostosować wykorzystanie zasobów, zmień członkostwo w klasie zasobów logowania, które wysyła żądanie. Rola serwera klasy zasobów ma nazwę mediumrc, largerci xlargerc. Reprezentują odpowiednio średnie, duże i bardzo duże alokacje zasobów.
Aby na przykład przydzielić dużą ilość zasobów systemowych do żądania, dodaj identyfikator logowania żądania do roli serwera largerc. Poniższa instrukcja ALTER SERVER ROLE dodaje konto logowania Anna do roli serwera o nazwie "largerc".
ALTER SERVER ROLE largerc ADD MEMBER Anna;
Opisy klas zasobów
W poniższej tabeli opisano klasy zasobów i ich alokacje zasobów systemowych.
Klasa zasobów | Ważność żądania | Maksymalne użycie pamięci* | Gniazda współbieżności (Maksymalnie = 32) | Opis |
---|---|---|---|---|
domyślny | Średni | 400 MB | 1 | Domyślnie każda sesja logowania otrzymuje niewielką ilość pamięci oraz zasoby współbieżnego dostępu dla swoich żądań. Po dodaniu logowania do klasy zasobów nowa klasa ma pierwszeństwo. Po usunięciu identyfikatora logowania ze wszystkich klas zasobów wraca on do domyślnej alokacji zasobów. |
MediumRC | Średni | 1200 MB | 3 | Przykłady żądań, które mogą wymagać średniej klasy zasobów: Operacje CTAS, które mają duże łączenia hash. Wybierz operacje, które wymagają większej ilości pamięci, aby uniknąć buforowania na dysku. Ładowanie danych do klastrowanych indeksów kolumnowych. Kompilowanie, ponowne kompilowanie i reorganizacja klastrowanych indeksów magazynu kolumn dla mniejszych tabel zawierających 10–15 kolumn. |
Większy rozmiar | Wysoki | 2,8 GB | 7 | Przykłady żądań, które mogą wymagać dużej klasy zasobów: Bardzo duże operacje CTAS, które mają ogromne łączenia typu hash lub zawierają duże agregacje, takie jak duże klauzule ORDER BY lub GROUP BY. Operacje SELECT, które wymagają znacznej ilości pamięci dla operacji takich jak sprzężenia skrótów lub agregacje, takie jak klauzule ORDER BY lub GROUP BY Ładowanie danych do klastrowanych indeksów kolumnowych. Kompilowanie, ponowne kompilowanie i reorganizacja klastrowanych indeksów magazynu kolumn dla mniejszych tabel zawierających 10–15 kolumn. |
xlargerc | Wysoki | 8,4 GB | 22 | Dodatkowa duża klasa zasobów dotyczy żądań, które mogą wymagać dodatkowego dużego użycia zasobów w czasie wykonywania. |
*Maksymalne użycie pamięci jest przybliżeniem.
Ważność żądania
Ważność żądania odnosi się do ilości czasu procesora, który SQL Server działający na węzłach obliczeniowych przydziela żądaniom. Żądania o wyższym priorytecie otrzymują więcej czasu procesora.
Maksymalne użycie pamięci
Maksymalne użycie pamięci to maksymalna ilość dostępnej pamięci, która może być używana przez żądanie w ramach każdej przestrzeni przetwarzania. Na przykład żądanie mediumrc może używać do 1200 MB do przetwarzania w każdej dystrybucji. Nadal ważne jest, aby dane nie były zniekształcone, aby uniknąć sytuacji, w której kilka rozkładów wykonuje większość pracy.
Miejsca współbieżności
Celem przydzielenia 1, 3, 7 i 22 gniazd współbieżności jest umożliwienie uruchamiania zarówno dużych, jak i małych procesów w tym samym czasie, bez blokowania małego procesu podczas uruchamiania dużego procesu. Na przykład program SQL Server PDW może przydzielić maksymalnie 32 gniazda współbieżności, aby uruchomić 1 dodatkowe duże żądanie (22 gniazda), 1 duże żądanie (7 miejsc) i 1 średnie żądanie (3 gniazda) w tym samym czasie.
Przykłady przydzielania do 32 miejsc współbieżności do współbieżnych żądań:
28 miejsc = 4 duże
30 slotów = 10 średnich
32 gniazda = 32 domyślne
32 gniazda = 1 bardzo duży + 1 duży + 1 średni
32 gniazda = 2 duże + 4 średnie + 6 domyślne
Załóżmy, że do programu SQL Server PDW są przesyłane 6 dużych żądań, a następnie przesłano 10 żądań domyślnych. Silnik SQL Server PDW przetworzy żądania w kolejności priorytetu w następujący sposób:
Przydziel 28 miejsc współbieżności, aby rozpocząć przetwarzanie 4 dużych żądań, gdy pamięć stanie się dostępna, i zachowaj 2 duże żądania w kolejce.
Przydziel 4 gniazda współbieżności, aby rozpocząć przetwarzanie 4 żądań domyślnych i zachować 6 domyślnych żądań w kolejce oczekiwania.
Gdy żądania zakończą się i staną się dostępne sloty współbieżności, system PDW programu SQL Server przydzieli pozostałe żądania zgodnie z dostępnymi zasobami i priorytetem. Na przykład w przypadku otwarcia 7 gniazd współbieżności oczekiwanie na duże żądania będzie miało wyższy priorytet dla 7 miejsc niż oczekiwanie na średnie żądania. Jeśli otworzy się 6 gniazd, wówczas SQL Server PDW przydzieli jeszcze 6 żądań o rozmiarze domyślnym. Jednak wszystkie sloty pamięci i współbieżności muszą być dostępne, zanim SQL Server PDW zezwala na uruchomienie żądania.
W ramach każdej klasy zasobów, żądania są przetwarzane w kolejności pierwsze weszło, pierwsze wyszło (FIFO).
Uwagi ogólne
Jeśli identyfikator logowania należy do więcej niż jednej klasy zasobów, pierwszeństwo ma klasa z największą liczbą zasobów.
Po dodaniu lub usunięciu identyfikatora logowania z klasy zasobów zmiana zostanie w życie natychmiast dla wszystkich przyszłych żądań; Nie ma to wpływu na bieżące żądania uruchomione lub oczekujące. Logowanie nie musi się rozłączać i ponownie łączyć, aby zaszła zmiana.
Dla każdego logowania ustawienia klasy zasobów są stosowane do poszczególnych instrukcji i operacji, a nie do sesji.
Zanim program SQL Server PDW uruchomi instrukcję, próbuje uzyskać gniazda współbieżności wymagane dla żądania. Jeśli nie może uzyskać wystarczającej liczby miejsc współbieżności, program SQL Server PDW przenosi żądanie do stanu oczekiwania—to-be-executed. Wszystkie zasoby systemu, które zostały już przydzielone do żądania, są zwracane z powrotem do systemu.
Większość instrukcji SQL zawsze potrzebuje domyślnych alokacji zasobów i dlatego nie jest kontrolowana przez klasy zasobów. Na przykład funkcja CREATE LOGIN wymaga tylko niewielkiej ilości zasobów i jest przydzielana domyślnym zasobom, nawet jeśli identyfikator logowania wywołujący polecenie CREATE LOGIN jest członkiem klasy zasobów. Jeśli na przykład Anna jest członkiem większej klasy zasobów i przesyła instrukcję CREATE LOGIN, instrukcja CREATE LOGIN zostanie uruchomiona z domyślną liczbą zasobów.
Instrukcje i operacje SQL zarządzane przez klasy zasobów:
ALTER INDEX REBUILD
ALTER INDEX REORGANIZE (przebudowa indeksu)
ALTER TABLE REBUILD
TWORZENIE INDEKSU KLASTROWANEGO
UTWÓRZ KLASTROWANY INDEKS MAGAZYNU KOLUMN
UTWÓRZ TABELĘ ZA POMOCĄ SELECT
UTWÓRZ TABELĘ ZDALNĄ Z SELECT
Ładowanie danych za pomocą dwloader.
INSERT-SELECT
AKTUALIZACJA
USUNĄĆ
PRZYWRÓĆ BAZĘ DANYCH podczas przywracania do urządzenia przy użyciu większej liczby węzłów przetwarzania.
SELECT, z wyłączeniem zapytań dotyczących wyłącznie DMV
Ograniczenia i ograniczenia
Klasy zasobów zarządzają alokacjami pamięci i współbieżności. Nie zarządzają operacjami wejściowymi/wyjściowymi.
Metadane
Dynamiczne widoki zarządzania zawierające informacje o klasach zasobów i członkach klas zasobów.
Dynamiczne widoki zarządzania (DMVs), które zawierają informacje o stanie żądań oraz o zasobach, których one wymagają:
Powiązane widoki systemowe udostępnione z widoków dynamicznego zarządzania (DMV) programu SQL Server na węzłach obliczeniowych. Zobacz Dynamiczne Widoki Zarządzania dla programu SQL Server, aby uzyskać linki do tych widoków w witrynie MSDN.
sys.dm_pdw_nodes_resource_governor_resource_pools
sys.dm_pdw_nodes_resource_governor_workload_groups
sys.dm_pdw_nodes_resource_governor_resource_pools
sys.dm_pdw_nodws_resource_governor_workload_groups
sys.dm_pdw_nodes_exec_sessions
sys.dm_pdw_nodes_exec_requests
sys.dm_pdw_nodes_exec_query_memory_grants
sys.dm_pdw_nodes_exec_query_resource_semaphores
sys.dm_pdw_nodes_os_memory_brokers
sys.dm_pdw_nodes_os_memory_cache_entries
sys.dm_pdw_nodes_exec_cached_plans