Fouten opsporen met behulp van het fysieke taakdiagram (preview) in Azure Portal

Met het diagram van de fysieke taak in de Azure Portal kunt u de belangrijkste metrische gegevens van uw taak visualiseren met het streamingknooppunt in diagram- of tabelindeling, bijvoorbeeld: CPU-gebruik, geheugengebruik, invoergebeurtenissen, partitie-id's en watermerkvertraging. Hiermee kunt u de oorzaak van een probleem identificeren wanneer u problemen oplost.

In dit artikel ziet u hoe u een fysiek taakdiagram gebruikt om de prestaties van een taak te analyseren en snel het knelpunt in Azure Portal te identificeren.

Belangrijk

Deze functie is momenteel beschikbaar als PREVIEW-versie. Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.

De parallelle uitvoering van een taak identificeren

Taak met parallellisatie is het schaalbare scenario in Stream Analytics dat betere prestaties kan bieden. Als een taak zich niet in de parallelle modus bevindt, heeft deze waarschijnlijk een bepaald knelpunt voor de prestaties. Het is belangrijk om te bepalen of een taak zich in de parallelle modus bevindt of niet. Een fysiek taakdiagram biedt een visuele grafiek om de parallelle uitvoering van de taak te illustreren. Als er in een fysiek taakdiagram sprake is van gegevensinteractie tussen verschillende streamingknooppunten, is deze taak een niet-parallelle taak die meer aandacht nodig heeft. Bijvoorbeeld het onderstaande niet-parallelle taakdiagram:

Schermopname van de niet-parallelle taak in een fysiek diagram.

U kunt overwegen om deze te optimaliseren voor parallelle taken (zoals hieronder) door uw query te herschrijven of invoer-/uitvoerconfiguraties bij te werken met de taakdiagramsimulator in de ASA-extensie of query-editor van Visual Studio Code in Azure Portal. Zie Query optimaliseren met behulp van taakdiagramsimulator (preview) voor meer informatie.

Schermopname van de scheeftrekkende weergave van gegevens met een fysiek diagram.

Belangrijke metrische gegevens om het knelpunt van een parallelle taak te identificeren

Watermerkvertraging en achtergehouden invoergebeurtenissen zijn de belangrijkste metrische gegevens om de prestaties van uw Stream Analytics-taak te bepalen. Als de vertraging van het watermerk van uw taak voortdurend toeneemt en invoergebeurtenissen worden achtergehouden, kan uw taak de snelheid van invoergebeurtenissen niet bijhouden en tijdig uitvoer produceren. Vanuit het oogpunt van de rekenresource worden de CPU- en geheugenresources op hoog niveau gebruikt wanneer dit geval zich voordoet.

In het fysieke taakdiagram worden deze belangrijke metrische gegevens in het diagram samen gevisualiseerd, zodat u er een volledig beeld van krijgt, zodat u eenvoudig het knelpunt kunt identificeren.

Schermopname van de belangrijkste metrische gegevens op een knooppunt in een fysiek diagram.

Zie Azure Stream Analytics-knooppuntnaamdimensie voor meer informatie over de definitie van metrische gegevens.

De ongelijke gedistribueerde invoergebeurtenissen identificeren (scheeftrekken van gegevens)

Wanneer u al een taak in de parallelle modus uitvoert, maar u een hoge watermerkvertraging ziet, gebruikt u deze methode om te bepalen waarom.

Als u de hoofdoorzaak wilt vinden, opent u het diagram van de fysieke taak in de Azure Portal. Selecteer Taakdiagram (preview) onder Bewaking en schakel over naar Fysiek diagram.

Schermopname van de scheeftrekkende weergave van gegevens met een fysiek diagram.

In het fysieke diagram kunt u eenvoudig bepalen of alle partities een hoge watermerkvertraging hebben, of slechts een paar hiervan door de waarde voor de watermerkvertraging in elk knooppunt te bekijken of de heatmap-instelling voor watermerkvertraging te kiezen om de streamingknooppunten te sorteren (aanbevolen):

Schermopname van de heatmap-instelling voor watermerkvertraging.

Nadat u de bovenstaande heatmap-instellingen hebt toegepast, ziet u de streamingknooppunten met een hoge watermerkvertraging in de linkerbovenhoek. Vervolgens kunt u controleren of de bijbehorende streamingknooppunten aanzienlijk meer invoerevenementen hebben dan andere. In dit voorbeeld hebben streamingnode#0 en streamingnode#1 meer invoerevenementen.

Schermopname van de weergave scheeftrekken van gegevens met een fysiek diagram in heatmap voor watermerkvertraging.

U kunt verder controleren hoeveel partities afzonderlijk zijn toegewezen aan de streamingknooppunten om erachter te komen of de meer invoer gebeurtenissen worden veroorzaakt door meer toegewezen partities of een specifieke partitie met meer invoer gebeurtenissen. In dit voorbeeld hebben alle streamingknooppunten twee partities. Dit betekent dat streamingnode#0 en streamingnode#1 een bepaalde specifieke partitie hebben die meer invoerevenementen bevat dan andere partities.

Voer de volgende stappen uit om te bepalen welke partitie meer invoergebeurtenissen heeft dan andere partities in streamingnode#0 en streamingnode#1:

  • Selecteer Grafiek toevoegen in grafieksectie
  • Invoergebeurtenissen toevoegen aan metrische gegevens en partitie-id in splitser
  • Selecteer Toepassen om de grafiek met invoerevenementen weer te geven
  • Selecteer streamingnode#0 en streamingnode #1 in diagram

U ziet de onderstaande grafiek met de metrische gegevens voor invoergebeurtenissen die zijn gefilterd op de partities in de twee streamingknooppunten.

Schermopname van invoer gebeurtenissen gesplitst op partitie en knooppunt.

Welke verdere actie kunt u ondernemen?

Zoals weergegeven in het voorbeeld, hebben de partities (0 en 1) meer invoergegevens dan andere partities. We noemen dit scheeftrekken van gegevens. De streamingknooppunten die de partities met scheeftrekken van gegevens verwerken, moeten meer CPU- en geheugenresources verbruiken dan andere. Deze onevenwichtigheid leidt tot tragere prestaties en verhoogt de vertraging van het watermerk. U kunt het CPU- en geheugengebruik in de twee streamingknooppunten controleren, evenals in het fysieke diagram. Om het probleem te verhelpen, moet u uw invoergegevens gelijkmatiger partitioneren.

De oorzaak van overbelaste CPU of geheugen identificeren

Wanneer een parallelle taak een toenemende watermerkvertraging heeft zonder de eerder genoemde scheeftrekken van gegevens, kan dit worden veroorzaakt door een aanzienlijke hoeveelheid gegevens op alle streamingknooppunten die de prestaties belemmert. U kunt vaststellen dat de taak dit kenmerk heeft aan de hand van het fysieke diagram.

  1. Open het diagram van de fysieke taak, ga naar uw taak Azure Portal onder Bewaking, selecteer Taakdiagram (preview) en schakel over naar Fysiek diagram. U ziet dat het fysieke diagram is geladen zoals hieronder.

    Schermopname van het overzicht van de overbelaste CPU- en geheugentaak.

  2. Controleer het CPU- en geheugengebruik in elk streamingknooppunt om te zien of het gebruik in alle streamingknooppunten te hoog is. Als het CPU- en SU-gebruik hoog is (meer dan 80 procent) op alle streamingknooppunten, kunt u concluderen dat deze taak een grote hoeveelheid gegevens bevat die binnen elk streamingknooppunt wordt verwerkt.

    In bovenstaand geval is het CPU-gebruik ongeveer 90% en is het geheugengebruik al 100%. Het laat zien dat elk streamingknooppunt geen resource meer heeft om de gegevens te verwerken.

    Schermopname van overbelaste CPU en geheugen in alle knooppunten.

  3. Controleer hoeveel partities zijn toegewezen aan elk streamingknooppunt, zodat u kunt beslissen of u meer streamingknooppunten nodig hebt om de partities in balans te brengen om de belasting van de bestaande streamingknooppunten te verminderen.

    In dit geval heeft elk streamingknooppunt vier partities toegewezen die te veel lijken op een streaming-knooppunt.

Welke verdere actie kunt u ondernemen?

Overweeg het aantal partities voor elk streamingknooppunt te verminderen om de invoergegevens te verminderen. U kunt de SUs die aan elk streamingknooppunt zijn toegewezen, verdubbelen tot twee partities per knooppunt door het aantal streaming-knooppunten te verhogen van 8 naar 16. Of u kunt de RU's verviervoudigen om elk streamingknooppunt gegevens van één partitie te laten verwerken.

Zie Streaming-eenheid en streamingknooppunt begrijpen voor meer informatie over de relatie tussen streamingknooppunt en streaming-eenheid.

Wat moet u doen als de watermerkvertraging nog steeds toeneemt wanneer één streamingknooppunt gegevens van één partitie verwerkt? Deel uw invoer opnieuw met meer partities om de hoeveelheid gegevens in elke partitie te verminderen. Zie Opnieuw partitioneren gebruiken om Azure Stream Analytics-taken te optimaliseren voor meer informatie.

Volgende stappen