Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Om de gezondheid van een Azure Stream Analytics-baan te begrijpen, moet je weten hoe je de metrics en dimensies van de functie gebruikt. Je kunt de metrische gegevens en dimensies waarin je geïnteresseerd bent ophalen uit Azure Portal, de Visual Studio Code Stream Analytics-extensie of een SDK.
Watermarkvertraging en achterstallige invoergebeurtenissen zijn de belangrijkste meetwaarden die de prestaties van een Stream Analytics-taak bepalen. Als de watermarkvertraging van je job voortdurend toeneemt en invoer-gebeurtenissen zich ophopen, kan de job het tempo van de binnenkomende invoer-gebeurtenissen niet bijhouden en niet op tijd uitvoer genereren.
Dit artikel laat zien hoe je Stream Analytics jobmetrics en -dimensies in het Azure-portaal kunt gebruiken om de prestaties van een taak te onderzoeken. De volgende secties bespreken verschillende voorbeelden die beginnen met de Watermark Delay-metriek om veelvoorkomende prestatieproblemen te diagnosticeren.
Geen invoer voor een bepaalde partitie verhoogt de vertraging van het taakwatermerk
Als de watermerkvertraging van je embarrassingly parallelle taak gestaag toeneemt, open Metrics in de Azure-portal. Gebruik vervolgens deze stappen om te achterhalen of de oorzaak een gebrek aan data is in sommige partities van je invoerbron:
Controleer welke partitie de toenemende watermerkvertraging heeft. Selecteer de meetwaarde Watermerkvertraging en splitst deze op basis van de dimensie Partitie-id . In het volgende voorbeeld heeft partitie 465 een hoge watermerkvertraging.
Controleer of er inputdata ontbreekt voor deze partitie. Selecteer de metriek Invoergebeurtenissen en filter deze op deze specifieke partitie-ID.
Aanbevolen actie
De watermerkvertraging voor deze partitie neemt toe omdat er geen invoergebeurtenissen naar deze partitie stromen. Als het tolerantievenster van uw taak voor te laat binnenkomende gegevens enkele uren bedraagt en er geen invoergegevens naar een partitie stromen, is het te verwachten dat de watermerkvertraging voor die partitie blijft toenemen totdat deze het venster voor late binnenkomst bereikt.
Als je late aankomstvenster bijvoorbeeld zes uur is en de invoerdata niet naar invoerpartitie 1 stroomt, zal de watermerkvertraging voor uitvoerpartitie 1 toenemen tot zes uur. Controleer of je invoerbron data produceert zoals verwacht.
Scheefheid in invoergegevens veroorzaakt een grote watermerkvertraging
Wanneer je embarrassingly parallel taak een hoge watermarkvertraging heeft, splits dan eerst de metriek Watermark Delay uit naar de dimensie Partition ID. Bepaal vervolgens of alle partities een hoge watermarkvertraging hebben, of slechts een paar.
In het volgende voorbeeld hebben partities 0 en 1 een hogere watermerkvertraging (ongeveer 20 tot 30 seconden) dan de andere acht partities. De watermerkvertragingen van de andere partities zijn altijd stabiel op ongeveer 8 tot 10 seconden.
Controleer hoe de invoergegevens eruitzien over deze partities door de Input Events-metriek te splitsen naar partitie-ID:
Aanbevolen actie
In het voorgaande voorbeeld ontvangen de partities (0 en 1) met een hoge watermerkvertraging aanzienlijk meer invoerdata dan de andere partities. Deze voorwaarde wordt data skew genoemd. De streamingnodes die de partities met data skew verwerken, verbruiken meer CPU- en geheugenresources dan de andere, zoals de volgende screenshot laat zien.
Streaming-nodes die partities met een hogere dataskew verwerken, tonen een hogere CPU-% benutting en SU (geheugen) % benutting. Deze druk op de hulpbronnen beïnvloedt de prestaties van het werk en verhoogt de vertraging in het watermerk. Om het te voorkomen, herpartitioneer je je invoerdata gelijkmatiger.
Je kunt dit probleem ook debuggen door gebruik te maken van het fysieke jobdiagram. Voor meer informatie, zie Fysiek taakdiagram: Identificeer de ongelijke verspreide invoergebeurtenissen (data-skew).
Overbelaste CPU of geheugen verhoogt de watermerkvertraging
Wanneer een gênant parallelle klus een toenemende watermerkvertraging heeft, kan die vertraging alle partities treffen, niet slechts één of meerdere. Om te bevestigen dat jouw baan in deze situatie verkeert, gebruik je deze stappen:
Splits de metriek Watermark Delay op Partitie-ID. Voorbeeld:
Splits de Input Events-metriek op partitie-ID om te bevestigen of er datascheef is in de invoerdata voor elke partitie.
Controleer de CPU % Utilization en SU (Memory) % Utilization metrics om te zien of de benutting te hoog is in alle streamingnodes.
Als beide metrics hoog zijn (meer dan 80 procent) in alle streaming-nodes, kun je concluderen dat elke streaming-node een grote hoeveelheid data verwerkt.
Controleer hoeveel partities aan één streamingnode zijn toegewezen met behulp van de Input Events-metriek . Filteren op de ID van het streamingknooppunt met de dimensie Knooppuntnaam, en splitsen op Partitie-id.
In de voorgaande schermopname ziet u dat vier partities worden toegewezen aan één streamingknooppunt dat ongeveer 90 tot 100 procent van de resource van het streamingknooppunt in beslag neemt. Gebruik een vergelijkbare aanpak om de rest van de streamingnodes te controleren en te bevestigen dat zij ook data verwerken van vier partities.
Aanbevolen actie
Verminder het aantal partities dat elke streamingnode verwerkt om de invoerdata per node te verlagen. Om dit te doen, verdubbel je het aantal SU's zodat elke streamingknoop gegevens van twee partities verwerkt, of verviervoudig je de SU's zodat elke stromende knoop gegevens van één partitie verwerkt. Zie Streaming-eenheden begrijpen en aanpassen voor informatie over de relatie tussen SU-toewijzing en het aantal streamingknooppunten.
Wat moet u doen als de watermerkvertraging nog steeds toeneemt wanneer één streamingknooppunt gegevens van één partitie verwerkt? Partitioneer uw invoer opnieuw met meer partities om de hoeveelheid gegevens in elke partitie te verminderen. Zie Repartitioning gebruiken om Azure Stream Analytics-taken te optimaliseren voor meer informatie.
Je kunt dit probleem ook debuggen met het fysieke taakdiagram. Voor meer informatie, zie Physical job diagram: Identificeer de oorzaak van overbelaste CPU of geheugen.