Limity współbieżności i kolejkowanie na platformie Apache Spark dla Microsoft Fabric

Dotyczy:✅ Inżynieria danych sieci szkieletowej i nauka o danych

Microsoft Fabric przydziela zasoby obliczeniowe za pośrednictwem pojemności. Pojemność to dedykowany zestaw zasobów dostępnych w danym momencie, a różne elementy używają tej pojemności inaczej. Fabric zapewnia pojemność za pośrednictwem jednostek SKU Fabric i pojemności próbnej. Aby dowiedzieć się więcej, zobacz Co to jest pojemność?.

Podczas tworzenia pojemności Fabric należy wybrać rozmiar w oparciu o potrzeby związane z obciążeniem. W przypadku platformy Apache Spark każda jednostka pojemności jest mapowana na dwa rdzenie wirtualne platformy Spark.

Jedna jednostka mocy obliczeniowej = dwa rdzenie obliczeniowe platformy Spark

Po udostępnieniu pojemności administratorzy tworzą obszary robocze w tej pojemności. VCores Spark są współdzielone pomiędzy elementami opartymi na Sparku w tych przestrzeniach roboczych, w tym z notatnikami, definicjami zadań w Spark oraz zadaniami przy jeziorze.

Kontrola współbieżności i zarządzanie kolejkowaniem

Spark w Fabric używa ograniczania i kolejkowania opartego na rdzeniach. Przyjęcie zadania opiera się na dostępnych VCores platformy Spark w zakupionej pojemności. Kolejkowanie wykorzystuje zasadę FIFO (pierwsze weszło, pierwsze wyszło) i automatycznie ponawia próby przetworzenia zadań w kolejce, gdy tylko dostępna jest pojemność.

Gdy zadanie notesu lub lakehouse (takie jak Load to Table) jest przesyłane, gdy całkowita pojemność jest wykorzystywana, Fabric zwraca następujący błąd:

[TooManyRequestsForCapacity] HTTP Response code 430: This Spark job can't be run because you have hit a Spark compute or API rate limit. To run this Spark job, cancel an active Spark job through the Monitoring hub, or choose a larger capacity SKU or try again later.

Po włączeniu kolejkowania zadania wyzwalane z potoków, harmonogramu i definicji zadań Spark są automatycznie kolejkowane i ponownie próbowane.

Kolejkowanie nie ma zastosowania do zadań notesu interaktywnego ani zadań notesu przesłanych za pośrednictwem publicznego interfejsu API notesu.

Uwaga

Wygaśnięcie kolejki wynosi 24 godziny od czasu przesłania zadania. Po upływie tego okresu zadania są usuwane z kolejki i muszą zostać ponownie złożone.

Jeśli pojemność Fabric jest w stanie ograniczeń wydajności, nowe zadania Spark są odrzucane zamiast być dodawane do kolejki.

Ograniczanie działania Spark w Fabric opiera się na dostępnych rdzeniach, a nie na arbitralnym limicie liczby zadań. Domyślnie platforma Spark używa optymistycznej kontroli dostępu, w której zadania są przyjmowane przy użyciu minimalnych wymagań podstawowych. Aby dowiedzieć się więcej, zobacz Wstęp do zadań i zarządzanie nimi.

Konfiguracja rozszerzania i puli

Pojemności sieci szkieletowej obsługują przeciążenie, co umożliwia wykorzystanie do 3× zakupionych rdzeni wirtualnych Spark. Zwiększanie szybkości może zwiększyć współbieżność, umożliwiając wykonywanie bardziej równoległe, gdy pojemność jest dostępna.

Uwaga

Współczynnik burstingu zwiększa łączną liczbę wirtualnych rdzeni Spark na potrzeby współbieżnego przetwarzania i może być również używany przez jedno zadanie, jeśli pula Spark jest skonfigurowana z odpowiednią liczbą rdzeni. Innymi słowy, konfiguracja puli określa maksymalną liczbę rdzeni, jakich może używać zadanie, a nie tylko podstawową alokację zasobów SKU.

Przykład: F64 z rozerwaniem

Jeśli używasz jednostki SKU F64 , maksymalna liczba rdzeni wirtualnych platformy Spark wynosi 384:

  • Możesz skonfigurować początkową lub niestandardową pulę z maksymalnie 384 rdzeniami wirtualnymi platformy Spark.
  • Jeśli pula jest skonfigurowana do tego limitu, pojedyncze zadanie Spark może zużywać wszystkie 384 VCores.
  • Przykład: Medium węzły (każdy po 8 rdzeni wirtualnych) × maksymalnie 48 węzłów = 384 rdzenie wirtualne.

Wskazówka

Aby zmaksymalizować wydajność zadania, skonfiguruj pulę obszarów roboczych przy użyciu odpowiedniego rozmiaru węzła i maksymalnej liczby węzłów.

Kontrola wyburzania na poziomie zadania

Administratorzy pojemności mogą włączać lub wyłączać tryb zwiększania przepustowości na poziomie zadań w katalogu OneLake>Govern>Pojemności:

  1. Na stronie Zarządzanie zasobami filtruj lub przeszukaj listę, aby znaleźć pojemność.
  2. Obok nazwy pojemności wybierz menu >Więcej opcjiUstawienia.
  3. Otwórz ustawienia >Open Spark Compute.
  4. Użyj opcji Wyłącz burstingu na poziomie zadania.

Gdy skalowanie na poziomie zadania jest wyłączone, Spark uniemożliwia wykorzystanie całej dostępnej mocy obliczeniowej (w tym rdzeni burzliwych). To zachowanie pomaga zachować zasoby dostępne dla innych jednoczesnych zadań.

To ustawienie jest przydatne w przypadku środowisk wielodostępnych lub o wysokiej współbieżności, w których sprawiedliwość i przepustowość między zespołami są ważniejsze niż maksymalizacja czasu wykonania jednego zadania.

Przykładowe scenariusze

Włączono skalowanie (ustawienie domyślne)

Duże zadanie notesu wsadowego może zużywać wszystkie 384 rdzenie wirtualne Spark w zasobach typu F64, gdy żadne inne zadania nie są uruchomione.

Wyłączono tryb burst

pl-PL: Zadanie można ograniczyć do podstawowego limitu rdzeni (na przykład 128 rdzeni wirtualnych platformy Spark dla F64), pozostawiając miejsce na rozpoczęcie innych zadań.

Wskazówka

W przypadku mieszanych obciążeń (na przykład ETL, uczenia maszynowego i analizy ad hoc) wyłączenie przyspieszania na poziomie zadania może zmniejszyć monopolizację zasobów i opóźnienia kolejkowania.

Limity jednostek SKU pojemności platformy Spark

Jednostka SKU pojemności sieci fabricowej Równoważna jednostka SKU Power BI Rdzenie wirtualne Spark Maksymalna liczba wirtualnych rdzeni Spark z współczynnikiem impulsu Limit kolejki
F2 - 4 20 4
F4 - 8 24 4
F8 - 16 48 8
F16 - 32 96 16
F32 - 64 192 32
F64 P1 128 384 64
F128 P2 256 768 128
F256 Zobacz materiał P3 512 1536 256
F512 P4 1024 3072 512
F1024 - 2048 6144 1024
F2048 - 4096 12288 2048
F4096 - 8192 24576 4096
F8192 - 16384 49152 8192
Pojemność wersji próbnej P1 128 128 Niedostępne
FTL4 - 8 16 16

Wskazówka

W przypadku obciążeń korzystających z mniejszej pojemności wersji próbnej, takiej jak FTL4, zaleca się użycie małej puli obliczeniowej oraz podejścia do współużytkowania sesji opartego na wysokiej współbieżności w celu optymalizacji współbieżności.

Ważne

Ta tabela dotyczy tylko zadań Spark uruchomionych w pojemności Fabric. W przypadku włączenia rozliczeń skalowania automatycznego zadania platformy Spark są uruchamiane oddzielnie od pojemności sieci szkieletowej i nie używają zwiększania wydajności ani smoothingu. Łączna liczba rdzeni obliczeniowych platformy Spark jest dwukrotnie większa niż maksymalne jednostki pojemności ustawione w konfiguracjach automatycznego skalowania.

Przykład obliczenia

  • Jednostka SKU F64 zapewnia 128 rdzeni obliczeniowych Spark.
  • Dzięki współczynnikowi 3× w trybie burst obsługuje do 384 rdzeni wirtualnych Spark.
  • Jeśli pula jest skonfigurowana dla wszystkich 384 rdzeni wirtualnych, jedno zadanie może zużywać wszystkie 384, gdy pojemność jest w przeciwnym razie bezpłatna.
  • Przykład: trzy zadania z 128 VCore są uruchamiane jednocześnie lub jedno zadanie z 384 VCore.

Uwaga

Zadania wygasają z kolejki po 24 godzinach i muszą zostać ponownie przesłane.

Aby dowiedzieć się więcej na temat pul startowych i konfiguracji, zobacz Konfigurowanie pul startowych w usłudze Fabric.