Risoluzione dei problemi degli elementi in ritardo nei job batch

Gli ingranaggi sono elementi di lavoro che rallentano i job Dataflow. impedendo l'esecuzione contemporanea del lavoro.

Per le pipeline batch, un elemento in ritardo è definito come un elemento di lavoro con le seguenti caratteristiche:

  • Il completamento richiede molto più tempo rispetto ad altri elementi di lavoro nello stesso durante la fase di sviluppo.
  • Riduce il parallelismo nella fase.
  • Impedisce l'avvio di nuovi lavori.

Nel peggiore dei casi, un elemento in ritardo blocca il completamento di una fase perché Percentuale di lavoro in corso, che causa ritardi complessivi nel lavoro.

Dataflow rileva gli elementi in ritardo che si verificano durante i job batch. Se Dataflow rileva un elemento in ritardo e prova anche a determinarne la causa. dell'elemento in ritardo.

Visualizza gli elementi in ritardo nella console Google Cloud

Dopo aver avviato un job Dataflow, puoi utilizzare la console Google Cloud per visualizzare gli elementi in ritardo rilevati.

Puoi visualizzare i ritardatari per fase o per worker. Utilizza queste visualizzazioni per trovare le fasi in cui si sono verificati ritardi e individua i worker in cui si sono verificati ritardi all'interno di ogni fase.

Visualizzare i ritardatari per fase

Per visualizzare gli elementi in ritardo per fase:

  1. Nella console Google Cloud, vai ai Job di Dataflow. .

    Vai a Job.

  2. Fai clic sul nome del job.

  3. Nella pagina dei dettagli del job, fai clic sulla scheda Dettagli esecuzione.

  4. Nell'elenco Visualizzazione grafico, seleziona Avanzamento fase. Il grafico di avanzamento mostra i conteggi aggregati di tutti i ritardatari rilevati in ogni fase.

  5. Per visualizzare i dettagli di una fase, tieni premuto il cursore sopra la barra della fase. A Visualizza i lavoratori per la fase, fai clic su Visualizza lavoratori nel riquadro dei dettagli.

Visualizzare i ritardatari per utente

Per visualizzare gli elementi in ritardo per worker:

  1. Nella console Google Cloud, vai alla pagina Job di Dataflow.

    Vai a Job.

  2. Fai clic sul nome del job.

  3. Nella pagina dei dettagli del job, fai clic sulla scheda Dettagli esecuzione.

  4. Nell'elenco Visualizzazione grafico, seleziona Avanzamento worker.

  5. Nell'elenco Filtra worker per fase, seleziona la fase. Il grafico di avanzamento mostra eventuali elementi in ritardo rilevati per la fase in questione. Il bar ha un'ombreggiatura più scura in il punto in cui l'elemento in ritardo è stato rilevato per la prima volta.

  6. Per visualizzare i dettagli di un worker, tieni il puntatore sulla 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 l'elemento in ritardo.
  • Il lavoratore che ha riscontrato il ritardatario.
  • La causa, se nota.

Risolvere i problemi relativi ai job in ritardo

Dataflow rileva le seguenti cause di elementi in ritardo nelle pipeline batch:

  • Tasto di scelta rapida. Un tasto di scelta rapida è una chiave che rappresenta un numero notevolmente maggiore di elementi. rispetto ad altre chiavi nello stesso PCollection. Per ulteriori informazioni, consulta Risolvere i problemi relativi agli elementi in ritardo causati dai tasti di scelta rapida in questo documento.

  • Slow Worker. Su un lavoratore 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 dei worker, tra cui la fame di CPU, il thrashing, l'architettura della macchina e i processi dei worker bloccati. In caso di rallentamento, Dataflow tenta di mitigare il problema automaticamente. Per ulteriori informazioni, vedi Riduci automaticamente gli elementi in ritardo causati dai lavoratori lenti in questo documento.

  • Causa indeterminata. Per gli elementi in ritardo con causa indeterminata, vedi le procedure generali di risoluzione dei problemi job batch lenti in "Risolvere i problemi di job lenti o bloccati".

Risolvere i problemi relativi agli elementi in ritardo causati dai tasti di scelta rapida

Vari fattori possono causare ritardi, ma una causa comune è l'esistenza di un'hot key. Una hot key è una chiave che rappresenta molti più elementi rispetto a altre chiavi nello stesso PCollection. I tasti di scelta rapida possono creare elementi in ritardo 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 chiave del tasto di scelta rapida. Per visualizzare il valore della chiave, imposta il valore hotKeyLoggingEnabled dell'opzione 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 opzioni:

Ad esempio, se una pipeline esegue un'operazione JOIN nell'ambito di una procedura trasformata, è probabile che una determinata chiave contenga una quantità sproporzionata quando vengono inseriti in GroupByKey ed eseguiti nell'ambito della operazione JOIN espansa.

Per ulteriori informazioni, consulta la seguente richiesta di funzionalità: beam-issue/28186.

Limita automaticamente gli elementi in ritardo causati da worker lenti

I worker lenti sono rari in Dataflow, ma possono influire prestazioni professionali. Per evitare problemi di prestazioni, quando Dataflow rileva worker lenti, cerca 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 del criterio di manutenzione dell'host, viene eseguita la migrazione live o il riavvio del worker. Se si verifica una migrazione in tempo reale, il carico di lavoro non viene interrotto. Se il worker viene riavviato, il lavoro in corso dal worker lento va perso. e l'elaborazione si riavvii.

Se viene rilevato e mitigato un worker lento, nei log job-message viene visualizzato questo messaggio:

Slow worker ... detected and automatically remediated ...

Poiché i lavoratori lenti non sono in ritardo, non è necessaria alcuna azione da parte tua.

Se la mitigazione non va a buon fine, il worker lento causa un ritardatario visualizzato nell'interfaccia di monitoraggio di Dataflow.

La mitigazione automatica potrebbe non riuscire se il progetto esaurisce la quota per per simulare le richieste di eventi di manutenzione. Per ulteriori informazioni informazioni sulla quota predefinita, vedi Limiti di frequenza delle API per le metriche a livello di regione in "Quote di utilizzo delle risorse e gestione delle autorizzazioni". Per richiedere un limite di quota più elevato, consulta Richiedere un limite di quota più elevato in "Visualizza e gestisci le quote".

Passaggi successivi