Risolvere i problemi relativi ai job batch lenti o bloccati

In questa pagina viene spiegato come risolvere le cause comuni dei job batch Dataflow lenti o bloccati.

Se il job batch è lento o bloccato, utilizza la scheda Dettagli esecuzione per trovare ulteriori informazioni sul job e identificare la fase o il worker che sta causando un collo di bottiglia.

Identifica la causa principale

  1. Verifica se il job riscontra problemi durante l'avvio del worker. Per saperne di più, consulta Errore durante la sincronizzazione del pod.

    Per verificare che il job abbia iniziato a elaborare i dati, cerca la seguente voce di log nel log dei messaggi del job:

    All workers have finished the startup processes and began to receive work requests
    
  2. Per confrontare il rendimento dei job tra job diversi, assicurati che il volume dei dati di input, la configurazione dei worker, il comportamento della scalabilità automatica e le impostazioni di Dataflow Shuffle siano gli stessi.

  3. Controlla i log dei messaggi del job per verificare la presenza di problemi come limiti di quota, problemi di esaurimento delle scorte o esaurimento degli indirizzi IP.

  4. Nella scheda Dettagli esecuzione, confronta l' avanzamento delle fasi per identificare le fasi che hanno richiesto più tempo.

  5. Cerca eventuali elementi in ritardo nel job. Per saperne di più, consulta Risolvere i problemi relativi agli elementi in ritardo nei job batch.

  6. Controlla le metriche di throughput, CPU e utilizzo della memoria.

  7. Controlla i log dei worker per verificare la presenza di avvisi ed errori.

  8. Verifica la presenza di tasti di scelta rapida.

  9. Se non utilizzi Dataflow Shuffle, controlla i log di shuffle per verificare la presenza di avvisi ed errori durante l'operazione di shuffle. Se visualizzi un errore di timeout RPC sulla porta 12345 o 12346, è possibile che al job manchi una regola firewall. Consulta Regole firewall per Dataflow.

  10. Se Runner v2 è abilitato, controlla i log dell'harness per verificare la presenza di errori. Per saperne di più, consulta Risolvere i problemi relativi a Runner v2.

Identifica gli elementi in ritardo

Un elemento in ritardo è un elemento di lavoro lento rispetto ad altri elementi di lavoro nella fase. Per informazioni su come identificare e correggere gli elementi in ritardo, consulta Risolvere i problemi relativi agli elementi in ritardo nei job batch.

Identifica le fasi lente o bloccate

Per identificare le fasi lente o bloccate, utilizza la visualizzazione Avanzamento fase. Le barre più lunghe indicano che la fase richiede più tempo. Utilizza questa visualizzazione per identificare le fasi più lente della pipeline.

Dopo aver trovato la fase di collo di bottiglia, puoi procedere nel seguente modo:

  • Identifica il worker in ritardo all'interno di quella fase.
  • Se non ci sono worker in ritardo, identifica il passaggio più lento utilizzando il riquadro Informazioni fase. Utilizza queste informazioni per identificare i candidati per l'ottimizzazione del codice utente.

Identifica un worker in ritardo

Per identificare un worker in ritardo per una fase specifica, utilizza la visualizzazione Avanzamento worker. Questa visualizzazione mostra se tutti i worker stanno elaborando il lavoro fino alla fine della fase o se un singolo worker è bloccato su un'attività in ritardo. Se trovi un worker in ritardo, procedi nel seguente modo:

Strumenti per il debug

Quando hai una pipeline lenta o bloccata, i seguenti strumenti possono aiutarti a diagnosticare il problema.

Per altre metriche non incluse nell'interfaccia web di monitoraggio di Dataflow, consulta l'elenco completo delle metriche di Dataflow in Google Cloud metriche.