Dela via


Analysera Stream Analytics-jobbprestanda med hjälp av mått och dimensioner

För att förstå hälsotillståndet för ett Azure Stream Analytics-jobb är det viktigt att du vet hur du använder jobbets mått och dimensioner. Du kan använda Azure Portal, Stream Analytics-tillägget för Visual Studio Code eller ett SDK för att hämta de mått och dimensioner som du är intresserad av.

Den här artikeln visar hur du använder Stream Analytics-jobbmått och mått för att analysera ett jobbs prestanda via Azure Portal.

Vattenstämpelfördröjning och eftersläppta indatahändelser är de viktigaste måtten för att fastställa prestanda för ditt Stream Analytics-jobb. Om jobbets vattenstämpelfördröjning ökar kontinuerligt och indatahändelserna är eftersläppta kan jobbet inte hålla jämna steg med indatahändelserna och generera utdata i tid.

Nu ska vi titta på flera exempel för att analysera ett jobbs prestanda via måttdata för vattenstämpelfördröjning som utgångspunkt.

Inga indata för en viss partition ökar jobbvattenstämpelfördröjningen

Om vattenstämpelfördröjningen för ditt pinsamt parallella jobb ökar stadigt går du till Mått. Använd sedan de här stegen för att ta reda på om rotorsaken är brist på data i vissa partitioner i indatakällan:

  1. Kontrollera vilken partition som har den ökande vattenstämpelfördröjningen. Välj måttet Vattenstämpelfördröjning och dela det efter dimensionen Partitions-ID . I följande exempel har partition 465 en fördröjning med hög vattenstämpel.

    Skärmbild av ett diagram som visar vattenstämpelns fördröjning vid delning av partitions-ID om det inte finns några indata i en partition.

  2. Kontrollera om indata saknas för den här partitionen. Välj måttet Indatahändelser och filtrera det till det här specifika partitions-ID:t.

    Skärmbild av ett diagram som visar delning av indatahändelser efter partitions-ID om det inte finns några indata i en partition.

Vilka ytterligare åtgärder kan du vidta?

Vattenstämpelns fördröjning för den här partitionen ökar eftersom inga indatahändelser flödar in i den här partitionen. Om jobbets toleransperiod för sena ankomster är flera timmar och inga indata flödar in i en partition förväntas vattenstämpelns fördröjning för partitionen fortsätta att öka tills fönstret för sen ankomst nås.

Om fönstret för sen ankomst till exempel är 6 timmar och indata inte flödar till indatapartition 1, ökar vattenstämpelns fördröjning för utdatapartition 1 tills den når 6 timmar. Du kan kontrollera om din indatakälla producerar data som förväntat.

Snedställning av indata orsakar en hög vattenstämpelfördröjning

Som nämnts i föregående fall, när ditt pinsamt parallella jobb har en fördröjning med hög vattenstämpel, är det första du ska göra att dela måttet Vattenstämpelfördröjning med dimensionen Partitions-ID . Du kan sedan identifiera om alla partitioner har hög vattenstämpelfördröjning eller bara några av dem.

I följande exempel har partitionerna 0 och 1 högre vattenstämpelfördröjning (cirka 20 till 30 sekunder) än de andra åtta partitionerna har. De andra partitionernas vattenstämpelfördröjningar är alltid stabila vid cirka 8 till 10 sekunder.

Skärmbild av ett diagram som visar vattenstämpelfördröjningen uppdelad efter partitions-ID för fall av datasnedställning.

Nu ska vi kontrollera hur indata ser ut för alla dessa partitioner med måttet Indatahändelser uppdelade efter partitions-ID:

Skärmbild av ett diagram som visar indatahändelser uppdelade efter partitions-ID för fall av datasnedställning.

Vilka ytterligare åtgärder kan du vidta?

Som du ser i exemplet tar partitionerna (0 och 1) som har en fördröjning med hög vattenstämpel emot betydligt fler indata än andra partitioner. Vi kallar dessa data skeva. De direktuppspelningsnoder som bearbetar partitionerna med datasnedställning måste förbruka mer PROCESSOR- och minnesresurser än andra, som du ser i följande skärmbild.

Skärmbild av ett diagram som visar resursutnyttjandet av partitioner med snedställning av data.

Direktuppspelningsnoder som bearbetar partitioner med högre dataförskjutning uppvisar högre PROCESSOR- och/eller strömningsenhetsanvändning (SU). Den här användningen påverkar jobbets prestanda och ökar vattenstämpelns fördröjning. För att undvika detta måste du partitionera om dina indata jämnare.

Du kan också felsöka det här problemet med ett fysiskt jobbdiagram. Mer information finns i Fysiskt jobbdiagram: Identifiera ojämna distribuerade indatahändelser (datasnedställning).

Överbelastad PROCESSOR eller minne ökar vattenstämpelfördröjningen

När ett pinsamt parallellt jobb har en ökande vattenstämpelfördröjning kan det inträffa på inte bara en eller flera partitioner, utan på alla partitioner. Hur bekräftar du att ditt jobb hamnar i det här fallet?

  1. Dela måttet Vattenstämpelfördröjning efter Partitions-ID. Exempel:

    Skärmbild av ett diagram som visar vattenstämpelfördröjningen uppdelad efter partitions-ID för överlagrad processor och minne.

  2. Dela måttet Indatahändelser efter partitions-ID för att bekräfta om det finns snedställning av data i indata för varje partition.

  3. Kontrollera PROCESSOR- och SU-användningen för att se om användningen i alla strömmande noder är för hög.

    Skärmbild av ett diagram som visar processor- och minnesanvändningen uppdelad efter nodnamn för överlagrade processorer och minne.

  4. Om processor- och SU-användningen är mycket hög (mer än 80 procent) i alla strömmande noder kan du dra slutsatsen att det här jobbet har en stor mängd data som bearbetas inom varje direktuppspelningsnod.

    Du kan kontrollera ytterligare hur många partitioner som allokeras till en direktuppspelningsnod genom att kontrollera måttet Indatahändelser . Filtrera efter strömmande nod-ID med dimensionen Nodnamn och dela efter partitions-ID.

    Skärmbild av ett diagram som visar antalet partitioner på en direktuppspelningsnod för överlagrade processorer och minne.

  5. Föregående skärmbild visar att fyra partitioner allokeras till en direktuppspelningsnod som upptar cirka 90 till 100 procent av den strömmande nodresursen. Du kan använda en liknande metod för att kontrollera resten av de strömmande noderna för att bekräfta att de också bearbetar data från fyra partitioner.

Vilka ytterligare åtgärder kan du vidta?

Du kanske vill minska antalet partitioner för varje strömmande nod för att minska indata för varje strömmande nod. För att uppnå detta kan du dubbla SU:erna så att varje strömmande nod hanterar data från två partitioner. Eller så kan du fyrdubbla SU:erna så att varje strömmande nod hanterar data från en partition. Information om relationen mellan SU-tilldelning och antal strömmande noder finns i Förstå och justera strömningsenheter.

Vad ska du göra om vattenstämpelns fördröjning fortfarande ökar när en strömmande nod hanterar data från en partition? Partitionera om dina indata med fler partitioner för att minska mängden data i varje partition. Mer information finns i Använda ompartitionering för att optimera Azure Stream Analytics-jobb.

Du kan också felsöka det här problemet med ett fysiskt jobbdiagram. Mer information finns i Fysiskt jobbdiagram: Identifiera orsaken till överbelastad PROCESSOR eller minne.

Nästa steg