Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
En esta página se explica cómo ajustar los parámetros de escalado y rendimiento de tu entorno a las necesidades de tu proyecto para mejorar el rendimiento y reducir los costes de los recursos que no utiliza tu entorno.
Otras páginas sobre escalado y optimización:
- Para obtener información sobre cómo escalar tus entornos, consulta Escalar entornos.
- Para obtener información sobre cómo funciona el escalado del entorno, consulta el artículo Escalado del entorno.
- Para ver un tutorial sobre cómo monitorizar las métricas clave del entorno, consulta Monitorizar el estado y el rendimiento del entorno con métricas clave.
Descripción general del proceso de optimización
Si modificas los parámetros de tu entorno, puedes afectar a muchos aspectos de su rendimiento. Te recomendamos que optimices tu entorno por iteraciones:
- Empieza con los preajustes del entorno.
- Ejecuta tus DAGs.
- Observa el rendimiento de tu entorno.
- Ajusta los parámetros de escala y rendimiento del entorno y repite el paso anterior.
Empezar con preajustes del entorno
Cuando creas un entorno en la consola de Google Cloud , puedes seleccionar uno de los tres preajustes de entorno. Estos preajustes definen la configuración inicial de la escala y el rendimiento de tu entorno. Una vez que hayas creado el entorno, podrás cambiar todos los parámetros de escala y rendimiento que proporciona un preajuste.
Te recomendamos que empieces con uno de los preajustes, en función de las siguientes estimaciones:
- Número total de DAGs que tienes previsto desplegar en el entorno
- Número máximo de ejecuciones de DAG simultáneas
- Número máximo de tareas simultáneas
El rendimiento de tu entorno depende de la implementación de los DAGs específicos que ejecutes en él. En la siguiente tabla se muestran estimaciones basadas en el consumo medio de recursos. Si prevé que sus DAGs consumirán más recursos, ajuste las estimaciones en consecuencia.
Preajuste recomendado | Total de DAGs | Ejecuciones de DAG simultáneas máximas | Número máximo de tareas simultáneas |
---|---|---|---|
Pequeño | 50 | 15 | 18 |
Medio | 250 | 60 | 100 |
Grande | 1000 | 250 | 400 |
Por ejemplo, un entorno debe ejecutar 40 DAGs. Todos los DAGs deben ejecutarse al mismo tiempo y tener una tarea activa cada uno. En este entorno se usaría un preajuste Medio, ya que el número máximo de ejecuciones y tareas de DAG simultáneas supera las estimaciones recomendadas para el preajuste Pequeño.
Ejecutar tus DAGs
Una vez que se haya creado el entorno, suba sus DAGs a él. Ejecuta tus DAGs y observa el rendimiento del entorno.
Te recomendamos que ejecutes tus DAGs según una programación que refleje la aplicación real de tus DAGs. Por ejemplo, si quieres ejecutar varios DAGs al mismo tiempo, comprueba el rendimiento de tu entorno cuando todos estos DAGs se estén ejecutando simultáneamente.
Observar el rendimiento de tu entorno
En esta sección se tratan los aspectos más habituales de la capacidad y la optimización del rendimiento de Cloud Composer 2. Te recomendamos que sigas esta guía paso a paso, ya que primero se abordan los aspectos más habituales relacionados con el rendimiento.
Ve al panel de control Monitorización.
Puedes monitorizar las métricas de rendimiento de tu entorno en el panel de control Monitorización de tu entorno.
Para ir al panel de control de monitorización de tu entorno, sigue estos pasos:
En la Google Cloud consola, ve a la página Entornos.
Haz clic en el nombre de tu entorno.
Vaya a la pestaña Monitorización.
Monitorizar 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.

En el panel de control Monitorización, en la sección Programadores, consulta los gráficos de los programadores de Airflow de tu entorno:
- Uso total de CPU de los programadores
- Uso de memoria total de los programadores
Ajusta los valores según tus observaciones:
Si el uso de la CPU del programador está constantemente por debajo del 30-35 %, puedes hacer lo siguiente:
Si el uso de CPU de Scheduler supera el 80% durante más de un pequeño porcentaje del tiempo total, puedes hacer lo siguiente:
Monitoriza el tiempo total de análisis de todos los archivos DAG
Los programadores analizan los DAGs antes de programar las ejecuciones de DAG. Si los DAGs tardan mucho en analizarse, se consume la capacidad del programador y puede reducirse el rendimiento de las ejecuciones de DAGs.

En el panel de control Monitorización, en la sección Estadísticas de DAG, consulta los gráficos del tiempo total de análisis de DAG.
Si el número supera los 10 segundos, es posible que tus programadores estén sobrecargados con el análisis de DAGs y no puedan ejecutarlos de forma eficaz. La frecuencia predeterminada de análisis de DAG en Airflow es de 30 segundos. Si el tiempo de análisis de DAG supera este umbral, los ciclos de análisis empiezan a superponerse, lo que agota la capacidad del programador.
Según tus observaciones, puedes hacer lo siguiente:
- Simplifica tus DAGs, incluidas sus dependencias de Python.
- Aumenta el intervalo de análisis de archivos DAG y aumenta el intervalo de listado de directorios DAG.
- Aumenta el número de programadores.
- Aumenta la CPU de los programadores.
Monitorizar las expulsiones de pods de trabajadores
La expulsión de pods puede producirse cuando un pod concreto del clúster de tu entorno alcanza sus límites de recursos.

Si se expulsa un pod de trabajador de Airflow, se interrumpirán todas las instancias de tareas que se estén ejecutando en ese pod y, más adelante, Airflow las marcará como fallidas.
La mayoría de los problemas con las expulsiones de pods de trabajadores se deben a situaciones de falta de memoria en los trabajadores.
En el panel de control Monitorización, en la sección Trabajadores, consulta los gráficos Desalojos de pods de trabajador de tu entorno.
El gráfico Uso de memoria total de los trabajadores muestra una perspectiva general del entorno. Un solo trabajador puede superar el límite de memoria, aunque el uso de memoria sea correcto a nivel del entorno.
Según tus observaciones, puedes hacer lo siguiente:
- Aumentar la memoria disponible para los trabajadores.
- Reduce la simultaneidad de los trabajadores. De esta forma, un solo trabajador gestiona menos tareas a la vez. De esta forma, se proporciona más memoria o almacenamiento a cada tarea. Si cambias la simultaneidad de los trabajadores, también puedes aumentar el número máximo de trabajadores. De esta forma, el número de tareas que tu entorno puede gestionar a la vez sigue siendo el mismo. Por ejemplo, si reduces la simultaneidad de los trabajadores de 12 a 6, puede que quieras duplicar el número máximo de trabajadores.
Monitorizar trabajadores activos
El número de trabajadores de tu entorno se escala automáticamente en respuesta a las tareas en cola.

En el panel de control Monitorización, en la sección Trabajadores, consulta los gráficos del número de trabajadores activos y el número de tareas de la cola:
- Trabajadores activos
- Tareas de Airflow
Ajusta los valores según tus observaciones:
- Si el entorno alcanza con frecuencia el límite máximo de trabajadores y, al mismo tiempo, el número de tareas de la cola de Celery es continuamente alto, puede que te interese aumentar el número máximo de trabajadores.
Si hay retrasos largos en la programación entre tareas, pero al mismo tiempo el entorno no se amplía hasta alcanzar el número máximo de trabajadores, es probable que haya un ajuste de Airflow que limite la ejecución e impida que los mecanismos de Cloud Composer amplíen el entorno. Como los entornos de Cloud Composer 2 se escalan en función del número de tareas de la cola de Celery, configura Airflow para que no limite las tareas que entran en la cola:
- Aumentar la simultaneidad de los trabajadores. La simultaneidad de los trabajadores debe ser un valor superior al número máximo esperado de tareas simultáneas, dividido entre el número máximo de trabajadores del entorno.
- Aumenta la simultaneidad de los DAGs si un solo DAG ejecuta un gran número de tareas en paralelo, lo que puede provocar que se alcance el número máximo de instancias de tareas en ejecución por DAG.
- Aumenta el número máximo de ejecuciones activas por DAG si ejecutas el mismo DAG varias veces en paralelo, lo que puede provocar que Airflow limite la ejecución porque se ha alcanzado el límite máximo de ejecuciones activas por DAG.
Monitorizar el uso de CPU y memoria de los trabajadores
Monitoriza el uso total de CPU y memoria agregado de todos los trabajadores de tu entorno para determinar si los trabajadores de Airflow utilizan los recursos de tu entorno correctamente.

En el panel de control de Monitoring, en la sección Trabajadores, consulta los gráficos del uso de CPU y memoria de los trabajadores de Airflow:
- Uso total de CPU de los trabajadores
- Uso total de memoria de los trabajadores
Estos gráficos representan el uso agregado de los recursos. Es posible que los trabajadores individuales alcancen sus límites de capacidad aunque la vista agregada muestre capacidad disponible.
Ajusta los valores según tus observaciones:
- Si el uso de memoria de los trabajadores se acerca al límite, se pueden producir desalojos de pods de trabajadores. Para solucionar este problema, aumenta la memoria de los procesos de trabajo.
- Si el uso de memoria es mínimo en comparación con el límite y no se han expulsado pods de trabajadores, puede que te interese reducir la memoria de los trabajadores.
Si el uso de la CPU de los trabajadores se acerca al límite (supera el 80% durante más de un pequeño porcentaje del tiempo total), puedes hacer lo siguiente:
- Aumenta el número de trabajadores. De esta forma, tu entorno tiene más control sobre la capacidad aprovisionada para una carga de trabajo concreta.
- Aumenta la CPU de los trabajadores o reduce la simultaneidad de los trabajadores si las tareas individuales necesitan una asignación de CPU mayor. De lo contrario, te recomendamos que aumentes el número de trabajadores.
Monitorizar las tareas en ejecución y en cola
Puedes monitorizar el número de tareas en cola y en ejecución para comprobar la eficiencia del proceso de programación.

En el panel de control Monitorización, en la sección Trabajadores, consulta el gráfico Tareas de Airflow de tu entorno.
Las tareas de la cola están esperando a que los trabajadores las ejecuten. Si tu entorno tiene tareas en cola, puede que los trabajadores de tu entorno estén ocupados ejecutando otras tareas.
Siempre hay colas en un entorno, sobre todo durante los picos de procesamiento. Sin embargo, si observas un número elevado de tareas en cola o una tendencia creciente en el gráfico, puede que los trabajadores no tengan suficiente capacidad para procesar las tareas o que Airflow esté limitando la ejecución de las tareas.
Normalmente, se observa un número elevado de tareas en cola cuando el número de tareas en ejecución también alcanza el nivel máximo.
Para solucionar ambos problemas, siga estos pasos:
Monitorizar el uso de CPU y memoria de la base de datos
Los problemas de rendimiento de la base de datos de Airflow pueden provocar problemas generales en la ejecución de DAGs. El uso del disco de la base de datos no suele ser motivo de preocupación, ya que el almacenamiento se amplía automáticamente según sea necesario.

En el panel de control Monitoring, en la sección Base de datos SQL, consulta los gráficos del uso de CPU y memoria 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 está sobrecargada y requiere escalado.
La configuración del tamaño de la base de datos se controla mediante la propiedad "Tamaño del entorno" de tu entorno. Para aumentar o reducir la escala de la base de datos, cambia el tamaño del entorno a otro nivel (Pequeño, Mediano o Grande). Si aumentas el tamaño del entorno, también aumentarán los costes.
Monitorizar la latencia de programación de tareas
Si la latencia entre tareas supera los niveles esperados (por ejemplo, 20 segundos o más), puede indicar que el entorno no puede gestionar la carga de tareas generadas por las ejecuciones de DAG.

Puedes ver el gráfico de latencia de programación de tareas en la interfaz de usuario de Airflow de tu entorno.
En este ejemplo, las latencias (2,5 y 3,5 segundos) están dentro de los límites aceptables, pero si fueran significativamente más altas, podría indicar que:
- El programador está sobrecargado. Monitoriza la CPU y la memoria del programador para detectar posibles problemas.
- Las opciones de configuración de Airflow están limitando la ejecución. Prueba a aumentar la simultaneidad de los trabajadores, aumentar la simultaneidad de los DAGs o aumentar el número máximo de ejecuciones activas por DAG.
- No hay suficientes trabajadores para ejecutar las tareas. Prueba a aumentar el número máximo de trabajadores.
Monitorizar la CPU y la memoria del servidor web
El rendimiento del servidor web de Airflow afecta a la interfaz de usuario de Airflow. No es habitual que el servidor web esté sobrecargado. Si esto ocurre, el rendimiento de la interfaz de usuario de Airflow puede deteriorarse, pero no afecta al rendimiento de las ejecuciones de DAG.

En el panel de control Monitoring, en la sección Servidor web, consulta los gráficos del servidor web de Airflow:
- Uso de CPU del servidor web
- Uso de memoria del servidor web
Según tus observaciones:
- Si el uso de la CPU del servidor web supera el 80% durante más de un pequeño porcentaje del tiempo, aumenta la CPU del servidor web.
- Si observa un uso elevado de la memoria del servidor web, puede añadir más memoria al servidor web.
Ajustar los parámetros de escala y rendimiento del entorno
Cambiar el número de programadores
Ajustar el número de programadores mejora la capacidad de programación y la resiliencia de la programación de Airflow.
Si aumentas el número de programadores, se incrementará el tráfico hacia y desde la base de datos de Airflow. Recomendamos usar dos programadores de Airflow en la mayoría de los casos. Solo se necesitan tres programadores en casos excepcionales que requieran consideraciones especiales. Configurar más de tres programadores suele provocar que el rendimiento del entorno sea inferior.
Si necesitas programar las citas más rápido:
- Configura dos programadores de Airflow.
- Asigna más recursos de CPU y memoria a los programadores de Airflow.
- Aumenta dag-dir-list-interval
- Aumenta min-file-process-interval.
- Aumentar job-heartbeat-sec
Ejemplos:
Consola
Sigue los pasos que se indican en el artículo Ajustar el número de programadores para definir el número de programadores que necesitas en tu entorno.
gcloud
Sigue los pasos que se indican en el artículo Ajustar el número de programadores para definir el número de programadores que necesitas en tu entorno.
En el siguiente ejemplo se define el número de programadores en dos:
gcloud composer environments update example-environment \
--scheduler-count=2
Terraform
Sigue los pasos que se indican en el artículo Ajustar el número de programadores para definir el número de programadores que necesitas en tu entorno.
En el siguiente ejemplo se define el número de programadores en dos:
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
workloads_config {
scheduler {
count = 2
}
}
}
}
Cambiar la CPU y la memoria de 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 del número especificado de CPU y memoria.
Consola
Sigue los pasos que se indican en el artículo Ajustar los parámetros de escala y rendimiento de los trabajadores, los programadores y los servidores web para definir la CPU y la memoria de los programadores.
gcloud
Sigue los pasos que se indican en Ajustar los parámetros de escala y rendimiento de los trabajadores, los programadores y los servidores web para definir la CPU y la memoria de los programadores.
En el siguiente ejemplo se cambia la CPU y la memoria de los programadores. Puedes especificar solo los atributos de CPU o de memoria, según tus necesidades.
gcloud composer environments update example-environment \
--scheduler-cpu=0.5 \
--scheduler-memory=3.75
Terraform
Sigue los pasos que se indican en el artículo Ajustar los parámetros de escala y rendimiento de los trabajadores, los programadores y los servidores web para definir la CPU y la memoria de los programadores.
En el siguiente ejemplo se cambia la CPU y la memoria de los programadores. Puede omitir los atributos de CPU o de memoria, según sus necesidades.
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
workloads_config {
scheduler {
cpu = "0.5"
memory_gb = "3.75"
}
}
}
}
Cambiar el número máximo de trabajadores
Si aumentas el número máximo de trabajadores, tu entorno podrá escalarse automáticamente a un número mayor de trabajadores, si es necesario.
Si reduces el número máximo de trabajadores, se reduce la capacidad máxima del entorno, pero también puede ayudarte a reducir los costes del entorno.
Ejemplos:
Consola
Sigue los pasos que se indican en Ajustar el número mínimo y máximo de trabajadores para definir el número máximo de trabajadores que necesita tu entorno.
gcloud
Sigue los pasos que se indican en Ajustar el número mínimo y máximo de trabajadores para definir el número máximo de trabajadores que necesita tu entorno.
En el siguiente ejemplo, se establece el número máximo de trabajadores en seis:
gcloud composer environments update example-environment \
--max-workers=6
Terraform
Sigue los pasos que se indican en Ajustar el número mínimo y máximo de trabajadores para definir el número máximo de trabajadores que necesita tu entorno.
En el siguiente ejemplo se establece el número máximo de programadores en seis:
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
workloads_config {
worker {
max_count = "6"
}
}
}
}
Cambiar la CPU y la memoria de los trabajadores
Reducir la memoria de los trabajadores puede ser útil cuando el gráfico de uso de los trabajadores indica un uso de memoria muy bajo.
Si aumentas la memoria de los trabajadores, podrán gestionar más tareas simultáneamente o tareas que requieran mucha memoria. Puede solucionar el problema de las expulsiones de pods de trabajo.
Reducir la CPU de los trabajadores puede ser útil cuando el gráfico de uso de la CPU de los trabajadores indica que los recursos de la CPU están sobreasignados en general.
Al aumentar la CPU de los trabajadores, estos pueden gestionar más tareas simultáneamente y, en algunos casos, reducir el tiempo necesario para procesarlas.
Si cambias la CPU o la memoria de los trabajadores, se reiniciarán los trabajadores, lo que podría afectar a las tareas en curso. Te recomendamos que lo hagas 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 será cuatro veces el número especificado de CPU y memoria.
Consola
Sigue los pasos que se indican en el artículo Ajustar los parámetros de escala y rendimiento de los trabajadores, el programador y el servidor web para definir la CPU y la memoria de los trabajadores.
gcloud
Sigue los pasos que se indican en el artículo Ajustar los parámetros de escala y rendimiento de los trabajadores, el programador y el servidor web para definir la CPU y la memoria de los trabajadores.
En el siguiente ejemplo se cambia la CPU y la memoria de los workers. Si es necesario, puede omitir el atributo de CPU o de memoria.
gcloud composer environments update example-environment \
--worker-memory=3.75 \
--worker-cpu=2
Terraform
Sigue los pasos que se indican en el artículo Ajustar los parámetros de escala y rendimiento de los trabajadores, el programador y el servidor web para definir la CPU y la memoria de los trabajadores.
En el siguiente ejemplo se cambia la CPU y la memoria de los workers. Si es necesario, puede omitir el parámetro de CPU o de memoria.
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
workloads_config {
worker {
cpu = "2"
memory_gb = "3.75"
}
}
}
}
Cambiar la CPU y la memoria del servidor web
Reducir la CPU o la memoria del servidor web puede ser útil cuando el gráfico de uso del servidor web indica que se está infrautilizando continuamente.
Si cambias los parámetros del servidor web, se reiniciará el servidor web, lo que provocará un tiempo de inactividad temporal. Te recomendamos que hagas los cambios fuera del horario habitual de uso.
Consola
Sigue los pasos que se indican en Ajustar los parámetros de escala y rendimiento de los trabajadores, el programador y el servidor web para definir la CPU y la memoria del servidor web.
gcloud
Sigue los pasos que se indican en Ajustar los parámetros de escala y rendimiento de los trabajadores, el programador y el servidor web para definir la CPU y la memoria del servidor web.
En el siguiente ejemplo se cambia la CPU y la memoria del servidor web. Puede omitir los atributos de CPU o memoria, según sus necesidades.
gcloud composer environments update example-environment \
--web-server-cpu=2 \
--web-server-memory=3.75
Terraform
Sigue los pasos que se indican en Ajustar los parámetros de escala y rendimiento de los trabajadores, el programador y el servidor web para definir la CPU y la memoria del servidor web.
En el siguiente ejemplo se cambia la CPU y la memoria del servidor web. Puede omitir los atributos de CPU o memoria, según sus necesidades.
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
workloads_config {
web_server {
cpu = "2"
memory_gb = "3.75"
}
}
}
}
Cambiar el tamaño del entorno
Al cambiar el tamaño del entorno, se modifica la capacidad de los componentes backend de Cloud Composer, como la base de datos y la cola de Airflow.
- Si las métricas de uso de la base de datos muestran una infrautilización considerable, puedes cambiar el tamaño del entorno a uno más pequeño (por ejemplo, de Grande a Mediano o de Mediano a Pequeño).
Si observas un uso elevado de la base de datos de Airflow, te recomendamos que aumentes el tamaño del entorno.
Consola
Sigue los pasos que se indican en Ajustar el tamaño del entorno para definir el tamaño del entorno.
gcloud
Sigue los pasos que se indican en Ajustar el tamaño del entorno para definir 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 Ajustar el tamaño del entorno para definir 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"
}
}
Cambiar el intervalo de la lista de directorios de DAG
Si aumentas el intervalo de la lista de directorios de DAGs, se reduce la carga del programador asociada a la detección de nuevos DAGs en el bucket del entorno.
- Si no sueles implementar nuevos DAGs, te recomendamos que aumentes este intervalo.
- Considera la posibilidad de reducir este intervalo si quieres 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 |
Nuevo valor del intervalo de la lista | El valor predeterminado, en segundos, es 120 . |
Cambiar el intervalo de análisis de archivos DAG
Si aumenta el intervalo de análisis de archivos DAG, se reduce la carga del programador asociada al análisis continuo de los DAGs en el contenedor de DAGs.
Te recomendamos que aumentes este intervalo cuando tengas un número elevado de DAGs 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 |
Nuevo valor del intervalo de análisis de DAG | El valor predeterminado, en segundos, es 30 . |
Simultaneidad de los trabajadores
El rendimiento de la simultaneidad y la capacidad de tu entorno para escalar automáticamente están relacionados con dos ajustes:
- El número mínimo 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 puede beneficiarse de ajustes personalizados.
Consideraciones sobre el rendimiento de la simultaneidad de los trabajadores
El parámetro [celery]worker_concurrency
define el número de tareas que un solo trabajador puede recoger de la cola de tareas.
La velocidad de ejecución de las tareas depende de varios factores, como la CPU y la memoria del trabajador, así como el tipo de trabajo en sí.
Autoescalado de trabajadores
Cloud Composer monitoriza la cola de tareas y genera trabajadores adicionales para recoger las tareas pendientes. Si asignas un valor alto a [celery]worker_concurrency
, significa que cada trabajador puede recoger muchas tareas, por lo que, en determinadas circunstancias, es posible que la cola nunca se llene y que el autoescalado nunca se active.
Por ejemplo, en un entorno de Cloud Composer con dos trabajadores de Airflow, si [celery]worker_concurrency
se define en 100 y hay 200 tareas en la cola, cada trabajador recogerá 100 tareas. De esta forma, la cola queda vacía y no se activa el autoescalado. Si estas tareas tardan mucho en completarse, puede que se produzcan problemas de rendimiento.
Sin embargo, si las tareas son pequeñas y rápidas de ejecutar, un valor alto en el ajuste [celery]worker_concurrency
podría provocar un escalado excesivo.
Por ejemplo, si ese entorno tiene 300 tareas en la cola, Cloud Composer empieza a crear nuevos workers. Sin embargo, si las primeras 200 tareas terminan de ejecutarse antes de que los nuevos trabajadores estén listos, un trabajador que ya esté activo puede encargarse de ellas. El resultado es que el escalado automático crea nuevos trabajadores, 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 y los números de colas máximos:
- 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 el número mínimo de trabajadores de Airflow para evitar un escalado excesivo.
Sincronización de registros de tareas
Los workers de Airflow incluyen un componente que sincroniza los registros de ejecución de tareas con segmentos de Cloud Storage. Si un solo trabajador realiza un gran número de tareas simultáneas, se generará un gran número de solicitudes de sincronización. Esto podría sobrecargar tu trabajador y provocar problemas de rendimiento.
Si observas problemas de rendimiento debido a un gran volumen de tráfico de sincronización de registros, reduce los valores de [celery]worker_concurrency
y ajusta el número mínimo de trabajadores de Airflow.
Cambiar la simultaneidad de los trabajadores
Si cambia este parámetro, se ajustará el número de tareas que un solo trabajador puede ejecutar al mismo tiempo.
Por ejemplo, un trabajador con 0,5 CPUs puede gestionar normalmente 6 tareas simultáneas.Un entorno con tres trabajadores de este tipo puede gestionar hasta 18 tareas simultáneas.
Aumenta este parámetro cuando haya tareas en la cola y tus trabajadores usen un porcentaje bajo de sus CPUs y memoria al mismo tiempo.
Disminuye este parámetro cuando se produzcan desalojos de pods. De esta forma, se reducirá el número de tareas que intente procesar un solo trabajador. Como alternativa, puedes aumentar la memoria de los trabajadores.
De forma predeterminada, la simultaneidad de los trabajadores se define en función del número de instancias de tareas simultáneas ligeras que puede admitir un trabajador. Esto significa que su valor depende de los límites de recursos de los trabajadores. El valor de simultaneidad de los trabajadores no depende del número de trabajadores de tu entorno.
Para cambiar este parámetro, anula la siguiente opción de configuración de Airflow:
Sección | Clave | Valor |
---|---|---|
celery |
worker_concurrency |
Nuevo valor de la simultaneidad de los elementos de trabajo |
Cambiar la simultaneidad de un DAG
La simultaneidad de DAGs define el número máximo de instancias de tareas que se pueden ejecutar simultáneamente en cada DAG. Aumenta este valor cuando tus DAGs ejecuten un gran número de tareas simultáneas. Si este ajuste es bajo, el programador retrasa la incorporación de más tareas a 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 |
Nuevo valor de simultaneidad de DAG | El valor predeterminado es 16 . |
Aumentar el número máximo de ejecuciones activas por DAG
Este atributo define el número máximo de ejecuciones de DAG activas por DAG. Cuando el mismo DAG se debe ejecutar varias veces simultáneamente (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 |
Nuevo valor del número máximo de ejecuciones activas por DAG | El valor predeterminado es 25 . |
Siguientes pasos
- Entornos de escalabilidad
- Acerca del escalado del entorno
- Anular configuraciones de Airflow
- Monitorizar el estado y el rendimiento del entorno con métricas clave