Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
En esta página, se explica cómo ajustar el escalamiento y el rendimiento del entorno parámetros a las necesidades del proyecto, de modo que obtengas un mejor rendimiento y reducir los costos de los recursos que tus en un entorno de nube.
Otras páginas sobre escalamiento y optimización:
- Para obtener información sobre cómo escalar tus entornos, consulta Escalado de entornos.
- Para obtener información sobre cómo funciona el escalamiento del entorno, consulta Escalamiento del entorno.
- Para ver un instructivo sobre cómo supervisar métricas clave del entorno, consulta Supervisa el estado y el rendimiento del entorno con métricas clave.
Descripción general del proceso de optimización
Hacer cambios en los parámetros del entorno puede afectar muchos aspectos el rendimiento de tu entorno. Recomendamos optimizar tu entorno iteraciones:
- Comienza con los ajustes predeterminados del entorno.
- Ejecuta tus DAG.
- Observar el rendimiento de tu entorno
- Ajusta la escala y los parámetros de rendimiento de tu entorno y, luego, repite desde del paso anterior.
Comienza con los ajustes predeterminados del entorno
Cuando creas un entorno en la consola de Google Cloud, puedes selecciona uno de los tres ajustes predeterminados del entorno. Estos ajustes predeterminados establecen la escala inicial y la configuración del rendimiento de tu entorno; Después de crear tu puedes cambiar todos los parámetros de escala y rendimiento 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 enumeran las estimaciones según el consumo promedio de recursos. Si esperas que tus DAG consuman más recursos, ajustar las estimaciones según corresponda.
Opción recomendada ajuste predeterminado | DAG totales | Máximo de tareas simultáneas Ejecuciones de DAG | Cantidad máxima de tareas simultáneas |
---|---|---|---|
Pequeñas | 50 | 15 | 18 |
Medias | 250 | 60 | 100 |
Grandes | 1000 | 250 | 400 |
Por ejemplo, un entorno debe ejecutar 40 DAG. Todos los DAG deben ejecutarse en la misma tiempo con una tarea activa cada uno. Este entorno usaría un predeterminado, ya que la cantidad máxima de ejecuciones y tareas simultáneas de DAG supera el estimaciones recomendadas para el ajuste predeterminado pequeño.
Ejecuta tus DAG
Una vez que se haya creado tu entorno, sube tus DAG que se les asigna. Ejecuta tus DAG y observa el rendimiento del entorno.
Recomendamos ejecutar los DAG según un programa que refleje las situaciones la aplicación de tus DAG. Por ejemplo, si quieres ejecutar varios DAG en el al mismo tiempo, asegúrate de comprobar el rendimiento de tu entorno cuando todas estas Los DAG se ejecutan de forma simultánea.
Observa el rendimiento de tu entorno
Esta sección se enfoca en la capacidad más común de Cloud Composer 2 y aspectos de ajuste de rendimiento. 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 la pestaña completamente administrado de tu entorno.
Para ir al panel de Monitoring de tu entorno, haz lo siguiente:
En la consola de Google Cloud, ve a la página Entornos.
Haz clic en el nombre de tu entorno.
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 la del programador es un cuello de botella en el rendimiento general de Airflow.
![Gráficos para programadores de Ariflow](https://cloud.google.com/static/composer/docs/images/monitoring-scheduler-metrics.png?authuser=3&hl=es-419)
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:
Si el uso de CPU del Programador está constantemente por debajo del 30% al 35%, recomendamos que hagas lo siguiente:
Si el uso de CPU del Programador supera el 80% durante más tiempo que un pequeño porcentaje del tiempo total, se recomienda lo siguiente:
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 analizar, esto consume la capacidad del programador y puede reducir el rendimiento de ejecuciones de DAG.
![Gráfico del tiempo de análisis total del DAG](https://cloud.google.com/static/composer/docs/images/monitoring-dag-parse-time.png?authuser=3&hl=es-419)
En la sección DAG Statistics del panel de Monitoring, observa gráficos para el tiempo total de análisis del DAG.
Si la cantidad supera los 10 segundos, es posible que los programadores se vean sobrecargados con Se analiza el DAG y no se puede ejecutar de manera efectiva. El análisis predeterminado de DAG en Airflow es de 30 segundos; si el tiempo de análisis del DAG excede este umbral, los ciclos de análisis comienzan a superponerse, lo que agota la capacidad del programador.
Según tus observaciones, podrías hacer lo siguiente:
- Simplifica tus DAG, incluidas sus dependencias de Python.
- Aumenta el intervalo de análisis del archivo DAG y aumentar el intervalo de la ficha del directorio del DAG.
- Aumenta la cantidad de programadores.
- Aumenta la CPU de los programadores.
Supervisa las expulsiones de Pods de trabajadores
La expulsión de un Pod puede ocurrir cuando un Pod particular del clúster de tu entorno alcance sus límites de recursos.
![Gráfico de expulsiones de Pods de trabajadores](https://cloud.google.com/static/composer/docs/images/monitoring-pod-evictions.png?authuser=3&hl=es-419)
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 de la en un entorno de nube. Un solo trabajador puede exceder el límite de memoria, incluso si el uso de la memoria esté en buen estado a nivel del entorno.
Según tus observaciones, podrías hacer lo siguiente:
- Aumenta la memoria disponible para los trabajadores.
- Reduce la simultaneidad de trabajadores. De esta manera, un solo trabajador maneja menos tareas a la vez. Esto proporciona más memoria o para cada tarea individual. Si cambias la simultaneidad de trabajadores, es posible que también quieras aumentar la cantidad máxima de trabajadores. De esta manera, la cantidad de tareas que tu entorno puede controlar a la vez sigue siendo igual. Por ejemplo, si reduces la simultaneidad del trabajador de 12 a 6, podrías duplicar el número máximo de trabajadores.
Supervisa a los trabajadores activos
La cantidad de trabajadores de tu entorno se escala automáticamente en respuesta a las tareas en cola.
![Gráficos de trabajadores activos y tareas en cola](https://cloud.google.com/static/composer/docs/images/monitoring-active-workers.png?authuser=3&hl=es-419)
En el panel de Monitoring, en la sección Workers, observa 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 con frecuencia alcanza su límite máximo de trabajadores y si mientras que la cantidad de tareas en la cola de Celery es alta de forma continua puedes aumentar la cantidad máxima de trabajadores.
Si hay retrasos prolongados en la programación entre tareas, pero al mismo tiempo, el entorno no escala verticalmente a la cantidad máxima es probable que haya una configuración de Airflow que limite la ejecución y evita que los mecanismos de Cloud Composer escalen el entorno. Debido a que los entornos de Cloud Composer 2 escalar según la cantidad de tareas en Celery configura Airflow para que no limite las tareas en el camino hacia la cola:
- Aumenta la simultaneidad de trabajadores. Trabajador la simultaneidad debe configurarse en un valor superior al esperado máxima de tareas simultáneas dividida por la cantidad máxima de de los trabajadores en el entorno.
- Aumenta la simultaneidad de DAG si solo se ejecutar 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 para determinar si los trabajadores de Airflow usan los recursos de tu entorno de forma correcta.
![Gráficos de la CPU y la memoria de los trabajadores](https://cloud.google.com/static/composer/docs/images/monitoring-workers-cpu-mem.png?authuser=3&hl=es-419)
En el panel de Monitoring, en la sección Workers, observa 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:
- Si el uso de memoria de los trabajadores se acerca al límite, esto puede provocar expulsiones de Pods de trabajadores. Para abordar este problema, aumentar la memoria del trabajador.
- Si el uso de memoria es mínimo en comparación con el límite y no hay trabajadores expulsiones de Pods, disminuir la memoria de los trabajadores.
Si el uso de CPU de los trabajadores se acerca al límite (excede el 80% en algunos casos) porcentaje del tiempo total), puedes hacer lo siguiente:
- Aumenta la cantidad de trabajadores. Esto le brinda a tu entorno más control sobre la capacidad aprovisionada para una aplicación carga de trabajo.
- Aumenta la CPU de los trabajadores o reduce la simultaneidad de trabajadores, si las tareas individuales necesitan una mayor asignación de CPU. De lo contrario, te recomendamos aumentar la cantidad de trabajadores.
Supervisa las tareas en ejecución y en cola
Puedes supervisar la cantidad de tareas en cola y en ejecución para comprobar la eficiencia del proceso de programación.
![Gráfico que muestra las tareas en ejecución y en cola](https://cloud.google.com/static/composer/docs/images/monitoring-tasks-queue.png?authuser=3&hl=es-419)
En el panel de Monitoring, en la sección Workers, observa el gráfico de tareas de Airflow de 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 de tu entorno están ocupados ejecutar otras tareas.
Algunas colas siempre están presentes en un entorno en especial, durante los picos de procesamiento. Sin embargo, si observas una alta la cantidad de tareas en cola o una tendencia creciente en el gráfico, esto podría indican que los trabajadores no tienen suficiente capacidad para procesar las tareas Airflow está regulando la ejecución de tareas.
Por lo general, se observa una gran cantidad de tareas en cola cuando se ejecuta tareas 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 la ejecución general del DAG problemas. El uso del disco de la base de datos no suele ser 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](https://cloud.google.com/static/composer/docs/images/monitoring-database-cpu-mem.png?authuser=3&hl=es-419)
En el panel de Monitoring, en la sección Base de datos SQL, observa Gráficos del uso de CPU y memoria por parte 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% para más de un porcentaje pequeño del total tiempo, la base de datos se sobrecarga y requiere escalamiento.
La propiedad de tamaño del entorno de tu en un entorno de nube. Para aumentar o reducir la escala de la base de datos, cambiar el tamaño del entorno a un nivel diferente (pequeño, medio o Grande). Aumentar el tamaño del entorno aumenta sus costos.
Supervisa la latencia de programación de la tarea
Si la latencia entre tareas supera los niveles esperados (por ejemplo, 20 segundos o más), esto podría indicar que el entorno no puede controlar la carga de tareas que generan las ejecuciones de DAG.
![Gráfico de latencia de la tarea (IU de Airflow)](https://cloud.google.com/static/composer/docs/images/monitoring-task-latency.png?authuser=3&hl=es-419)
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 del pero latencias significativamente más altas pueden indicar lo siguiente:
- El programador está sobrecargado. Supervisa la CPU y la memoria del programador en busca de indicios de posibles problemas.
- Las opciones de configuración de Airflow son la limitación de la ejecución. Probar el aumento de la simultaneidad de trabajadores, el aumento de la simultaneidad de DAG o de aumentar la cantidad máxima de ejecuciones activas por DAG.
- No hay suficientes trabajadores para ejecutar tareas, intenta aumentar la cantidad máxima de trabajadores.
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 que el servidor web se sobrecargue. Si esto sucede, el rendimiento de la IU de Airflow pero esto no afecta el rendimiento de las ejecuciones de DAG.
![Gráficos de memoria y CPU del servidor web](https://cloud.google.com/static/composer/docs/images/monitoring-web-server-cpu-mem.png?authuser=3&hl=es-419)
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:
- Si el uso de la CPU del servidor web supera el 80% durante más de un porcentaje considera aumentar la CPU del servidor web.
- Si observas un alto uso de memoria del servidor web, considera agregar más memoria al servidor web.
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 y la resiliencia de la programación de Airflow.
Si aumentas la cantidad de programadores, aumenta el tráfico de la base de datos de Airflow. Recomendamos usar dos programadores de Airflow en la mayoría reales. Solo se requiere el uso de tres programadores en casos excepcionales que requieren consideraciones especiales. Configura más de tres programadores suele reducir el rendimiento del entorno.
Si necesitas una programación más rápida, haz lo siguiente:
- Configurar dos programadores de Airflow
- Asignar más recursos de CPU y memoria a los programadores de Airflow
- Aumenta el dag-dir-list-interval.
- Aumenta el min-file-process-interval
- Aumenta el valor de job-Heartbeat-sec.
Ejemplos:
Console
Sigue los pasos que se indican en Ajusta la cantidad de programadores que deseas configurar. la cantidad necesaria de programadores para tu entorno.
gcloud
Sigue los pasos que se indican en Ajusta la cantidad de programadores que deseas configurar. la cantidad necesaria de programadores para 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 Ajusta la cantidad de programadores que deseas configurar. la cantidad necesaria de programadores para 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.
Console
Sigue los pasos que se indican en Ajustar los parámetros de escala y rendimiento del trabajador, programador y servidor web para configurar la CPU y la memoria para los programadores
gcloud
Sigue los pasos que se indican en Ajustar los parámetros de escala y rendimiento del trabajador, programador y servidor 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. Tú puede especificar solo 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 Ajustar los parámetros de escala y rendimiento del trabajador, programador y servidor 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. Tú pueden omitir atributos de CPU o 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 automáticamente a un mayor número de trabajadores, si es necesario.
Disminuir la cantidad máxima de trabajadores reduce la capacidad máxima de la pero también puede ser útil para reducir los costos medioambientales.
Ejemplos:
Console
Sigue los pasos que se indican en Ajusta la cantidad mínima y máxima de trabajadores que deseas establecer la cantidad máxima necesaria de trabajadores para tu entorno.
gcloud
Sigue los pasos que se indican en Ajusta la cantidad mínima y máxima de trabajadores que deseas establecer la cantidad máxima necesaria de trabajadores para 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 que deseas establecer la cantidad máxima necesaria de trabajadores para 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 permite a los trabajadores controlar más tareas al mismo tiempo. para manejar tareas que consumen mucha memoria. Podría abordar el problema del Pod trabajador expulsiones.
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 les permite a los trabajadores controlar más tareas simultáneamente y en y, en algunos casos, reduce el tiempo necesario para procesar estas tareas.
Cambiar la CPU o la memoria del trabajador reinicia los trabajadores, lo que podría afectan 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. Para Por ejemplo, si tu entorno tiene cuatro trabajadores, la capacidad total es cuatro veces mayor. la cantidad especificada de CPU y memoria.
Console
Sigue los pasos que se indican en Ajusta los parámetros de escala y rendimiento del trabajador, programador y servidor web para configurar la CPU y la memoria de los trabajadores.
gcloud
Sigue los pasos que se indican en Ajustar los parámetros de rendimiento y escala del trabajador, programador y servidor web para establecer la CPU y la memoria para los trabajadores.
En el siguiente ejemplo, se cambian la CPU y la memoria de los trabajadores. Tú puede 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 Ajusta los parámetros de escala y rendimiento del trabajador, programador y servidor 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. Tú puede omitir el parámetro de CPU o memoria si es necesario.
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 de uso indica que está subutilizado 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 hagas cambios fuera del horario de uso normal.
Console
Sigue los pasos que se indican en Ajusta los parámetros de escala y rendimiento del trabajador, programador y servidor web para configurar la CPU y la memoria del servidor web.
gcloud
Sigue los pasos que se indican en Ajustar los parámetros de rendimiento y escala del trabajador, programador y servidor web para establecer la CPU y la memoria del servidor web.
En el siguiente ejemplo, se cambia la CPU y la memoria del servidor web. Tú pueden omitir 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 Ajusta 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. Tú pueden omitir 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 Cloud Composer de backend, como la base de datos y la cola de Airflow.
- Considera cambiar el tamaño del entorno a uno más pequeño (para ejemplo, Grande a Media o Mediano a Pequeño) cuando las métricas de uso de la base de datos muestran una infrautilización sustancial.
Considera aumentar el tamaño del entorno si observas el alto uso de los de la base de datos de Airflow.
Console
Sigue los pasos que se indican en Ajusta el tamaño del entorno para establecer la el tamaño del entorno.
gcloud
Sigue los pasos que se indican en Ajusta el tamaño del entorno para establecer la el tamaño del entorno.
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 establecer la el tamaño del entorno.
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 asociados 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 quieres que Airflow reaccione más rápido a los archivos DAG recién implementados.
Para cambiar este parámetro, anula las siguientes opciones de Airflow: de configuración de Terraform:
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 DAG en la bolsa de DAG.
Considera aumentar este intervalo cuando tengas una gran cantidad de DAG que sí no cambien con demasiada frecuencia u observen una carga alta del programador en general.
Para cambiar este parámetro, anula las siguientes opciones de Airflow: de configuración de Terraform:
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 tu entorno para realizar un ajuste de escala automático están conectados 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 de uso, pero tu entorno podría beneficiarse ajustes personalizados.
Consideraciones de rendimiento de la simultaneidad de trabajadores
El parámetro [celery]worker_concurrency
define la cantidad de tareas.
un solo trabajador puede retomar 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
las tareas pendientes. Establece [celery]worker_concurrency
en un valor alto
significa que cada trabajador puede elegir muchas tareas, de modo que, en determinadas circunstancias,
es posible que la cola nunca se llene, lo que hará 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
se establece en 100 y las tareas 200 en la cola.
cada trabajador elegirí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.
Pero si las tareas son pequeñas y rápidas de ejecutar, un alto valor en el
El parámetro de configuración [celery]worker_concurrency
podría generar un escalamiento excesivo.
Por ejemplo, si ese entorno tiene 300 tareas en la cola,
Cloud Composer comenzará a crear trabajadores nuevos. Pero si los primeros
200 tareas terminan la ejecución cuando los trabajadores nuevos están listos, un trabajador existente
puedan recogerlos. El resultado final es que el ajuste de escala
automático crea nuevos trabajadores,
no hay tareas para ellos.
El ajuste de [celery]worker_concurrency
para casos especiales debería basarse
en los tiempos máximos de ejecución de tareas y en la cantidad de colas:
- En el caso de las tareas que tardan más en completarse, los trabajadores no deberían poder vaciarlas toda la cola.
- Para realizar tareas más rápidas y pequeñas, aumenta la cantidad mínima de Trabajadores de Airflow para evitar escalamientos excesivos.
Sincronización de registros de tareas
Los trabajadores de Airflow cuentan con un componente que sincroniza los registros de ejecución de tareas con buckets de Cloud Storage. Se realizó una gran cantidad de tareas simultáneas por un solo trabajador genera un gran número de solicitudes de sincronización. Esto podría sobrecargar a tu trabajador y provocar problemas de rendimiento.
Si observas problemas de rendimiento debido a la gran cantidad de sincronización de registros
tráfico, disminuye los valores de [celery]worker_concurrency
y, en su lugar, ajusta
la cantidad mínima de trabajadores de Airflow.
Cambiar la simultaneidad de trabajadores
Si cambias este parámetro, se ajustará la cantidad de tareas que un solo trabajador ejecutar al mismo tiempo.
Por ejemplo, un trabajador con 0.5 CPU puede manejar 6 tareas simultáneas. un 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 tu usan un porcentaje bajo de CPU y memoria al mismo tiempo.
Disminuye este parámetro cuando recibas expulsiones de Pods. esto reduciría 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
y6 * worker_memory
. - En las versiones de Airflow anteriores a la 2.6.3, un valor mínimo de
32
,12 * worker_CPU
y8 * 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
El valor worker_memory
es la cantidad de memoria asignada a un solo trabajador. Para
Por ejemplo, si los trabajadores de tu entorno usan 0.5 CPU y 4 GB de memoria cada uno,
Luego, la simultaneidad de trabajadores se configura en 6
. El valor de simultaneidad del trabajador no
no depender del número de trabajadores en tu entorno.
Para cambiar este parámetro, anula las siguientes opciones de Airflow: de configuración de Terraform:
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 ejecutar al mismo tiempo en cada DAG. Auméntalo cuando los DAG ejecuten una gran cantidad tareas simultáneas. Si este parámetro es bajo, el programador retrasa las tareas a la cola, lo que también reduce la eficiencia del entorno el ajuste de escala automático.
Para cambiar este parámetro, anula las siguientes opciones de Airflow: de configuración de Terraform:
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 debe ejecutarse varias veces de forma simultánea, por ejemplo, con diferentes argumentos de entrada, este atributo permite que el programador inicie esas ejecuciones en en paralelo.
Para cambiar este parámetro, anula las siguientes opciones de Airflow: de configuración de Terraform:
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?
- Escalar entornos
- Acerca del escalamiento de entornos
- Anular las opciones de configuración de Airflow
- Supervisa el estado y el rendimiento del entorno con métricas clave