Udostępnij za pośrednictwem


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

Powiązane zadania

zadania zarządzania obciążeniami