Udostępnij przez


Izolacja grupy obciążeń usługi Azure Synapse Analytics

W tym artykule wyjaśniono, jak grupy obciążeń mogą służyć do konfigurowania izolacji obciążeń, zawierania zasobów i stosowania reguł środowiska uruchomieniowego na potrzeby wykonywania zapytań.

Grupy obciążenia

Grupy obciążeń to kontenery dla zestawu żądań i są podstawą zarządzania obciążeniami, w tym izolacji obciążeń, które są konfigurowane w systemie. Grupy obciążeń są tworzone przy użyciu składni CREATE WORKLOAD GROUP . Prosta konfiguracja zarządzania obciążeniami może zarządzać obciążeniami danych i zapytaniami użytkowników. Na przykład grupa obciążeń o nazwie wgDataLoads zdefiniuje aspekty obciążenia dla danych ładowanych do systemu. Ponadto grupa obciążeń o nazwie wgUserQueries zdefiniuje aspekty obciążenia dla użytkowników uruchamiających zapytania w celu odczytu danych z systemu.

W poniższych sekcjach opisano, jak grupy robocze zapewniają możliwość definiowania izolacji, ograniczenia, definiowania zasobów dla żądań i przestrzegania reguł wykonywania.

Nadzór nad zasobami

Grupy obciążeń zarządzają zasobami pamięci i procesora CPU. Operacje dysku, sieci oraz bazy danych tempdb nie są regulowane. Zarządzanie zasobami dla pamięci i procesora CPU jest następujące:

Pamięć jest określana na poziomie żądania i przechowywana przez cały czas trwania żądania. Aby uzyskać szczegółowe informacje na temat konfigurowania ilości pamięci na żądanie, zobacz Temat Zasoby na żądanie . Parametr MIN_PERCENTAGE_RESOURCE dla grupy obciążeń przeznacza pamięć wyłącznie dla tej grupy obciążeń. Parametr CAP_PERCENTAGE_RESOURCE dla grupy obciążeń to twardy limit pamięci, z których może korzystać grupa obciążeń.

Zasoby procesora są zarządzane na poziomie grupy obciążeń i dzielone przez wszystkie żądania w grupie obciążeń. Zasoby procesora CPU są elastyczne w porównaniu z pamięcią, która jest przypisana do żądania na czas jego wykonywania. Biorąc pod uwagę, że procesor CPU jest zasobem płynnym, nieużywane zasoby procesora CPU mogą być używane przez wszystkie grupy obciążeń. Oznacza to, że użycie procesora może przekroczyć parametr CAP_PERCENTAGE_RESOURCE dla grupy roboczej. Oznacza to również, że parametr MIN_PERCENTAGE_RESOURCE dla grupy obciążeń nie jest twardą rezerwacją, taką jak pamięć. Gdy zasoby CPU są przedmiotem sporu, użycie będzie zgodne z definicją CAP_PERCENTAGE_RESOURCE dla grup obciążeń.

Izolacja obciążeń

Izolacja obciążenia oznacza, że zasoby są zarezerwowane wyłącznie dla grupy obciążeń. Izolacja obciążenia jest osiągana przez skonfigurowanie parametru MIN_PERCENTAGE_RESOURCE na wartość większą niż zero w składni CREATE WORKLOAD GROUP . W przypadku obciążeń ciągłego wykonywania, które muszą być zgodne z ścisłymi umowami SLA, izolacja zapewnia, że zasoby są zawsze dostępne dla grupy obciążeń.

Konfigurowanie izolacji obciążenia niejawnie definiuje gwarantowany poziom współbieżności. Na przykład grupa obciążeń z MIN_PERCENTAGE_RESOURCE ustawioną na 30% oraz REQUEST_MIN_RESOURCE_GRANT_PERCENT ustawioną na 2% gwarantuje możliwość obsługi 15 jednoczesnych operacji. Poziom konkurencji jest gwarantowany, ponieważ 15-2 [%] sloty zasobów są zarezerwowane w grupie zadań roboczych o każdej porze (niezależnie od tego, jak skonfigurowano REQUEST_MAX_RESOURCE_GRANT_PERCENT). Jeśli REQUEST_MAX_RESOURCE_GRANT_PERCENT jest większa niż REQUEST_MIN_RESOURCE_GRANT_PERCENT, a CAP_PERCENTAGE_RESOURCE jest większa niż MIN_PERCENTAGE_RESOURCE, dodatkowe zasoby można dodać na żądanie (na podstawie dostępności zasobów). Jeśli REQUEST_MAX_RESOURCE_GRANT_PERCENT i REQUEST_MIN_RESOURCE_GRANT_PERCENT są równe, a CAP_PERCENTAGE_RESOURCE jest większa niż MIN_PERCENTAGE_RESOURCE, możliwa jest dodatkowa współbieżność. Rozważ poniższą metodę, aby określić gwarantowaną współbieżność.

[Gwarantowana współbieżność] = [MIN_PERCENTAGE_RESOURCE] / [REQUEST_MIN_RESOURCE_GRANT_PERCENT]

Uwaga

Istnieją określone minimalne wartości poziomu usługi dla min_percentage_resource. Aby uzyskać więcej informacji, zobacz Efektywne wartości.

Przy braku izolacji obciążenia, zapytania działają w wspólnej puli zasobów. Dostęp do zasobów w puli udostępnionej nie jest gwarantowany i jest przypisywany na podstawie ważności .

Należy zachować ostrożność podczas konfigurowania izolacji obciążenia, ponieważ zasoby są przydzielane do grupy obciążeń, nawet jeśli w grupie obciążeń nie ma aktywnych żądań. Nadmierna izolacja może prowadzić do zmniejszenia ogólnego wykorzystania systemu.

Użytkownicy powinni unikać rozwiązania do zarządzania obciążeniami, które konfigurują 100% izolacji obciążenia. 100% izolacji zostaje osiągnięta, gdy suma min_percentage_resource skonfigurowanych we wszystkich grupach obciążeń wynosi 100%. Ten typ konfiguracji jest zbyt restrykcyjny i sztywny, pozostawiając mało miejsca na żądania zasobów, które są przypadkowo błędnie sklasyfikowane. Istnieje aprowizacja umożliwiająca wykonanie jednego żądania z grup obciążeń, które nie zostały skonfigurowane pod kątem izolacji. Zasoby przydzielone do tego żądania będą wyświetlane jako zero w systemach Dynamic Management Views (DMVs) i pożyczają niewielką ilość zasobów z zasobów zarezerwowanych przez system.

Uwaga

Aby zapewnić optymalne wykorzystanie zasobów, rozważ rozwiązanie do zarządzania obciążeniami, które wykorzystuje pewną izolację, aby zapewnić spełnienie umów SLA i zintegrowane z udostępnionymi zasobami dostępnymi na podstawie ważności obciążenia.

Ograniczanie obciążenia roboczego

Zawieranie obciążeń odnosi się do ograniczania ilości zasobów, które może wykorzystywać grupa obciążeń. Kontrola obciążenia jest osiągana poprzez ustawienie parametru CAP_PERCENTAGE_RESOURCE na mniej niż 100 w składni CREATE WORKLOAD GROUP. Rozważmy scenariusz, w którym użytkownicy potrzebują dostępu do odczytu do systemu, aby mogli uruchamiać analizę scenariuszową za pośrednictwem zapytań ad hoc. Te typy żądań mogą mieć negatywny wpływ na inne obciążenia uruchomione w systemie. Konfiguracja ograniczenia gwarantuje, że liczba zasobów jest ograniczona.

Konfigurowanie ograniczania obciążenia niejawnie definiuje maksymalny poziom współbieżności. Przy ustawieniu CAP_PERCENTAGE_RESOURCE na 60% oraz REQUEST_MIN_RESOURCE_GRANT_PERCENT na 1%, dla grupy obciążenia dozwolona jest współbieżność na poziomie 60. Rozważ poniższą metodę określania maksymalnej współbieżności:

[Maksymalna współbieżność] = [CAP_PERCENTAGE_RESOURCE] / [REQUEST_MIN_RESOURCE_GRANT_PERCENT]

Uwaga

Efektywny CAP_PERCENTAGE_RESOURCE grupy obciążeń nie osiągnie 100%, gdy tworzone są grupy obciążeń z MIN_PERCENTAGE_RESOURCE na poziomie większym niż zero. Zobacz sys.dm_workload_management_workload_groups_stats , aby uzyskać efektywne wartości środowiska uruchomieniowego.

Zasoby na definicję żądania

Grupy obciążeń zapewniają mechanizm definiowania minimalnej i maksymalnej ilości zasobów przydzielonych na żądanie za pomocą parametrów REQUEST_MIN_RESOURCE_GRANT_PERCENT i REQUEST_MAX_RESOURCE_GRANT_PERCENT w składni CREATE WORKLOAD GROUP . Zasób w tym przypadku to pamięć. Nadzór nad zasobami procesora CPU jest omówiony w sekcji Zarządzanie zasobami .

Uwaga

REQUEST_MAX_RESOURCE_GRANT_PERCENT jest opcjonalnym parametrem, który domyślnie przejmuje tę samą wartość jak określono dla REQUEST_MIN_RESOURCE_GRANT_PERCENT.

Podobnie jak w przypadku wybierania klasy zasobów, konfigurowanie REQUEST_MIN_RESOURCE_GRANT_PERCENT ustawia wartość zasobów używanych przez żądanie. Ilość zasobów wskazanych przez ustawioną wartość jest gwarantowana na potrzeby realizacji żądania przed jego rozpoczęciem. Dla klientów migrujących z klas zasobów do grup obciążeń warto rozważyć skorzystanie z artykułu How To, aby mapować klasy zasobów na grupy obciążeń jako punkt początkowy.

Skonfigurowanie REQUEST_MAX_RESOURCE_GRANT_PERCENT wartości większej niż REQUEST_MIN_RESOURCE_GRANT_PERCENT umożliwia systemowi przydzielanie większej ilości zasobów na żądanie. Podczas planowania żądania system określa rzeczywistą alokację zasobów do żądania, czyli między REQUEST_MIN_RESOURCE_GRANT_PERCENT a REQUEST_MAX_RESOURCE_GRANT_PERCENT, na podstawie dostępności zasobów w puli udostępnionej i bieżącego obciążenia systemu. Zasoby muszą istnieć w udostępnionej puli zasobów, gdy zapytanie jest zaplanowane.

Uwaga

REQUEST_MIN_RESOURCE_GRANT_PERCENT i REQUEST_MAX_RESOURCE_GRANT_PERCENT mają efektywne wartości zależne od efektywnych wartości MIN_PERCENTAGE_RESOURCE i CAP_PERCENTAGE_RESOURCE. Zobacz sys.dm_workload_management_workload_groups_stats , aby uzyskać efektywne wartości środowiska uruchomieniowego.

Zasady wykonania

W systemach raportowania ad hoc użytkownicy mogą przypadkowo wykonywać niekontrolowane zapytania, które poważnie wpływają na wydajność innych osób. Administratorzy systemu są zmuszeni do poświęcania czasu na zabijanie uciekających zapytań w celu zwolnienia zasobów systemowych. Grupy obciążeń oferują możliwość skonfigurowania reguły limitu czasu wykonywania zapytania w celu anulowania zapytań, które przekroczyły określoną wartość. Reguła jest konfigurowana przez ustawienie parametru QUERY_EXECUTION_TIMEOUT_SEC w składni CREATE WORKLOAD GROUP .

Zasoby wspólnej puli

Zasoby puli współdzielonej są zasobami, które nie są skonfigurowane do izolacji. Grupy obciążeń z MIN_PERCENTAGE_RESOURCE ustawione na zero, wykorzystują zasoby z puli udostępnionej do wykonywania żądań. Grupy obciążeń z CAP_PERCENTAGE_RESOURCE większe niż MIN_PERCENTAGE_RESOURCE też również używają zasobów udostępnionych. Ilość zasobów dostępnych w puli udostępnionej jest obliczana w następujący sposób.

[Pula udostępniona] = 100 — [suma MIN_PERCENTAGE_RESOURCE we wszystkich grupach obciążeń]

Dostęp do zasobów w puli udostępnionej jest przydzielany na podstawie ważności . Żądania o takim samym poziomie ważności będą uzyskiwać dostęp do zasobów wspólnej puli zgodnie z zasadą kolejności przyjścia.

Następne kroki