Fouten opsporen met behulp van het fysieke taakdiagram (preview) in Azure Portal
Het fysieke taakdiagram in Azure Portal kan u helpen bij het visualiseren van de belangrijkste metrische gegevens van uw taak met 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 wordt gedemonstreert hoe u een fysiek taakdiagram gebruikt om de prestaties van een taak te analyseren en snel het knelpunt te identificeren in Azure Portal.
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 parallelle uitvoering is het schaalbare scenario in Stream Analytics dat de 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 sprake is van gegevensinteractie tussen verschillende streamingknooppunten, is deze taak een niet-parallelle taak die meer aandacht nodig heeft. Hieronder ziet u bijvoorbeeld het niet-parallelle taakdiagram:
U kunt overwegen deze te optimaliseren voor parallelle taak (zoals hieronder) door uw query te herschrijven of invoer-/uitvoerconfiguraties bij te werken met de taakdiagramsimulator in Visual Studio Code ASA-extensie of query-editor in Azure Portal. Zie Query optimaliseren met behulp van taakdiagramsimulator (preview) voor meer informatie.
Belangrijke metrische gegevens om het knelpunt van een parallelle taak te identificeren
Watermerkvertraging en vastgelegde invoergebeurtenissen zijn de belangrijkste metrische gegevens om de prestaties van uw Stream Analytics-taak te bepalen. Als de watermerkvertraging van uw taak voortdurend toeneemt en invoergebeurtenissen worden teruggelogd, kan uw taak niet op de hoogte blijven van de snelheid van invoergebeurtenissen en tijdig uitvoer produceren. Vanuit het oogpunt van de rekenresource worden de CPU- en geheugenresources op hoog niveau gebruikt wanneer dit geval gebeurt.
In het fysieke taakdiagram worden deze belangrijke metrische gegevens in het diagram samen gevisualiseerd, zodat u er een volledig beeld van krijgt om het knelpunt eenvoudig te identificeren.
Zie de naamdimensie van het Azure Stream Analytics-knooppunt voor meer informatie over de definitie van metrische gegevens.
De ongelijke gedistribueerde invoergebeurtenissen identificeren (gegevensverschil)
Wanneer u een taak al 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 fysieke taakdiagram in Azure Portal. Selecteer Taakdiagram (preview) onder Bewaking en schakel over naar fysiek diagram.
Vanuit het fysieke diagram kunt u eenvoudig vaststellen of alle partities een hoge watermerkvertraging hebben of slechts een paar ervan door de waarde voor watermerkvertraging in elk knooppunt weer te geven of door de heatmapinstelling voor watermerkvertraging te kiezen om de streamingknooppunten te sorteren (aanbevolen):
Nadat u de instellingen voor de heatmap hebt toegepast die u hierboven hebt gemaakt, krijgt u de streamingknooppunten met een hoge watermerkvertraging in de linkerbovenhoek. Vervolgens kunt u controleren of de bijbehorende streamingknooppunten aanzienlijk meer invoer gebeurtenissen hebben dan andere. In dit voorbeeld hebben de streamingnode#0 en streamingnode#1 meer invoerevenementen.
U kunt verder controleren hoeveel partities aan de streamingknooppunten afzonderlijk worden toegewezen 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 de streamingnode#0 en streamingnode#1 een bepaalde specifieke partitie hebben die meer invoerevenementen bevat dan andere partities.
Voer de volgende stappen uit om te zoeken welke partitie meer invoergebeurtenissen heeft dan andere partities in streamingnode#0 en streamingnode#1:
- Grafiek toevoegen selecteren in grafieksectie
- Invoergebeurtenissen toevoegen aan metrische gegevens en partitie-id in splitser
- Selecteer Toepassen om de grafiek met invoerevenementen weer te geven
- Tick streamingnode#0 and streamingnode#1 in diagram
U ziet de onderstaande grafiek met de metrische invoergebeurtenissen gefilterd op de partities in de twee streamingknooppunten.
Welke verdere actie kunt u ondernemen?
Zoals in het voorbeeld wordt weergegeven, hebben de partities (0 en 1) meer invoergegevens dan andere partities. We noemen deze gegevens scheeftrekken. De streamingknooppunten die de partities verwerken met scheeftrekken van gegevens, moeten meer CPU- en geheugenresources verbruiken dan andere. Deze onevenwichtigheid leidt tot tragere prestaties en verhoogt de watermerkvertraging. U kunt het CPU- en geheugengebruik in de twee streamingknooppunten en in het fysieke diagram controleren. Om het probleem te verhelpen, moet u de invoergegevens gelijkmatiger partitioneren.
De oorzaak van overbelaste CPU of geheugen identificeren
Wanneer een parallelle taak een toenemende watermerkvertraging heeft zonder de eerder genoemde situatie van gegevens scheeftrekken, kan deze worden veroorzaakt door een aanzienlijke hoeveelheid gegevens op alle streamingknooppunten die de prestaties remt. U kunt vaststellen dat de taak dit kenmerk heeft met behulp van het fysieke diagram.
Open het fysieke taakdiagram, ga naar de Azure-portal van uw taak onder Bewaking, selecteer Taakdiagram (preview) en schakel over naar fysiek diagram. U ziet dat het fysieke diagram is geladen zoals hieronder.
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) in alle streamingknooppunten, kunt u concluderen dat deze taak een grote hoeveelheid gegevens bevat die binnen elk streamingknooppunt worden verwerkt.
Uit bovenstaand geval is het CPU-gebruik ongeveer 90% en het geheugengebruik is al 100%. Het toont aan dat elk streamingknooppunt geen resource meer heeft om de gegevens te verwerken.
Controleer hoeveel partities worden toegewezen aan elk streamingknooppunt, zodat u kunt bepalen of u meer streamingknooppunten nodig hebt om de partities te verdelen om de belasting van de bestaande streamingknooppunten te verminderen.
In dit geval heeft elk streamingknooppunt vier partities toegewezen die te veel eruitziet op een streamingknooppunt.
Welke verdere actie kunt u ondernemen?
Overweeg het aantal partities voor elk streamingknooppunt te verminderen om de invoergegevens te verminderen. U kunt de RU's verdubbelen die aan elk streamingknooppunt zijn toegewezen aan twee partities per knooppunt door het aantal streamingknooppunten te verhogen van 8 tot 16. U kunt ook vier keer zo veel mogelijk de SU's gebruiken om elk streamingknooppunt gegevens uit éé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? 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.
Volgende stappen
- Inleiding tot Stream Analytics
- Stream Analytics-taakdiagram (preview) in Azure Portal
- Metrische gegevens van Azure Stream Analytics-taken
- Stream Analytics-taken schalen
- Naslaginformatie over De querytaal van Stream Analytics
- Prestaties van Stream Analytics-taken analyseren met behulp van metrische gegevens en dimensies