Analizzare le prestazioni dei processi di Analisi di flusso usando metriche e dimensioni

Per comprendere l'integrità del processo di Analisi di flusso di Azure, è importante sapere come usare le metriche e le dimensioni del processo. È possibile usare la portale di Azure, l'estensione Analisi di flusso di Visual Studio Code o un SDK per ottenere le metriche e le dimensioni interessate.

Questo articolo illustra come usare le metriche e le dimensioni dei processi di Analisi di flusso per analizzare le prestazioni di un processo tramite la portale di Azure.

I ritardi della filigrana e gli eventi di input registrati sono le metriche principali per determinare le prestazioni del processo di Analisi di flusso. Se il ritardo della filigrana del processo aumenta continuamente e gli eventi di input vengono registrati nuovamente, il processo non può mantenere la frequenza degli eventi di input e produrre output in modo tempestivo.

Esaminiamo diversi esempi per analizzare le prestazioni di un processo tramite i dati della metrica Ritardo filigrana come punto di partenza.

Nessun input per una determinata partizione aumenta il ritardo della filigrana del processo

Se il ritardo della filigrana del processo parallelo imbarazzante aumenta costantemente, passare a Metriche. Usare quindi questi passaggi per scoprire se la causa radice è una mancanza di dati in alcune partizioni dell'origine di input:

  1. Controllare quale partizione ha il ritardo della filigrana crescente. Selezionare la metrica Ritardo filigrana e suddividerla in base alla dimensione ID partizione . Nell'esempio seguente la partizione 465 ha un ritardo elevato della filigrana.

    Screenshot di un grafico che mostra la suddivisione in ritardo della filigrana in base all'ID partizione per il caso di nessun input in una partizione.

  2. Verificare se mancano dati di input per questa partizione. Selezionare la metrica Eventi di input e filtrarla in questo ID di partizione specifico.

    Screenshot di un grafico che mostra la suddivisione degli eventi di input in base all'ID partizione per il caso di nessun input in una partizione.

Quale ulteriore azione può essere eseguita?

Il ritardo della filigrana per questa partizione aumenta perché non vengono trasmessi eventi di input in questa partizione. Se la finestra di tolleranza del processo per gli arrivi in ritardo è diverse ore e non vengono trasmessi dati di input in una partizione, è previsto che il ritardo della filigrana per tale partizione continui ad aumentare fino a quando non viene raggiunta la finestra di arrivo in ritardo.

Ad esempio, se la finestra di arrivo in ritardo è di 6 ore e i dati di input non vengono trasmessi nella partizione di input 1, il ritardo della filigrana per la partizione di output 1 aumenterà fino a raggiungere 6 ore. È possibile verificare se l'origine di input produce dati come previsto.

L'inclinazione dei dati di input causa un ritardo elevato della filigrana

Come accennato nel caso precedente, quando il processo parallelo imbarazzante ha un ritardo elevato di filigrana, la prima cosa da fare consiste nel dividere la metrica Ritardo filigrana per la dimensione ID partizione . È quindi possibile identificare se tutte le partizioni hanno un ritardo elevato della filigrana o solo alcuni di essi.

Nell'esempio seguente le partizioni 0 e 1 hanno un ritardo di filigrana superiore (circa 20-30 secondi) rispetto agli altri otto partizioni. I ritardi della filigrana delle altre partizioni sono sempre costanti a circa 8-10 secondi.

Screenshot di un grafico che mostra la suddivisione del ritardo della filigrana in base all'ID partizione per il caso di deviazione dei dati.

Si verificherà l'aspetto dei dati di input per tutte queste partizioni con gli eventi di input delle metriche suddivisi in base all'ID partizione:

Screenshot di un grafico che mostra la suddivisione degli eventi di input in base all'ID partizione per il caso di deviazione dei dati.

Quale ulteriore azione può essere eseguita?

Come illustrato nell'esempio, le partizioni (0 e 1) con un ritardo elevato della filigrana ricevono dati di input significativamente maggiori rispetto ad altre partizioni. Questo tipo di dati viene chiamato asimmetria. I nodi di streaming che elaborano le partizioni con l'inclinazione dei dati devono usare più risorse di CPU e memoria rispetto ad altre, come illustrato nello screenshot seguente.

Screenshot di un grafico che mostra l'utilizzo delle risorse delle partizioni con l'inclinazione dei dati.

I nodi di streaming che elaborano le partizioni con un'inclinazione dei dati superiore mostreranno un utilizzo superiore della CPU e/o dell'unità di streaming (SU). Questo utilizzo influisce sulle prestazioni del processo e aumenta il ritardo della filigrana. Per attenuare questo problema, è necessario suddividere i dati di input in modo più uniforme.

È anche possibile eseguire il debug di questo problema con il diagramma dei processi fisici, vedere Diagramma processi fisici: identificare gli eventi di input distribuiti non uniformi (asimmetria dei dati).

La CPU o la memoria in overload aumentano il ritardo della filigrana

Quando un processo parallelo imbarazzante ha un ritardo di filigrana crescente, potrebbe verificarsi non solo una o più partizioni, ma tutte le partizioni. Come si conferma che il tuo lavoro rientra in questo caso?

  1. Suddividere la metrica di ritardo della filigrana in base all'ID partizione. Ad esempio:

    Screenshot di un grafico che mostra la suddivisione del ritardo della filigrana in base all'ID partizione per il caso di CPU e memoria di overload.

  2. Suddividere la metrica Eventi di input in base all'ID partizione per verificare se sono presenti differenze di dati in dati di input per ogni partizione.

  3. Controllare l'utilizzo della CPU e della su per verificare se l'utilizzo in tutti i nodi di streaming è troppo elevato.

    Screenshot di un grafico che mostra l'utilizzo della CPU e della memoria diviso in base al nome del nodo per il caso di CPU e memoria in overload.

  4. Se l'utilizzo della CPU e della SU è molto elevato (più del 80 percento) in tutti i nodi di streaming, è possibile concludere che questo processo ha una grande quantità di dati elaborati all'interno di ogni nodo di streaming.

    È possibile verificare ulteriormente il numero di partizioni allocate a un nodo di streaming controllando la metrica Eventi di input . Filtrare in base all'ID del nodo in streaming con la dimensione Nome nodo e suddividere in base all'ID partizione.

    Screenshot di un grafico che mostra il conteggio delle partizioni su un nodo di streaming per il caso di CPU e memoria in overload.

  5. Lo screenshot precedente mostra che quattro partizioni vengono allocate a un nodo di streaming che occupa circa il 90 al 100% della risorsa del nodo di streaming. È possibile usare un approccio simile per controllare il resto dei nodi di streaming per verificare che vengano elaborati anche dati da quattro partizioni.

Quale ulteriore azione può essere eseguita?

È possibile ridurre il conteggio delle partizioni per ogni nodo di streaming per ridurre i dati di input per ogni nodo di streaming. A questo scopo, è possibile raddoppiare le UNITÀ per avere ogni nodo di streaming gestire i dati da due partizioni. In alternativa, è possibile modificare le unità ssd per gestire i dati di ogni nodo di streaming da una partizione. Per informazioni sulla relazione tra assegnazione su e conteggio dei nodi di streaming, vedere Comprendere e regolare le unità di streaming.

Cosa si dovrebbe fare se il ritardo della filigrana è ancora crescente quando un nodo di streaming gestisce i dati da una partizione? Suddividere l'input con più partizioni per ridurre la quantità di dati in ogni partizione. Per informazioni dettagliate, vedere Usare la suddivisione per ottimizzare i processi di Analisi di flusso di Azure.

È anche possibile eseguire il debug di questo problema con il diagramma dei processi fisici, vedere Diagramma processi fisici: identificare la causa dell'overload della CPU o della memoria.

Passaggi successivi