Udostępnij za pośrednictwem


Debugowanie przy użyciu diagramu zadań fizycznych (wersja zapoznawcza) w witrynie Azure Portal

Diagram zadań fizycznych w witrynie Azure Portal może pomóc w wizualizacji kluczowych metryk zadania za pomocą węzła przesyłania strumieniowego w formacie diagramu lub tabeli, na przykład: użycie procesora CPU, wykorzystanie pamięci, zdarzenia wejściowe, identyfikatory partycji i opóźnienie znaku wodnego. Pomaga zidentyfikować przyczynę problemu podczas rozwiązywania problemów.

W tym artykule pokazano, jak używać diagramu zadań fizycznych do analizowania wydajności zadania i szybkiego identyfikowania wąskiego gardła w witrynie Azure Portal.

Ważne

Ta funkcja jest obecnie dostępna w wersji zapoznawczej. Zobacz Dodatkowe warunki użytkowania wersji zapoznawczych platformy Microsoft Azure, aby zapoznać się z postanowieniami prawnymi dotyczącymi funkcji platformy Azure, które są w wersji beta lub wersji zapoznawczej albo w inny sposób nie zostały jeszcze wydane jako ogólnie dostępne.

Identyfikowanie równoległości zadania

Zadanie z równoległym przetwarzaniem jest skalowalnym scenariuszem w usłudze Stream Analytics, który może zapewnić lepszą wydajność. Jeśli zadanie nie jest w trybie równoległym, najprawdopodobniej ma pewne wąskie gardło wydajności. Ważne jest, aby określić, czy zadanie jest w trybie równoległym, czy nie. Diagram zadań fizycznych zawiera wizualny graf ilustrowany równoległość zadań. Jeśli na diagramie zadań fizycznych istnieje interakcja danych między różnymi węzłami przesyłania strumieniowego, to zadanie jest zadaniem niezrównanym, które wymaga większej uwagi. Na przykład poniższy diagram zadań innych niż równoległe:

Zrzut ekranu przedstawiający zadanie niezrównane na diagramie fizycznym.

Możesz rozważyć optymalizację zadania równoległego (na przykład poniżej), ponownie zapisując zapytanie lub aktualizując konfiguracje danych wejściowych/wyjściowych za pomocą symulatora diagramu zadań w rozszerzeniu ASA programu Visual Studio Code lub edytorze zapytań w witrynie Azure Portal. Aby dowiedzieć się więcej, zobacz Optymalizowanie zapytania przy użyciu symulatora diagramu zadań (wersja zapoznawcza).

Zrzut ekranu przedstawiający widok niesymetryczności danych z diagramem fizycznym.

Kluczowe metryki identyfikujące wąskie gardło zadania równoległego

Opóźnienia znaku wodnego i zdarzeń wejściowych z zaległych to kluczowe metryki umożliwiające określenie wydajności zadania usługi Stream Analytics. Jeśli opóźnienie znaku wodnego zadania stale rośnie, a zdarzenia wejściowe są zaległe, zadanie nie może nadążyć za szybkością zdarzeń wejściowych i w odpowiednim czasie wygenerować dane wyjściowe. Z punktu widzenia zasobów obliczeniowych zasoby procesora CPU i pamięci są używane na wysokim poziomie, gdy tak się stanie.

Diagram zadań fizycznych wizualizuje te kluczowe metryki na diagramie razem, aby zapewnić pełny obraz ich identyfikowania wąskiego gardła.

Zrzut ekranu przedstawiający kluczowe metryki w węźle na diagramie fizycznym.

Aby uzyskać więcej informacji na temat definicji metryk, zobacz Wymiar nazwy węzła usługi Azure Stream Analytics.

Identyfikowanie nierównych rozproszonych zdarzeń wejściowych (niesymetryczność danych)

Jeśli masz już uruchomione zadanie w trybie równoległym, ale obserwujesz duże opóźnienie limitu, użyj tej metody, aby określić, dlaczego.

Aby znaleźć główną przyczynę, otwórz diagram zadań fizycznych w witrynie Azure Portal. Wybierz pozycję Diagram zadania (wersja zapoznawcza) w obszarze Monitorowanie i przejdź do diagramu fizycznego.

Zrzut ekranu przedstawiający widok niesymetryczności danych z diagramem fizycznym.

Na diagramie fizycznym można łatwo określić, czy wszystkie partycje mają duże opóźnienie znaku wodnego, czy tylko kilka z nich, wyświetlając wartość opóźnienia znaku wodnego w każdym węźle lub wybierając ustawienie mapy cieplnej opóźnienia znaku wodnego w celu sortowania węzłów przesyłania strumieniowego (zalecane):

Zrzut ekranu przedstawiający ustawienie mapy cieplnej opóźnienia znaku wodnego.

Po zastosowaniu powyższych ustawień mapy cieplnej węzły przesyłania strumieniowego będą miały duże opóźnienie limitu w lewym górnym rogu. Następnie możesz sprawdzić, czy odpowiednie węzły przesyłania strumieniowego mają znacznie więcej zdarzeń wejściowych niż inne. W tym przykładzie węzły streamingnode#0 i streamingnode#1 mają więcej zdarzeń wejściowych.

Zrzut ekranu przedstawiający widok niesymetryczności danych z diagramem fizycznym na mapie cieplnej opóźnienia znaku wodnego.

Możesz dodatkowo sprawdzić, ile partycji jest przydzielonych do węzłów przesyłania strumieniowego indywidualnie, aby dowiedzieć się, czy więcej zdarzeń wejściowych jest spowodowanych większą liczbą przydzielonych partycji lub dowolną konkretną partycją o większej liczbą zdarzeń wejściowych. W tym przykładzie wszystkie węzły przesyłania strumieniowego mają dwie partycje. Oznacza to, że węzeł streamingnode#0 i streamingnode#1 mają określoną partycję zawierającą więcej zdarzeń wejściowych niż inne partycje.

Aby zlokalizować, która partycja ma więcej zdarzeń wejściowych niż inne partycje w węzłach streamingnode#0 i streamingnode#1, wykonaj następujące czynności:

  • Wybieranie pozycji Dodaj wykres w sekcji wykresu
  • Dodawanie zdarzeń wejściowych do metryki i identyfikatora partycji na element splitter
  • Wybierz pozycję Zastosuj , aby wyświetlić wykres zdarzeń wejściowych
  • Tick streamingnode#0 i streamingnode#1 na diagramie

Na poniższym wykresie przedstawiono metryki zdarzeń wejściowych filtrowanych według partycji w dwóch węzłach przesyłania strumieniowego.

Zrzut ekranu przedstawiający zdarzenia wejściowe podzielone według partycji i węzła.

Jakie dalsze działania można podjąć?

Jak pokazano w przykładzie, partycje (0 i 1) mają więcej danych wejściowych niż inne partycje. Nazywamy to niesymetrycznością danych. Węzły przesyłania strumieniowego, które przetwarzają partycje ze niesymetrycznością danych, muszą zużywać więcej zasobów procesora CPU i pamięci niż inne. Brak równowagi prowadzi do wolniejszej wydajności i zwiększa opóźnienie limitu. Użycie procesora CPU i pamięci można sprawdzić w dwóch węzłach przesyłania strumieniowego, a także na diagramie fizycznym. Aby rozwiązać ten problem, należy jeszcze bardziej równomiernie ponownie partycjonować dane wejściowe.

Identyfikowanie przyczyny przeciążonego procesora CPU lub pamięci

Gdy zadanie równoległe ma rosnące opóźnienie limitu bez wcześniej wymienionej sytuacji niesymetryczności danych, może to być spowodowane znaczną ilością danych we wszystkich węzłach przesyłania strumieniowego, które hamują wydajność. Możesz określić, że zadanie ma tę charakterystykę, korzystając z diagramu fizycznego.

  1. Otwórz diagram zadań fizycznych, przejdź do witryny Azure Portal w obszarze Monitorowanie, wybierz pozycję Diagram zadań (wersja zapoznawcza) i przejdź do diagramu fizycznego. Zobaczysz diagram fizyczny załadowany w następujący sposób.

    Zrzut ekranu przedstawiający przegląd przeciążonego zadania procesora CPU i pamięci.

  2. Sprawdź użycie procesora CPU i pamięci w każdym węźle przesyłania strumieniowego, aby sprawdzić, czy użycie we wszystkich węzłach przesyłania strumieniowego jest zbyt wysokie. Jeśli wykorzystanie procesora CPU i jednostki SU jest wysokie (ponad 80 procent) we wszystkich węzłach przesyłania strumieniowego, możesz stwierdzić, że to zadanie ma dużą ilość danych przetwarzanych w każdym węźle przesyłania strumieniowego.

    W powyższym przypadku wykorzystanie procesora CPU wynosi około 90%, a wykorzystanie pamięci wynosi już 100%. Pokazuje on, że w każdym węźle przesyłania strumieniowego brakuje zasobu do przetwarzania danych.

    Zrzut ekranu przedstawiający przeciążony procesor i pamięć we wszystkich węzłach.

  3. Sprawdź liczbę partycji przydzielonych do każdego węzła przesyłania strumieniowego, aby określić, czy potrzebujesz większej liczby węzłów przesyłania strumieniowego, aby zrównoważyć obciążenia istniejących węzłów przesyłania strumieniowego.

    W tym przypadku każdy węzeł przesyłania strumieniowego ma przydzielone cztery partycje, które wyglądają zbytnio na węzeł przesyłania strumieniowego.

Jakie dalsze działania można podjąć?

Rozważ zmniejszenie liczby partycji dla każdego węzła przesyłania strumieniowego, aby zmniejszyć dane wejściowe. Można podwoić liczbę jednostek przesyłania strumieniowego przydzielonych do każdego węzła przesyłania strumieniowego do dwóch partycji na węzeł, zwiększając liczbę węzłów przesyłania strumieniowego z zakresu od 8 do 16. Możesz też czterokrotnie uruchomić jednostki przesyłania strumieniowego, aby każdy węzeł przesyłania strumieniowego obsługiwał dane z jednej partycji.

Aby dowiedzieć się więcej o relacji między węzłem przesyłania strumieniowego i jednostką przesyłania strumieniowego, zobacz Omówienie jednostki przesyłania strumieniowego i węzła przesyłania strumieniowego.

Co zrobić, jeśli opóźnienie limitu nadal rośnie, gdy jeden węzeł przesyłania strumieniowego obsługuje dane z jednej partycji? Ponowne partycjonowanie danych wejściowych przy użyciu większej liczby partycji w celu zmniejszenia ilości danych w każdej partycji. Aby uzyskać szczegółowe informacje, zobacz Use repartitioning to optimize Azure Stream Analytics jobs (Używanie ponownego partycjonowania do optymalizowania zadań usługi Azure Stream Analytics).

Następne kroki