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
Verifica 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 de mensajes del trabajo:
All workers have finished the startup processes and began to receive work requestsPara comparar el rendimiento del trabajo entre diferentes trabajos, asegúrate de que el volumen de datos de entrada, la configuración del trabajador, el comportamiento de ajuste de escala automático y la configuración de Dataflow Shuffle sean los mismos.
Revisa los registros de mensajes del trabajo para detectar problemas como límites de cuota, problemas de falta de stock o agotamiento de la dirección IP.
En la pestaña Detalles de la ejecución, compara el progreso de la etapa para identificar las etapas que tardaron más.
Busca rezagados en el trabajo. Para obtener más información, consulta Solución de problemas de rezagados en trabajos por lotes.
Verifica las métricas de capacidad de procesamiento, CPU y uso de memoria.
Revisa los registros del trabajador para detectar advertencias y errores.
- Si los registros del trabajador contienen errores, consulta el seguimiento de pila. Investiga si el error se debe a un error en tu código.
- Busca errores de Dataflow. Consulta Soluciona errores de Dataflow.
- Busca errores de memoria insuficiente, que pueden causar una canalización atascada. Si ves errores de memoria insuficiente, sigue los pasos que se indican en Soluciona problemas de errores de memoria insuficientes de Dataflow.
- Para identificar un paso lento o atascado, revisa los registros del trabajador en busca de mensajes
Operation ongoing. Consulta el seguimiento de pila para ver dónde pasa el tiempo el paso. Para obtener más información, consulta Procesamiento atascado o operación en curso.
Si no usas Dataflow Shuffle, revisa los registros de shuffler para detectar advertencias y errores durante la operación de shuffle. 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.
Si Runner v2 está habilitado, revisa los registros de harness para detectar errores. Para obtener más información, consulta Soluciona problemas de Runner v2.
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:
- Consulta los archivos de registro de ese trabajador. Para obtener más información, consulta Supervisa y visualiza los registros de canalización.
- Consulta las métricas de uso de CPU y los detalles de progreso del trabajador para los trabajadores atrasados. Si ves un uso de CPU inusualmente alto o bajo, en los archivos de registro de ese trabajador, busca los siguientes problemas:
Herramientas para la depuración
Cuando tienes una canalización lenta o atascada, las siguientes herramientas pueden ayudarte a diagnosticar el problema.
- Para correlacionar incidentes y, también, identificar cuellos de botella, usa Cloud Monitoring para Dataflow.
- Para supervisar el rendimiento de la canalización, usa Cloud Profiler.
- Algunas transformaciones son más adecuadas para canalizaciones de gran volumen que otras. Los mensajes de registro pueden identificar una transformación de usuario atascado en canalizaciones por lotes o de transmisión.
- Para obtener más información sobre un trabajo atascado, usa las métricas del trabajo de Dataflow.
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 Google Cloud métricas.