Optimiza el rendimiento y los costos del entorno

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

En esta página, se explica cómo ajustar los parámetros de escalamiento y rendimiento de tu entorno a las necesidades de tu proyecto para obtener un mejor rendimiento y reducir los costos de los recursos que el entorno no usa.

Otras páginas sobre escalamiento y optimización:

Descripción general del proceso de optimización

Realizar cambios en los parámetros de tu entorno puede afectar muchos aspectos de su rendimiento. Recomendamos optimizar el entorno a través de iteraciones:

  1. Comienza con los ajustes predeterminados del entorno.
  2. Ejecuta tus DAG.
  3. Observar el rendimiento de tu entorno
  4. Ajusta la escala y los parámetros de rendimiento de tu entorno y, luego, repite desde el paso anterior.

Comienza con los ajustes predeterminados del entorno

Cuando creas un entorno en la consola de Google Cloud, puedes seleccionar uno de los tres ajustes predeterminados del entorno. Estos ajustes predeterminados establecen la escala inicial y la configuración de rendimiento de tu entorno. Después de crearlo, puedes cambiar todos los parámetros de escala y rendimiento que proporciona un ajuste predeterminado.

Te recomendamos que comiences con uno de los ajustes predeterminados según las siguientes estimaciones:

  • Cantidad total de DAG que planeas implementar en el entorno
  • Cantidad máxima de ejecuciones simultáneas de DAG
  • Cantidad máxima de tareas simultáneas

El rendimiento de tu entorno depende de la implementación de DAG específicos que ejecutas en tu entorno. En la siguiente tabla, se muestran estimaciones basadas en el consumo promedio de recursos. Si esperas que tus DAG consuman más recursos, ajusta las estimaciones según corresponda.

Ajuste predeterminado recomendado DAG totales Cantidad máxima de ejecuciones simultáneas de DAG Cantidad máxima de tareas simultáneas
Pequeñas 50 15 18
Medio 250 60 100
Grandes 1,000 250 400

Por ejemplo, un entorno debe ejecutar 40 DAG. Todos los DAG deben ejecutarse al mismo tiempo con una tarea activa cada uno. Este entorno usaría un ajuste predeterminado medio, porque la cantidad máxima de ejecuciones y tareas simultáneas de DAG supera las estimaciones recomendadas para el ajuste predeterminado pequeño.

Ejecuta tus DAG

Una vez creado el entorno, sube tus DAG en él. Ejecuta tus DAG y observa el rendimiento del entorno.

Recomendamos ejecutar los DAG según un programa que refleje su aplicación en la vida real. Por ejemplo, si deseas ejecutar varios DAG al mismo tiempo, asegúrate de verificar el rendimiento de tu entorno cuando todos estos DAG se ejecuten de forma simultánea.

Observa el rendimiento de tu entorno

En esta sección, se describen los aspectos más comunes del ajuste de capacidad y rendimiento de Cloud Composer 2. Te recomendamos seguir esta guía paso a paso porque las consideraciones de rendimiento más comunes se tratan primero.

Ir al panel de Monitoring

Puedes supervisar las métricas de rendimiento de tu entorno en el panel de Monitoring correspondiente.

Para ir al panel de Monitoring de tu entorno, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Entornos.

    Ir a Entornos

  2. Haz clic en el nombre de tu entorno.

  3. Ve a la pestaña Monitoring.

Supervisa las métricas de CPU y memoria del programador

Las métricas de CPU y memoria del programador de Airflow te ayudan a comprobar si el rendimiento del programador es un cuello de botella en el rendimiento general de Airflow.

Gráficos para programadores de Ariflow
Figura 1. Gráficos para programadores de Airflow (haz clic para ampliar)

En el panel de Supervisión, en la sección Programadores, observa los grafos de Airflow de tu entorno:

  • Uso total de CPU de los programadores
  • Uso total de memoria de los programadores

Ajusta en función de tus observaciones:

Supervisa el tiempo total de análisis de todos los archivos DAG

Los programadores analizan los DAG antes de programar sus ejecuciones. Si los DAG tardan mucho tiempo en analizarse, esto consume la capacidad del programador y puede reducir el rendimiento de las ejecuciones de DAG.

Gráfico del tiempo de análisis total del DAG
Figura 2. Gráfico del tiempo de análisis del DAG (haz clic para ampliar)

En el panel de Monitoring, en la sección Estadísticas de DAG, observa grafos del tiempo total de análisis del DAG.

Si la cantidad supera los 10 segundos, es posible que tus programadores estén sobrecargados con el análisis de los DAG y no puedan ejecutarlos de manera efectiva. La frecuencia predeterminada de análisis del DAG en Airflow es de 30 segundos; si el tiempo de análisis del DAG supera este umbral, los ciclos de análisis comienzan a superponerse, lo que luego agota la capacidad del programador.

Según tus observaciones, podrías hacer lo siguiente:

Supervisa las expulsiones de Pods de trabajadores

La expulsión de un Pod puede ocurrir cuando un Pod en particular del clúster de tu entorno alcanza sus límites de recursos.

Gráfico de expulsiones de Pods de trabajadores
Figura 3. Gráfico que muestra las expulsiones de Pods de trabajadores (haz clic para ampliar)

Si se expulsa un pod de trabajador de Airflow, todas las instancias de tareas que se ejecutan en ese pod se interrumpen y, luego, se marcan como con errores en Airflow.

La mayoría de los problemas con las expulsiones de Pods de trabajadores ocurren debido a situaciones de falta de memoria en los trabajadores.

En el panel de Supervisión, en la sección Programadores, observa los gráficos Expulsiones de pods de trabajador de tu entorno:

En el gráfico Uso total de memoria de los trabajadores, se muestra una perspectiva total del entorno. Un solo trabajador puede exceder el límite de memoria, incluso si el uso de memoria está en buen estado a nivel del entorno.

Según tus observaciones, podrías hacer lo siguiente:

Supervisa a los trabajadores activos

La cantidad de trabajadores en tu entorno se escala automáticamente en respuesta a las tareas en cola.

Gráficos de trabajadores activos y tareas en cola
Figura 4: Gráficos de trabajadores activos y tareas en cola (haz clic para ampliar)

En el panel de Monitoring, en la sección Workers (Trabajadores), observa los gráficos de la cantidad de trabajadores activos y la cantidad de tareas en la cola:

  • Trabajadores activos
  • Tareas de Airflow

Ajusta en función de tus observaciones:

  • Si el entorno alcanza con frecuencia su límite máximo de trabajadores y, al mismo tiempo, la cantidad de tareas en la cola de Celery aumenta de forma continua, te recomendamos aumentar la cantidad máxima de trabajadores.
  • Si hay retrasos largos en la programación entre tareas, pero al mismo tiempo el entorno no escala verticalmente a su cantidad máxima de trabajadores, es probable que haya una configuración de Airflow que limite la ejecución y evite que los mecanismos de Cloud Composer escalen el entorno. Debido a que los entornos de Cloud Composer 2 escalan según la cantidad de tareas en la cola de Celery, configura Airflow para que no limite las tareas en el camino hacia la cola:

    • Aumenta la simultaneidad de trabajadores. La simultaneidad de trabajadores se debe establecer en un valor superior a la cantidad máxima esperada de tareas simultáneas, dividida por la cantidad máxima de trabajadores en el entorno.
    • Aumenta la simultaneidad del DAG si un solo DAG ejecuta una gran cantidad de tareas en paralelo, lo que puede llevar a alcanzar la cantidad máxima de instancias de tareas en ejecución por DAG.
    • Aumenta la cantidad máxima de ejecuciones activas por DAG, si ejecutas el mismo DAG varias veces en paralelo, lo que puede hacer que Airflow regula la ejecución porque se alcanza el límite máximo de ejecuciones activas por DAG.

Supervisa el uso de CPU y memoria de los trabajadores

Supervisa el uso total de CPU y memoria agregado de todos los trabajadores de tu entorno para determinar si los trabajadores de Airflow usan los recursos del entorno de forma correcta.

Gráficos de la CPU y la memoria de los trabajadores
Figura 5: Gráficos de memoria y CPU de los trabajadores (haz clic para ampliar)

En el panel de Monitoring, en la sección Workers, observa los gráficos del uso de CPU y memoria por parte de los trabajadores de Airflow:

  • Uso total de trabajadores de CPU
  • Uso total de la memoria de trabajadores

En este gráfico, se representa el uso agregado de recursos; los trabajadores individuales aún pueden alcanzar sus límites de capacidad, incluso si la vista agregada muestra la capacidad libre.

Ajusta en función de tus observaciones:

Supervisa las tareas en ejecución y en cola

Puedes supervisar la cantidad de tareas en cola y en ejecución para verificar la eficiencia del proceso de programación.

Gráfico que muestra las tareas en ejecución y en cola
Figura 6: Gráfico que muestra las tareas en ejecución y en cola (haz clic para ampliar)

En el panel de Monitoring, en la sección Trabajadores, observa el gráfico Tareas de Airflow para tu entorno.

Las tareas en la cola están esperando que los trabajadores las ejecuten. Si tu entorno tiene tareas en cola, esto podría significar que los trabajadores están ocupados ejecutando otras tareas.

Siempre hay una cola en un entorno, especialmente durante los picos de procesamiento. Sin embargo, si observas una gran cantidad de tareas en cola o una tendencia creciente en el grafo, esto podría indicar que los trabajadores no tienen suficiente capacidad para procesar las tareas o que Airflow está regulando la ejecución de las tareas.

Por lo general, se observa una gran cantidad de tareas en cola cuando la cantidad de tareas en ejecución también alcanza el nivel máximo.

Para abordar ambos problemas:

Supervisa el uso de memoria y CPU de la base de datos

Los problemas de rendimiento de la base de datos de Airflow pueden provocar problemas generales de ejecución del DAG. El uso del disco de la base de datos no suele ser un motivo de preocupación, ya que el almacenamiento se extiende automáticamente según sea necesario.

Gráficos de memoria y CPU de la base de datos
Figura 7: Gráficos de memoria y CPU de la base de datos (haz clic para ampliar)

En el panel de Supervisión, en la sección Programadores, observa los gráficos para el uso de memoria y CPU de la base de datos de Airflow:

  • Uso de CPU de la base de datos
  • Uso de memoria de la base de datos

Si el uso de CPU de la base de datos supera el 80% durante más de un pequeño porcentaje del tiempo total, la base de datos se sobrecarga y requiere escalamiento.

La propiedad de tamaño del entorno de tu entorno controla la configuración de tamaño de la base de datos. Para aumentar o reducir la escala de la base de datos, cambia el tamaño del entorno a un nivel diferente (Pequeño, Mediano o Grande). Aumentar el tamaño del entorno aumenta sus costos.

Supervisa la latencia de programación de la tarea

Si la latencia entre las tareas supera los niveles esperados (por ejemplo, 20 segundos o más), esto podría indicar que el entorno no puede manejar la carga de tareas generadas por las ejecuciones de DAG.

Gráfico de latencia de la tarea (IU de Airflow)
Figura 8. Gráfico de latencia de tarea, IU de Airflow (haz clic para ampliar)

Puedes ver el gráfico de latencia de programación de tareas, en la IU de Airflow de tu entorno.

En este ejemplo, los retrasos (2.5 y 3.5 segundos) se encuentran dentro de los límites aceptables, pero las latencias significativamente más altas pueden indicar lo siguiente:

Supervisar la CPU y la memoria del servidor web

El rendimiento del servidor web de Airflow afecta la IU de Airflow. No es común que el servidor web se sobrecargue. Si esto sucede, el rendimiento de la IU de Airflow puede deteriorarse, pero no afecta el rendimiento de las ejecuciones de DAG.

Gráficos de memoria y CPU del servidor web
Figura 9: Gráficos de memoria y CPU del servidor web (haz clic para ampliar)

En el panel de Supervisión, en la sección servidor web, observa los gráficos del servidor web de Airflow:

  • Uso de CPU del servidor web
  • Uso de memoria del servidor web

En función de tus observaciones:

Ajustar la escala y los parámetros de rendimiento del entorno

Cambia la cantidad de programadores

Ajustar la cantidad de programadores mejora su capacidad y la resiliencia de la programación de Airflow.

Si aumentas la cantidad de programadores, se incrementará el tráfico hacia y desde la base de datos de Airflow. En la mayoría de los casos, recomendamos usar dos programadores de Airflow. Solo se requiere el uso de más de dos programadores en casos excepcionales que requieren consideraciones especiales.

Si necesitas una programación más rápida, haz lo siguiente:

Ejemplos:

Consola

Sigue los pasos que se indican en Cómo ajustar la cantidad de programadores para establecer la cantidad necesaria de tu entorno.

gcloud

Sigue los pasos que se indican en Cómo ajustar la cantidad de programadores para establecer la cantidad necesaria de tu entorno.

En el siguiente ejemplo, se establece la cantidad de programadores en dos:

gcloud composer environments update example-environment \
    --scheduler-count=2

Terraform

Sigue los pasos que se indican en Cómo ajustar la cantidad de programadores para establecer la cantidad necesaria de tu entorno.

En el siguiente ejemplo, se establece la cantidad de programadores en dos:

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    workloads_config {
      scheduler {
        count = 2
      }
    }
  }
}

Cambia la CPU y la memoria para los programadores

Los parámetros de CPU y memoria son para cada programador de tu entorno. Por ejemplo, si tu entorno tiene dos programadores, la capacidad total será el doble de la cantidad especificada de CPU y memoria.

Consola

Sigue los pasos que se indican en Cómo ajustar los parámetros de escala y rendimiento de trabajadores, programadores y servidores web para configurar la CPU y la memoria de los programadores.

gcloud

Sigue los pasos que se indican en Cómo ajustar los parámetros de escala y rendimiento de trabajadores, programadores y servidores web para configurar la CPU y la memoria para los programadores.

En el siguiente ejemplo, se cambian la CPU y la memoria para los programadores. Solo puedes especificar atributos de CPU o memoria, según la necesidad.

gcloud composer environments update example-environment \
  --scheduler-cpu=0.5 \
  --scheduler-memory=3.75

Terraform

Sigue los pasos que se indican en Cómo ajustar los parámetros de escala y rendimiento de trabajadores, programadores y servidores web para configurar la CPU y la memoria de los programadores.

En el siguiente ejemplo, se cambian la CPU y la memoria para los programadores. Puedes omitir los atributos de CPU o de memoria, según la necesidad.

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    workloads_config {
      scheduler {
        cpu = "0.5"
        memory_gb = "3.75"
      }
    }
  }
}

Cambia la cantidad máxima de trabajadores

Aumentar la cantidad máxima de trabajadores permite que tu entorno escale de forma automática a una mayor cantidad de trabajadores, si es necesario.

Disminuir el número máximo de trabajadores reduce la capacidad máxima del entorno, pero también puede ser útil para reducir los costos del entorno.

Ejemplos:

Consola

Sigue los pasos que se indican en Ajusta la cantidad mínima y máxima de trabajadores para establecer la cantidad máxima requerida de trabajadores en tu entorno.

gcloud

Sigue los pasos que se indican en Ajusta la cantidad mínima y máxima de trabajadores para establecer la cantidad máxima requerida de trabajadores en tu entorno.

En el siguiente ejemplo, se establece la cantidad máxima de trabajadores en seis:

gcloud composer environments update example-environment \
    --max-workers=6

Terraform

Sigue los pasos que se indican en Ajusta la cantidad mínima y máxima de trabajadores para establecer la cantidad máxima requerida de trabajadores en tu entorno.

En el siguiente ejemplo, se establece la cantidad máxima de programadores en seis:

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    workloads_config {
      worker {
        max_count = "6"
      }
    }
  }
}

Cambia la CPU y la memoria de los trabajadores

  • Disminuir la memoria del trabajador puede ser útil cuando el gráfico de uso del trabajador indica un uso de memoria muy bajo.

  • El aumento de la memoria de trabajador les permite controlar más tareas de forma simultánea o controlar tareas que requieren mucha memoria. Podría abordar el problema de las expulsiones de Pods de trabajadores.

  • Disminuir la CPU del trabajador puede ser útil cuando el gráfico de uso de la CPU del trabajador indica que los recursos de la CPU están muy sobreasignados.

  • El aumento de la CPU de trabajador permite que los trabajadores controlen más tareas de forma simultánea y, en algunos casos, reducir el tiempo que lleva procesar estas tareas.

Cambiar la CPU o la memoria del trabajador reinicia los trabajadores, lo que podría afectar las tareas en ejecución. Recomendamos hacerlo cuando no se esté ejecutando ningún DAG.

Los parámetros de CPU y memoria son para cada trabajador de tu entorno. Por ejemplo, si tu entorno tiene cuatro trabajadores, la capacidad total es cuatro veces la cantidad especificada de CPU y memoria.

Consola

Sigue los pasos que se indican en Cómo ajustar los parámetros de escala y rendimiento de trabajadores, programadores y servidores web para configurar la CPU y la memoria de los trabajadores.

gcloud

Sigue los pasos que se indican en Cómo ajustar los parámetros de escala y rendimiento de trabajadores, programadores y servidores web para configurar la CPU y la memoria de los trabajadores.

En el siguiente ejemplo, se cambian la CPU y la memoria de los trabajadores. Puedes omitir el atributo de CPU o memoria, si es necesario.

gcloud composer environments update example-environment \
  --worker-memory=3.75 \
  --worker-cpu=2

Terraform

Sigue los pasos que se indican en Cómo ajustar los parámetros de escala y rendimiento de trabajadores, programadores y servidores web para configurar la CPU y la memoria de los trabajadores.

En el siguiente ejemplo, se cambian la CPU y la memoria de los trabajadores. Si es necesario, puedes omitir el parámetro de CPU o memoria.

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    workloads_config {
      worker {
        cpu = "2"
        memory_gb = "3.75"
      }
    }
  }
}

Cambia la CPU y la memoria del servidor web

Disminuir la CPU o la memoria del servidor web puede ser útil cuando el gráfico de uso del servidor web indica que tiene poco uso de forma continua.

Cambiar los parámetros del servidor web reinicia el servidor web, lo que provoca un tiempo de inactividad temporal del servidor web. Te recomendamos que realices cambios fuera de las horas de uso normales.

Consola

Sigue los pasos que se indican en Cómo ajustar los parámetros de escala y rendimiento de trabajadores, programadores y servidores web para configurar la CPU y la memoria del servidor web.

gcloud

Sigue los pasos que se indican en Cómo ajustar los parámetros de escala y rendimiento del trabajador, programador y servidor web para configurar la CPU y la memoria del servidor web.

En el siguiente ejemplo, se cambia la CPU y la memoria del servidor web. Puedes omitir los atributos de CPU o memoria, según la necesidad.

gcloud composer environments update example-environment \
    --web-server-cpu=2 \
    --web-server-memory=3.75

Terraform

Sigue los pasos que se indican en Cómo ajustar los parámetros de escala y rendimiento de trabajadores, programadores y servidores web para configurar la CPU y la memoria del servidor web.

En el siguiente ejemplo, se cambia la CPU y la memoria del servidor web. Puedes omitir los atributos de CPU o memoria, según la necesidad.

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    workloads_config {
      web_server {
        cpu = "2"
        memory_gb = "3.75"
      }
    }
  }
}

Cambia el tamaño del entorno

Cambiar el tamaño del entorno modifica la capacidad de los componentes de backend de Cloud Composer, como la base de datos y la cola de Airflow.

  • Considera cambiar el tamaño del entorno a un tamaño más pequeño (por ejemplo, de grande a mediano o mediano a pequeño) cuando las métricas de uso de la base de datos muestren una infrautilización considerable.
  • Considera aumentar el tamaño del entorno si observas el alto uso de la base de datos de Airflow.

Consola

Sigue los pasos que se indican en Ajusta el tamaño del entorno para configurarlo.

gcloud

Sigue los pasos que se indican en Ajusta el tamaño del entorno para configurarlo.

En el siguiente ejemplo, se cambia el tamaño del entorno a Medio.

gcloud composer environments update example-environment \
    --environment-size=medium

Terraform

Sigue los pasos que se indican en Ajusta el tamaño del entorno para configurarlo.

En el siguiente ejemplo, se cambia el tamaño del entorno a Medio.

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    environment_size = "medium"
  }
}

Cambia el intervalo de la lista del directorio de DAG

Aumentar el intervalo de la lista del directorio del DAG reduce la carga del programador asociada con el descubrimiento de DAG nuevos en el bucket del entorno.

  • Considera aumentar este intervalo si implementas DAG nuevos con poca frecuencia.
  • Considera disminuir este intervalo si deseas que Airflow reaccione más rápido a los archivos DAG recién implementados.

Para cambiar este parámetro, anula la siguiente opción de configuración de Airflow:

Sección Clave Valor Notas
scheduler dag_dir_list_interval Valor nuevo para el intervalo de la ficha El valor predeterminado, en segundos, es 120.

Cambia el intervalo de análisis del archivo DAG

Aumentar el intervalo de análisis del archivo DAG reduce la carga del programador asociada con el análisis continuo de los DAG en la bolsa de DAG.

Considera aumentar este intervalo cuando tengas una gran cantidad de DAG que no cambien con demasiada frecuencia o cuando observes una carga alta del programador en general.

Para cambiar este parámetro, anula la siguiente opción de configuración de Airflow:

Sección Clave Valor Notas
scheduler min_file_process_interval Valor nuevo para el intervalo de análisis del DAG El valor predeterminado, en segundos, es 30.

Simultaneidad de trabajadores

El rendimiento de simultaneidad y la capacidad de ajuste de escala automático de tu entorno se conectan a dos parámetros de configuración:

  • la cantidad mínima de trabajadores de Airflow
  • el parámetro [celery]worker_concurrency

Los valores predeterminados que proporciona Cloud Composer son óptimos para la mayoría de los casos prácticos, pero tu entorno podría beneficiarse de los ajustes personalizados.

Consideraciones de rendimiento de la simultaneidad de trabajadores

El parámetro [celery]worker_concurrency define la cantidad de tareas que un solo trabajador puede recoger de la lista de tareas en cola. La velocidad de ejecución de las tareas depende de varios factores, como la CPU del trabajador, la memoria y el tipo de trabajo en sí.

Ajuste de escala automático de trabajadores

Cloud Composer supervisa la lista de tareas en cola y genera trabajadores adicionales para que recojan las tareas en espera. Configurar [celery]worker_concurrency en un valor alto significa que cada trabajador puede realizar muchas tareas, por lo que, en determinadas circunstancias, es posible que la cola nunca se llene y que el ajuste de escala automático nunca se active.

Por ejemplo, en un entorno de Cloud Composer con dos trabajadores de Airflow, [celery]worker_concurrency configurado en 100 y tareas 200 en la cola, cada trabajador seleccionaría 100 tareas. Esto deja la cola vacía y no activa el ajuste de escala automático. Si estas tareas tardan mucho en completarse, podrían generarse problemas de rendimiento.

Sin embargo, si las tareas son pequeñas y de ejecución rápida, un valor alto en la configuración de [celery]worker_concurrency podría generar un escalamiento excesivo. Por ejemplo, si ese entorno tiene 300 tareas en cola, Cloud Composer comenzará a crear trabajadores nuevos. Sin embargo, si las primeras 200 tareas terminan la ejecución cuando los trabajadores nuevos están listos, un trabajador existente puede retomarlas. El resultado final es que el ajuste de escala automático crea trabajadores nuevos, pero no hay tareas para ellos.

El ajuste de [celery]worker_concurrency para casos especiales debe basarse en los tiempos de ejecución de tareas pico y la cantidad de colas:

  • En el caso de las tareas que tardan más en completarse, los trabajadores no deberían poder vaciar la cola por completo.
  • Para tareas más rápidas y pequeñas, aumenta la cantidad mínima de trabajadores de Airflow para evitar un escalamiento excesivo.

Sincronización de registros de tareas

Los trabajadores de Airflow cuentan con un componente que sincroniza los registros de ejecución de tareas con los buckets de Cloud Storage. Una gran cantidad de tareas simultáneas realizadas por un solo trabajador genera una gran cantidad de solicitudes de sincronización. Esto podría sobrecargar a tu trabajador y provocar problemas de rendimiento.

Si observas problemas de rendimiento debido a una gran cantidad de tráfico de sincronización de registros, reduce los valores de [celery]worker_concurrency y, en su lugar, ajusta la cantidad mínima de trabajadores de Airflow.

Cambiar la simultaneidad de trabajadores

Cuando se modifica este parámetro, se ajusta la cantidad de tareas que un solo trabajador puede ejecutar al mismo tiempo.

Por ejemplo, un trabajador con 0.5 CPU puede manejar 6 tareas simultáneas en general; un entorno con tres trabajadores de ese tipo puede manejar hasta 18 tareas simultáneas.

  • Aumenta este parámetro cuando haya tareas en espera en la cola y tus trabajadores usen un porcentaje bajo de sus CPU y memoria al mismo tiempo.

  • Disminuye este parámetro cuando recibas expulsiones de Pods. Esto reducirá la cantidad de tareas que un solo trabajador intenta procesar. Como alternativa, puedes aumentar la memoria del trabajador.

El valor predeterminado para la simultaneidad de trabajadores es igual a:

  • En Airflow 2.6.3 y versiones posteriores, un valor mínimo de 32, 12 * worker_CPU y 6 * worker_memory.
  • En las versiones de Airflow anteriores a la 2.6.3, un valor mínimo de 32, 12 * worker_CPU y 8 * worker_memory.
  • En las versiones de Airflow anteriores a la 2.3.3, 12 * worker_CPU.

El valor worker_CPU es la cantidad de CPU asignadas a un solo trabajador. El valor worker_memory es la cantidad de memoria asignada a un solo trabajador. Por ejemplo, si los trabajadores de tu entorno usan 0.5 CPU y 4 GB de memoria cada uno, la simultaneidad de trabajadores se establece en 6. El valor de simultaneidad de trabajadores no depende de la cantidad de trabajadores en tu entorno.

Para cambiar este parámetro, anula la siguiente opción de configuración de Airflow:

Sección Clave Valor
celery worker_concurrency Valor nuevo para la simultaneidad de trabajadores

Cambia la simultaneidad de DAG

La simultaneidad de DAG define la cantidad máxima de instancias de tareas permitidas para ejecutarse simultáneamente en cada DAG. Auméntalo cuando los DAG ejecuten una gran cantidad de tareas simultáneas. Si esta configuración es baja, el programador retrasa la colocación de más tareas en la cola, lo que también reduce la eficiencia del ajuste de escala automático del entorno.

Para cambiar este parámetro, anula la siguiente opción de configuración de Airflow:

Sección Clave Valor Notas
core max_active_tasks_per_dag Valor nuevo para la simultaneidad de DAG El valor predeterminado es 16.

Aumenta la cantidad máxima de ejecuciones activas por DAG

Este atributo define la cantidad máxima de ejecuciones de DAG activas por DAG. Cuando el mismo DAG se debe ejecutar varias veces de forma simultánea, por ejemplo, con diferentes argumentos de entrada, este atributo permite que el programador inicie esas ejecuciones en paralelo.

Para cambiar este parámetro, anula la siguiente opción de configuración de Airflow:

Sección Clave Valor Notas
core max_active_runs_per_dag Valor nuevo para la cantidad máxima de ejecuciones activas por DAG El valor predeterminado es 25.

¿Qué sigue?