Soluciona problemas de trabajos por lotes lentos o atascados

En esta página, se explica cómo solucionar las causas comunes de trabajos por lotes de Dataflow lentos o atascados.

Si tu trabajo por lotes es lento o está bloqueado, usa la pestaña Detalles de la ejecución para encontrar más información sobre el trabajo y, también, identificar la etapa o el trabajador que genera un cuello de botella.

Identifica la causa raíz

  1. Comprueba si el trabajo tiene problemas durante el inicio del trabajador. Para obtener más información, consulta Error de sincronización del Pod.

    Para verificar que el trabajo haya comenzado a procesar datos, busca la siguiente entrada de registro en el registro job-message:

    All workers have finished the startup processes and began to receive work requests
    
  2. Para comparar el rendimiento de diferentes trabajos, asegúrate de que el volumen de datos de entrada, la configuración de los trabajadores, el comportamiento del ajuste de escala automático y la configuración de Dataflow Shuffle sean los mismos.

  3. Verifica los registros de job-message para detectar problemas como límites de cuota, problemas de falta de stock o agotamiento de direcciones IP.

  4. En la pestaña Detalles de ejecución, compara el progreso de la etapa para identificar las etapas que tardaron más.

  5. Busca cualquier rezagado en el trabajo. Para obtener más información, consulta Solución de problemas de rezagados en trabajos por lotes.

  6. Verifica las métricas de capacidad de procesamiento, CPU y uso de memoria.

  7. Revisa los registros del trabajador para detectar advertencias y errores.

  8. Verifica las teclas de acceso rápido.

  9. Si no usas Dataflow Shuffle, consulta los registros del mezclador para ver advertencias y errores durante la operación de mezcla. Si ves un error de tiempo de espera de RPC en el puerto 12345 o 12346, es posible que a tu trabajo le falte una regla de firewall. Consulta Reglas de firewall para Dataflow.

  10. Si el ejecutor portátil está habilitado, verifica si hay errores en los registros de harness. Para obtener más información, consulta Soluciona problemas del ejecutor portátil.

Identifica los rezagados

Un retraso es un elemento de trabajo que es lento en relación con otros elementos de trabajo en la etapa. Para obtener información sobre cómo identificar y corregir rezagados, consulta Solución de problemas de los rezagados en trabajos por lotes.

Identifica etapas lentas o bloqueadas

Para identificar etapas lentas o atascadas, usa la vista Progreso de la etapa. Las barras más largas indican que la etapa tarda más tiempo. Usa esta vista para identificar las etapas más lentas en tu canalización.

Después de encontrar la etapa de cuello de botella, puedes seguir los siguientes pasos:

  • Identifica el trabajador atrasado dentro de esa etapa.
  • Si no hay trabajadores atrasados, identifica el paso más lento mediante el panel Información de la etapa. Usa esta información a fin de identificar candidatos para la optimización del código de usuario.

Identifica a un trabajador que se retrasa

Para identificar a un trabajador atrasado en una etapa específica, usa la vista Progreso del trabajador. En esta vista, se muestra si todos los trabajadores están procesando el trabajo hasta el final del escenario o si un solo trabajador está atascado en una tarea de retraso. Si encuentras un trabajador atrasado, sigue estos pasos:

Herramientas para la depuración

Cuando tienes una canalización lenta o atascada, las siguientes herramientas pueden ayudarte a diagnosticar el problema.

Para obtener métricas adicionales que no están incluidas en la interfaz web de supervisión de Dataflow, consulta la lista completa de métricas de Dataflow en las métricas deGoogle Cloud .