I ritardo sono elementi di lavoro che rallentano i job di Dataflow impedendo che vengano eseguiti in parallelo.
Un elemento in ritardo è un elemento di lavoro con le seguenti caratteristiche:
- Il completamento di questa operazione richiede molto più tempo rispetto ad altri elementi di lavoro nella stessa fase.
- Riducono il parallelismo all'interno della fase.
- Impedisce l'avvio di nuovi lavori.
Nel peggiore dei casi, un elemento in ritardo blocca una fase dal completamento perché è in corso una piccola percentuale del lavoro, causando ritardi complessivi nel job.
Dataflow rileva gli elementi in ritardo che si verificano durante i job batch. Se Dataflow rileva uno elemento in ritardo, tenta anche di determinare la causa.
Visualizza elementi in ritardo nell'interfaccia di monitoraggio di Dataflow
Dopo aver avviato un job di Dataflow, puoi utilizzare la console Google Cloud per visualizzare gli elementi in ritardo rilevati.
Puoi visualizzare gli elementi in ritardo per fase o per worker. Utilizza queste viste per individuare le fasi in cui sono presenti elementi in ritardo e poi individua i worker in cui si sono verificati.
Visualizza elementi in ritardo per fase
Per visualizzare gli elementi in ritardo per 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 grafico, seleziona Avanzamento fase. Il grafico di avanzamento mostra i conteggi aggregati di tutti gli elementi in ritardo rilevati in ogni fase.
Passa il mouse sopra la barra di una fase per visualizzarne i dettagli. Per visualizzare i worker per la fase, fai clic su Visualizza worker nel riquadro dei dettagli.
Visualizza elementi in ritardo per lavoratore
Per visualizzare elementi in ritardo per lavoratore:
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 grafico, seleziona Avanzamento worker.
Nell'elenco Filtra i worker per fase, seleziona la fase. Il grafico di avanzamento mostra gli elementi in ritardo rilevati per la fase in questione. La barra ha un'ombreggiatura più scura nel punto in cui viene rilevato per la prima volta
Per visualizzare i dettagli di un worker, passa il mouse sopra la barra del worker in questione.
Nel riquadro Informazioni sulla fase, la sezione Dettagli elementi in ritardo elenca gli elementi in ritardo per tutti i worker mostrati nella pagina, con le seguenti informazioni:
- L'ora di inizio in cui è stato rilevato un elemento in ritardo.
- L'operaio che ha incontrato la stravagante.
- La causa, se nota.
Risolvere i problemi relativi agli elementi in ritardo
Dataflow rileva le seguenti cause di elementi in ritardo:
Tasto di accensione. Una tasto di scelta rapida è una chiave che rappresenta molti più elementi rispetto ad altre chiavi nella stessa
PCollection
. Per ulteriori informazioni, consulta la sezione Risolvere i problemi di elementi in ritardo causati da tasti di scelta rapida in questo documento.Causa indeterminata. Per i ritardatari con causa indeterminata, consulta i passaggi generali per la risoluzione dei problemi relativi ai job batch lenti nel documento Risoluzione dei problemi e debug della pipeline.
Risolvere i problemi di ritardi causati dai tasti di scelta rapida
Esistono diversi fattori che possono causare l'assenza di elementi mobili, ma una delle cause più comuni è l'esistenza di un tasto di scelta rapida. Una chiave hotkey è una chiave che rappresenta molti più elementi rispetto ad altre chiavi nello stesso PCollection
. Le chiavi di scelta rapida possono creare elementi in ritardo perché
limitano la capacità di Dataflow di elaborare gli elementi in parallelo.
Se Dataflow rileva uno ritardatario causato da un tasto di scelta rapida, nel riquadro Dettagli Straggler viene elencato Hot Key
come causa.
Per impostazione predefinita, Dataflow non visualizza il valore della chiave hotkey. Per visualizzare la coppia chiave-valore, imposta l'opzione della pipeline hotKeyLoggingEnabled
su true
quando esegui il job.
Per risolvere questo problema, verifica che i dati siano distribuiti in modo uniforme. Se una chiave ha un numero elevato di valori, considera le seguenti azioni:
- Ridigita i tuoi dati. Applica una trasformazione
ParDo
per produrre 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.
Passaggi successivi
- Scopri come utilizzare l'interfaccia di monitoraggio di Dataflow.
- Consulta la scheda Dettagli esecuzione nell'interfaccia di monitoraggio.