Gli elementi in ritardo sono elementi di lavoro che rallentano i job Dataflow impedendo l'esecuzione contemporanea del lavoro.
Per le pipeline batch, un ritardatario è definito come un elemento di lavoro con le seguenti caratteristiche:
- Richiede molto più tempo per essere completato rispetto ad altri elementi di lavoro nella stessa fase.
- Riduce il parallelismo all'interno della fase.
- Impedisce l'avvio di nuovi lavori.
Nel peggiore dei casi, un elemento in ritardo impedisce il completamento di una fase perché una piccola percentuale del lavoro è in corso, causando ritardi complessivi in un job.
Dataflow rileva gli elementi in ritardo che si verificano durante i job batch. Se Dataflow rileva un ritardatario, cerca anche di determinare la causa del ritardo.
Visualizzare i ritardatari nella console Google Cloud
Dopo aver avviato un job Dataflow, puoi utilizzare la console Google Cloud per visualizzare eventuali ritardatari rilevati.
Puoi visualizzare i ritardatari per fase o per worker. Utilizza queste visualizzazioni per trovare le fasi in cui si verificano ritardi e poi individua i worker in cui si sono verificati ritardi in ogni fase.
Visualizzare i ritardatari per fase
Per visualizzare i ritardatari in base alla fase:
Nella console Google Cloud , vai alla pagina Job di Dataflow.
Vai a Job.
Fai clic sul nome del job.
Nella pagina dei dettagli del job, fai clic sulla scheda Dettagli esecuzione.
Nell'elenco Visualizzazione a grafico, seleziona Avanzamento fase. Il grafico di avanzamento mostra i conteggi aggregati di tutti i ritardatari rilevati in ogni fase.
Per visualizzare i dettagli di una fase, tieni il puntatore sopra la barra della fase. Per visualizzare i worker per la fase, fai clic su Visualizza worker nel riquadro dei dettagli.
Visualizzare i ritardatari per worker
Per visualizzare i ritardatari per worker:
Nella console Google Cloud , vai alla pagina Job di Dataflow.
Vai a Job.
Fai clic sul nome del job.
Nella pagina dei dettagli del job, fai clic sulla scheda Dettagli esecuzione.
Nell'elenco Visualizzazione a grafico, seleziona Avanzamento worker.
Nell'elenco Filtra worker per fase, seleziona la fase. Il grafico di avanzamento mostra eventuali ritardatari rilevati per quella fase. La barra ha una tonalità più scura nel punto in cui è stato rilevato per la prima volta il ritardatario.
Per visualizzare i dettagli di un worker, tieni il puntatore sopra la barra corrispondente.
Nel riquadro Informazioni sulla fase, la sezione Dettagli ritardatari elenca i ritardatari per tutti i lavoratori mostrati nella pagina, con le seguenti informazioni:
- L'ora di inizio in cui è stato rilevato il ritardatario.
- Il lavoratore che ha riscontrato il problema.
- La causa, se nota.
Risolvere i problemi relativi ai batch in ritardo
Dataflow rileva le seguenti cause di ritardi nelle pipeline batch:
Tasto di scelta rapida. Un tasto di scelta rapida è un tasto che rappresenta molti più elementi rispetto ad altri tasti nello stesso
PCollection
. Per saperne di più, vedi Risolvere i problemi relativi agli elementi in ritardo causati dai tasti di scelta rapida in questo documento.Slow Worker. Su un worker lento, gli elementi di lavoro vengono eseguiti più lentamente del solito. Spesso, la velocità di elaborazione di un worker lento è inferiore a quella dei worker che svolgono un lavoro simile nella stessa fase. Molti fattori possono causare la lentezza del worker, tra cui la carenza di CPU, il thrashing, l'architettura della macchina e i processi del worker bloccati. Quando si verifica un rallentamento, Dataflow tenta di risolvere il problema automaticamente. Per saperne di più, consulta Mitigare automaticamente i ritardatari causati da worker lenti in questo documento.
Causa indeterminata. Per gli elementi in ritardo con causa indeterminata, consulta i passaggi generali per la risoluzione dei problemi relativi ai job batch lenti nella sezione "Risolvere i problemi relativi ai job lenti o bloccati".
Risolvere i problemi relativi agli elementi in ritardo causati dai tasti di scelta rapida
Diversi fattori possono causare ritardi, ma una causa comune è l'esistenza di
un tasto di scelta rapida. Un tasto di scelta rapida è un tasto che rappresenta molti più elementi rispetto
ad altri tasti nello stesso PCollection
. Le hotkey possono creare ritardatari perché
limitano la capacità di Dataflow di elaborare gli elementi in parallelo.
Se Dataflow rileva un elemento in ritardo causato da un tasto di scelta rapida, il riquadro
Dettagli elemento in ritardo elenca Hot Key
come causa.
Per impostazione predefinita, Dataflow non visualizza il valore della chiave
della hotkey. Per visualizzare il valore della chiave, imposta l'opzione
hotKeyLoggingEnabled
della pipeline su true
quando esegui il job.
Per risolvere il problema, verifica che i dati siano distribuiti in modo uniforme. Se una chiave ha un numero sproporzionato di valori, valuta le seguenti azioni:
- Riassegna le chiavi ai tuoi dati. Applica una
ParDo
trasformazione per generare nuove coppie chiave-valore. - Per i job Java, utilizza la trasformazione
Combine.PerKey.withHotKeyFanout
. - Per i job Python, utilizza la trasformazione
CombinePerKey.with_hot_key_fanout
. - Attiva Dataflow Shuffle.
Ad esempio, se una pipeline esegue un'operazione JOIN
nell'ambito di una trasformazione SQL, è probabile che una determinata chiave contenga una quantità sproporzionata di dati quando viene inserita nell'operazione GroupByKey
eseguita nell'ambito dell'operazione JOIN
espansa.
Per ulteriori informazioni, consulta la seguente richiesta di funzionalità: beam-issue/28186.
Mitigare automaticamente gli elementi in ritardo causati da worker lenti
I worker lenti sono rari in Dataflow, ma possono influire sulle prestazioni del job. Per evitare problemi di prestazioni, quando Dataflow rileva worker lenti, tenta di mitigare il problema prima che i worker causino ritardi.
La mitigazione automatica simula un evento di manutenzione dell'host. L'evento è un meccanismo di manutenzione di Compute Engine che si verifica regolarmente. A seconda della policy di manutenzione dell'host del worker, viene eseguita la migrazione live o il riavvio del worker. Se si verifica una migrazione live, il workload non viene interrotto. Se il worker viene riavviato, il lavoro in corso del worker lento viene perso e l'elaborazione viene riavviata.
Se viene rilevato un worker lento e il problema viene risolto, nei log job-message viene visualizzato il seguente messaggio:
Slow worker ... detected and automatically remediated ...
Poiché i lavoratori lenti non sono ritardatari, non è necessaria alcuna azione da parte tua.
Se la mitigazione non va a buon fine, il worker lento causa un ritardatario che viene visualizzato nell'interfaccia di monitoraggio di Dataflow.
La mitigazione automatica potrebbe non riuscire se il tuo progetto esaurisce la quota per le richieste di simulazione di eventi di manutenzione delle istanze. Per ulteriori informazioni sulla quota predefinita, consulta Limiti di frequenza delle richieste API per le metriche regionali in "Quote di utilizzo delle risorse e gestione autorizzazioni". Per richiedere un limite di quota superiore, consulta Richiesta di aggiustamento delle quote in "Visualizza e gestisci le quote".
Passaggi successivi
- Scopri come utilizzare l'interfaccia di monitoraggio di Dataflow.
- Comprendere la scheda Dettagli esecuzione nell'interfaccia di monitoraggio.