Analýza výkonu úlohy Stream Analytics pomocí metrik a dimenzí

Abyste porozuměli stavu úlohy Azure Stream Analytics, je důležité vědět, jak používat metriky a dimenze úlohy. K získání metrik a dimenzí, které vás zajímají, můžete použít Azure Portal, rozšíření Stream Analytics pro Visual Studio Code nebo sadu SDK.

Tento článek ukazuje, jak používat metriky a dimenze úlohy Stream Analytics k analýze výkonu úlohy prostřednictvím Azure Portal.

Hlavními metrikami pro určení výkonu úlohy Stream Analytics jsou události zpoždění vodoznaku a backlogované vstupní události. Pokud zpoždění vodoznaku úlohy neustále narůstá a vstupní události jsou nevyřízené, vaše úloha nemůže držet krok s rychlostí vstupních událostí a včas vytvářet výstupy.

Podívejme se na několik příkladů pro analýzu výkonu úlohy prostřednictvím dat metriky Zpoždění vodoznaku jako výchozího bodu.

Žádný vstup pro určitý oddíl nezvýšuje zpoždění vodoznaku úlohy.

Pokud zpoždění vodoznaku vaší trapně paralelní úlohy neustále narůstá, přejděte na Metriky. Pak pomocí těchto kroků zjistěte, jestli je původní příčinou nedostatek dat v některých oddílech vstupního zdroje:

  1. Zkontrolujte, u kterého oddílu se zvyšuje zpoždění vodoznaku. Vyberte metriku Zpoždění vodoznaku a rozdělte ji podle dimenze ID oddílu . V následujícím příkladu má oddíl 465 velké zpoždění vodoznaku.

    Snímek obrazovky s grafem, který zobrazuje zpoždění vodoznaku s rozdělením podle ID oddílu pro případ, že oddíl neobsahuje žádný vstup

  2. Zkontrolujte, jestli pro tento oddíl nechybí nějaká vstupní data. Vyberte metriku Vstupní události a vyfiltrujte ji podle tohoto konkrétního ID oddílu.

    Snímek obrazovky s grafem, který zobrazuje rozdělení vstupních událostí podle ID oddílu pro případ, že oddíl neobsahuje žádný vstup

Jakou další akci můžete provést?

Zpoždění vodoznaku pro tento oddíl se zvyšuje, protože do tohoto oddílu neprotékají žádné vstupní události. Pokud je interval tolerance vaší úlohy pro pozdní příchody několik hodin a do oddílu neprotékají žádná vstupní data, očekává se, že zpoždění meze pro tento oddíl se bude dál prodlužovat, dokud nedojde k dosažení časového intervalu pozdního příjezdu.

Pokud je například pozdní čas příjezdu 6 hodin a vstupní data nepřetékají do vstupního oddílu 1, zpoždění vodoznaku pro výstupní oddíl 1 se zvýší, dokud nedosáhne 6 hodin. Můžete zkontrolovat, jestli vstupní zdroj vytváří data podle očekávání.

Nerovnoměrná distribuce vstupních dat způsobuje velké zpoždění vodoznaku

Jak bylo zmíněno v předchozím případě, pokud má vaše trapně paralelní úloha velké zpoždění vodoznaku, je první věcí, kterou musíte udělat, rozdělit metriku Zpoždění vodoznaku podle dimenze ID oddílu . Pak můžete zjistit, jestli mají velké zpoždění vodoznaku všechny oddíly, nebo jenom některé z nich.

V následujícím příkladu mají oddíly 0 a 1 větší zpoždění vodoznaku (přibližně 20 až 30 sekund) než ostatních osm oddílů. Zpoždění vodoznaku ostatních oddílů jsou vždy stabilní přibližně na 8 až 10 sekundách.

Snímek obrazovky s grafem, který zobrazuje zpoždění vodoznaku rozdělené podle ID oddílu pro případ nerovnoměrné distribuce dat

Podívejme se, jak vypadají vstupní data pro všechny tyto oddíly, pomocí metriky Vstupní události rozdělené podle ID oddílu:

Snímek obrazovky s grafem, který zobrazuje vstupní události rozdělené podle ID oddílu pro případ nerovnoměrné distribuce dat

Jakou další akci můžete provést?

Jak je znázorněno v příkladu, oddíly (0 a 1), které mají vysoké zpoždění vodoznaku, přijímají výrazně více vstupních dat než jiné oddíly. Říkáme tomu nerovnoměrná distribuce dat. Uzly streamování, které zpracovávají oddíly s nerovnoměrnou distribuci dat, musí spotřebovávat více prostředků procesoru a paměti než ostatní, jak je znázorněno na následujícím snímku obrazovky.

Snímek obrazovky s grafem, který znázorňuje využití prostředků oddílů s nerovnoměrnou distribuci dat

Uzly streamování, které zpracovávají oddíly s vyšší nerovnoměrnou distribuci dat, budou vykazovat vyšší využití procesoru nebo jednotek streamování (SU). Toto využití ovlivní výkon úlohy a zvýší zpoždění vodoznaku. Pokud chcete tento problém zmírnit, musíte vstupní data rovnoměrněji rozdělit na oddíly.

Tento problém můžete ladit také pomocí diagramu fyzických úloh. Viz Diagram fyzické úlohy: Identifikace nerovnoměrných distribuovaných vstupních událostí (nerovnoměrná distribuce dat).

Přetížení procesoru nebo paměti zvyšuje zpoždění vodoznaku

Pokud má trapně paralelní úloha zvyšující se zpoždění meze, může k tomu dojít nejen v jednom nebo několika oddílech, ale na všech oddílech. Jak potvrdíte, že vaše práce spadá do tohoto případu?

  1. Metriku Zpoždění vodoznaku rozdělte podle ID oddílu. Příklad:

    Snímek obrazovky s grafem, který zobrazuje zpoždění vodoznaku rozdělené podle ID oddílu pro případ přetížení procesoru a paměti

  2. Rozdělením metriky Vstupní události podle ID oddílu ověřte, jestli vstupní data pro jednotlivé oddíly nedochází k nerovnoměrné distribuci dat.

  3. Zkontrolujte využití procesoru a SU a zjistěte, jestli je využití ve všech uzlech streamování příliš vysoké.

    Snímek obrazovky s grafem, který zobrazuje využití procesoru a paměti rozdělené podle názvu uzlu v případě přetíženého procesoru a paměti

  4. Pokud je využití procesoru a jednotek SU ve všech uzlech streamování velmi vysoké (více než 80 procent), můžete dojít k závěru, že tato úloha zpracovává velké množství dat v rámci každého uzlu streamování.

    Počet oddílů přidělených k jednomu uzlu streamování můžete dále zkontrolovat kontrolou metriky Vstupní události . Filtrujte podle ID uzlu streamování s dimenzí Název uzlu a rozdělení podle ID oddílu.

    Snímek obrazovky s grafem, který zobrazuje počet oddílů na jednom uzlu streamování pro případ přetížení procesoru a paměti

  5. Předchozí snímek obrazovky ukazuje, že čtyři oddíly jsou přidělené jednomu uzlu streamování, který zabírá přibližně 90 až 100 procent prostředku uzlu streamování. Podobným způsobem můžete zkontrolovat zbývající uzly streamování a ověřit, že zpracovávají také data ze čtyř oddílů.

Jakou další akci můžete provést?

Možná budete chtít snížit počet oddílů pro každý uzel streamování, abyste snížili vstupní data pro každý uzel streamování. Abyste toho dosáhli, můžete zdvojnásobit SU, aby každý uzel streamování zpracovával data ze dvou oddílů. Nebo můžete zečtyřnásobit jednotky SU, aby každý uzel streamování zpracovával data z jednoho oddílu. Informace o vztahu mezi přiřazením SU a počtem uzlů streamování najdete v tématu Vysvětlení a úprava jednotek streamování.

Co dělat, když zpoždění vodoznaku stále narůstá, když jeden streamovací uzel zpracovává data z jednoho oddílu? Rozdělte vstup na oddíly s více oddíly, abyste snížili množství dat v každém oddílu. Podrobnosti najdete v tématu Optimalizace úloh Azure Stream Analytics pomocí opětovného dělení.

Tento problém můžete ladit také pomocí diagramu fyzických úloh. Viz Diagram fyzických úloh: Identifikace příčiny přetížení procesoru nebo paměti.

Další kroky