Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Questa pagina spiega come ottimizzare i parametri di scalabilità e prestazioni dell'ambiente in base alle esigenze del progetto, in modo da migliorare le prestazioni e ridurre i costi delle risorse non utilizzate dall'ambiente.
Altre pagine su scalabilità e ottimizzazione:
- Per informazioni sulla scalabilità degli ambienti, consulta Eseguire la scalabilità degli ambienti.
- Per informazioni sul funzionamento della scalabilità degli ambienti, consulta Scalabilità degli ambienti.
- Per un tutorial sul monitoraggio delle metriche chiave dell'ambiente, consulta Monitora l'integrità e le prestazioni dell'ambiente con le metriche chiave.
Panoramica della procedura di ottimizzazione
Le modifiche ai parametri dell'ambiente possono influire su molti aspetti del suo rendimento. Ti consigliamo di ottimizzare l'ambiente in più iterazioni:
- Inizia con le impostazioni predefinite dell'ambiente.
- Esegui i DAG.
- Osserva il rendimento del tuo ambiente.
- Modifica la scala dell'ambiente e i parametri di rendimento, quindi ripeti il passaggio precedente.
Inizia con i preset dell'ambiente
Quando crei un ambiente nella console Google Cloud, puoi selezionare una delle tre impostazioni predefinite per l'ambiente. Queste preimpostazioni impostano la configurazione iniziale della scala e del rendimento dell'ambiente. Dopo aver creato l'ambiente, puoi modificare tutti i parametri di scala e rendimento forniti da una preimpostazione.
Ti consigliamo di iniziare con una delle impostazioni predefinite, in base alle seguenti stime:
- Numero totale di DAG che prevedi di eseguire nell'ambiente
- Numero massimo di esecuzioni DAG simultanee
- Numero massimo di attività simultanee
Il rendimento dell'ambiente dipende dall'implementazione di DAG specifici che esegui al suo interno. Nella tabella seguente sono elencate le stime basate sul consumo medio delle risorse. Se prevedi che i DAG consumino più risorse, modifica le stime di conseguenza.
Preimpostazione consigliata | DAG totali | Esecuzioni DAG con numero massimo di attività simultanee | Task concorrenziali massime |
---|---|---|---|
Piccolo | 50 | 15 | 18 |
Medio | 250 | 60 | 100 |
Grande | 1000 | 250 | 400 |
Ad esempio, un ambiente deve eseguire 40 DAG. Tutti i DAG devono essere eseguiti contemporaneamente con una singola attività attiva ciascuno. Questo ambiente utilizzerà quindi un valore preimpostato medio, poiché il numero massimo di esecuzioni e attività DAG simultanee supera le stime consigliate per il valore preimpostato Piccolo.
Esegui i DAG
Una volta creato l'ambiente, carica i DAG. Esegui i DAG e osserva le prestazioni dell'ambiente.
Ti consigliamo di eseguire i DAG in base a una pianificazione che rifletta l'applicazione reale dei DAG. Ad esempio, se vuoi eseguire più DAG contemporaneamente, assicurati di controllare il rendimento del tuo ambiente quando tutti questi DAG sono in esecuzione contemporaneamente.
Osservare il rendimento dell'ambiente
Questa sezione si concentra sugli aspetti più comuni di ottimizzazione della capacità e del rendimento di Cloud Composer 2. Ti consigliamo di seguire questa guida passo passo perché vengono trattate per prime le considerazioni sul rendimento più comuni.
Vai alla dashboard Monitoraggio
Puoi monitorare le metriche sul rendimento del tuo ambiente nella dashboard monitoring del tuo ambiente.
Per accedere alla dashboard di monitoraggio per il tuo ambiente:
Nella console Google Cloud, vai alla pagina Ambienti.
Fai clic sul nome dell'ambiente.
Vai alla scheda Monitoraggio.
Monitora le metriche CPU e memoria dell'organizzatore
Le metriche della CPU e della memoria dello scheduler di Airflow ti aiutano a verificare se le prestazioni dello scheduler rappresentano un collo di bottiglia nel rendimento complessivo di Airflow.

Nella sezione Programmatori della dashboard di monitoraggio, osserva i grafici relativi ai programmatori Airflow del tuo ambiente:
- CPU totale utilizzata dagli scheduler
- Memoria totale utilizzata dagli scheduler
Modifica in base alle tue osservazioni:
Se l'utilizzo della CPU dello scheduler è costantemente inferiore al 30-35%, ti consigliamo di:
Se l'utilizzo della CPU dello scheduler supera l'80% per più del 10% del tempo totale, ti consigliamo di:
Monitora il tempo totale di analisi per tutti i file DAG
Gli scheduler analizzano i DAG prima di pianificare le relative esecuzioni. Se l'analisi dei DAG richiede molto tempo, viene consumata la capacità dello scheduler e le prestazioni delle esecuzioni dei DAG potrebbero essere ridotte.

Nella dashboard Monitoraggio, nella sezione Statistiche DAG, osserva i grafici relativi al tempo di analisi totale del DAG.
Se il numero supera circa 10 secondi, gli pianificatori potrebbero essere sovraccaricati con l'analisi del DAG e non essere in grado di eseguire i DAG in modo efficace. La frequenza di analisi del DAG predefinita in Airflow è di 30 secondi. Se il tempo di analisi del DAG supera questa soglia, i cicli di analisi iniziano a sovrapporsi, il che esaurisce la capacità dello scheduler.
In base alle tue osservazioni, ti consigliamo di:
- Semplifica i DAG, incluse le relative dipendenze Python.
- Aumenta l'intervallo di analisi dei file DAG e l'intervallo di elenco delle directory DAG.
- Aumenta il numero di pianificatori.
- Aumenta la CPU degli scheduler.
Monitorare le eliminazioni dei pod di worker
L'espulsione dei pod può verificarsi quando un determinato pod nel cluster del tuo ambiente raggiunge i suoi limiti di risorse.

Se un pod di worker di Airflow viene espulso, tutte le istanze di attività in esecuzione su quel pod vengono interrotte e successivamente contrassegnate come non riuscite da Airflow.
La maggior parte dei problemi di espulsione dei pod dei worker si verifica a causa di situazioni di esaurimento della memoria nei worker.
Nella dashboard di monitoraggio, nella sezione Workers (Utenti), osserva i grafici Worker Pods evictions (Uscire da pod di worker) per il tuo ambiente.
Il grafico Utilizzo totale memoria worker mostra una prospettiva complessiva dell'ambiente. Un singolo worker può comunque superare il limite di memoria, anche se l'utilizzo della memoria è corretto a livello di ambiente.
In base alle tue osservazioni, ti consigliamo di:
- Aumenta la memoria disponibile per i worker.
- Riduci la concorrenza dei worker. In questo modo, un singolo lavoratore gestisce meno attività contemporaneamente. In questo modo, avrai più memoria o stoccaggio per ogni singola attività. Se modifichi la concorrenza dei worker, potresti anche aumentare il numero massimo di worker. In questo modo, il numero di attività che l'ambiente può gestire contemporaneamente rimane invariato. Ad esempio, se riduci la concorrenza dei worker da 12 a 6, potresti voler raddoppiare il numero massimo di worker.
Monitorare i worker attivi
Il numero di worker nel tuo ambiente viene scalato automaticamente in risposta alle attività in coda.

Nella dashboard Monitoraggio, nella sezione Worker, osserva i grafici relativi al numero di worker attivi e al numero di attività in coda:
- Worker attivi
- Attività Airflow
Modifica in base alle tue osservazioni:
- Se l'ambiente raggiunge spesso il limite massimo di worker e contemporaneamente il numero di attività nella coda di Celery è costantemente elevato, potresti voler aumentare il numero massimo di worker.
Se sono presenti lunghi tempi di attesa nella pianificazione delle attività, ma allo stesso tempo l'ambiente non esegue il ridimensionamento fino al numero massimo di worker, è probabile che esista un'impostazione di Airflow che riduca la velocità di esecuzione e impedisca ai meccanismi di Cloud Composer di eseguire il ridimensionamento dell'ambiente. Poiché gli ambienti Cloud Composer 2 si ridimensionano in base al numero di attività nella coda Celery, configura Airflow in modo da non limitare le attività durante l'inserimento nella coda:
- Aumenta la concorrenza dei lavoratori. La concorrenza dei worker deve essere impostata su un valore superiore al numero massimo di attività simultanee previsto, diviso per il numero massimo di worker nell'ambiente.
- Aumenta la concorrenza dei DAG, se un singolo DAG esegue un numero elevato di attività in parallelo, il che può portare al raggiungimento del numero massimo di istanze di attività in esecuzione per DAG.
- Aumenta le esecuzioni attive massime per DAG, se esegui lo stesso DAG più volte in parallelo, il che può portare Airflow a limitare l'esecuzione perché viene raggiunto il limite di esecuzioni attive massime per DAG.
Monitora l'utilizzo della CPU e della memoria dei worker
Monitora l'utilizzo totale della CPU e della memoria aggregato in tutti i worker del tuo ambiente per determinare se i worker Airflow utilizzano correttamente le risorse del tuo ambiente.

Nella dashboard Monitoraggio, nella sezione Worker, osserva i grafici relativi all'utilizzo della CPU e della memoria da parte dei worker Airflow:
- Utilizzo totale CPU worker
- Utilizzo totale memoria worker
Questi grafici rappresentano l'utilizzo aggregato delle risorse. I singoli worker potrebbero comunque raggiungere i limiti di capacità, anche se la visualizzazione aggregata mostra una capacità di riserva.
Modifica in base alle tue osservazioni:
- Se l'utilizzo della memoria dei worker si avvicina al limite, possono verificarsi espulsioni dei pod worker. Per risolvere il problema, aumenta la memoria del worker.
- Se l'utilizzo della memoria è minimo rispetto al limite e non sono presenti espulsioni di pod di worker, ti consigliamo di ridurre la memoria dei worker.
Se l'utilizzo della CPU dei worker si avvicina al limite (supera l'80% per più di qualche percentuale del tempo totale), ti consigliamo di:
- Aumenta il numero di worker. In questo modo, il tuo ambiente avrà un maggiore controllo sulla capacità di provisioning per un determinato carico di lavoro.
- Aumenta la CPU dei worker o riduci la concorrenza dei worker se le singole attività richiedono un'allocazione della CPU più elevata. In caso contrario, ti consigliamo di aumentare il numero di worker.
Monitora le attività in esecuzione e in coda
Puoi monitorare il numero di attività in coda e in esecuzione per verificare l'efficienza del processo di pianificazione.

Nella dashboard Monitoraggio, nella sezione Worker, osserva il grafico Attività Airflow per il tuo ambiente.
Le attività in coda sono in attesa di essere eseguite dai worker. Se il tuo ambiente ha attività in coda, è possibile che i worker al suo interno siano impegnati a eseguire altre attività.
In un ambiente è sempre presente una certa coda, soprattutto durante i picchi di elaborazione. Tuttavia, se noti un numero elevato di attività in coda o una tendenza in crescita nel grafico, questo potrebbe indicare che i worker non hanno capacità sufficienti per elaborare le attività o che Airflow sta limitando l'esecuzione delle attività.
In genere, si osserva un numero elevato di attività in coda quando anche il numero di attività in esecuzione raggiunge il livello massimo.
Per risolvere entrambi i problemi:
Monitora l'utilizzo di CPU e memoria del database
I problemi di prestazioni del database Airflow possono causare problemi di esecuzione complessiva dei DAG. In genere, l'utilizzo del disco del database non è motivo di preoccupazione perché lo spazio di archiviazione viene esteso automaticamente in base alle esigenze.

Nella dashboard Monitoraggio, nella sezione Database SQL, osserva i grafici relativi all'utilizzo di CPU e memoria da parte del database Airflow:
- Utilizzo CPU database
- Utilizzo memoria database
Se l'utilizzo della CPU del database supera l'80% per più del 2% del tempo totale, il database è sovraccaricato e richiede il ridimensionamento.
Le impostazioni delle dimensioni del database sono controllate dalla proprietà dimensione dell'ambiente. Per eseguire il ridimensionamento del database verso l'alto o verso il basso, modifica la dimensione dell'ambiente impostandola su un livello diverso (Piccolo, Medio o Grande). L'aumento delle dimensioni dell'ambiente ne aumenta i costi.
Monitorare la latenza della pianificazione delle attività
Se la latenza tra le attività supera i livelli previsti (ad esempio almeno 20 secondi), potrebbe indicare che l'ambiente non è in grado di gestire il carico delle attività generate dalle esecuzioni del DAG.

Puoi visualizzare il grafico della latenza di pianificazione delle attività nell'interfaccia utente di Airflow del tuo ambiente.
In questo esempio, i ritardi (2,5 e 3,5 secondi) rientrano ampiamente nei limiti accettabili, ma latenze significativamente più elevate potrebbero indicare che:
- Il programmatore è sovraccaricato. Monitora la CPU e la memoria dell'organizzatore per rilevare eventuali segni di potenziali problemi.
- Le opzioni di configurazione di Airflow riducono la velocità di esecuzione. Prova a aumentare la concorrenza dei worker, aumentare la concorrenza del DAG o aumentare il numero massimo di esecuzioni attive per DAG.
- Non ci sono worker sufficienti per eseguire le attività. Prova a aumentare il numero massimo di worker.
Monitora la CPU e la memoria del server web
Le prestazioni del server web di Airflow influiscono sulla UI di Airflow. Non è comune che il server web sia sovraccarico. In questo caso, le prestazioni dell'interfaccia utente di Airflow potrebbero peggiorare, ma ciò non influisce sulle prestazioni delle esecuzioni del DAG.

Nella dashboard Monitoraggio, nella sezione Server web, osserva i grafici per il server web Airflow:
- Utilizzo CPU server web
- Utilizzo memoria server web
In base alle tue osservazioni:
- Se l'utilizzo della CPU del server web è superiore all'80% per più del 10% del tempo, prendi in considerazione l'aumento della CPU del server web.
- Se noti un utilizzo elevato della memoria del server web, valuta la possibilità di aggiungere altra memoria al server web.
Modificare i parametri di scalabilità e prestazioni dell'ambiente
Modificare il numero di scheduler
La regolazione del numero di scheduler migliora la capacità e la resilienza della pianificazione di Airflow.
Se aumenti il numero di pianificatori, aumenta il traffico verso e da il database Airflow. Consigliamo di utilizzare due pianificatori Airflow nella maggior parte degli scenari. L'utilizzo di tre pianificatori è necessario solo in rari casi che richiedono considerazioni speciali. La configurazione di più di tre pianificatori spesso comporta un calo del rendimento dell'ambiente.
Se hai bisogno di una pianificazione più rapida:
- Configura due pianificatori Airflow.
- Assegna più risorse di CPU e memoria agli scheduler di Airflow.
- Aumenta dag-dir-list-interval
- Aumenta min-file-process-interval
- Aumenta job-heartbeat-sec
Esempi:
Console
Segui i passaggi descritti in Modificare il numero di pianificatori per impostare il numero richiesto di pianificatori per il tuo ambiente.
gcloud
Segui i passaggi descritti in Modificare il numero di pianificatori per impostare il numero richiesto di pianificatori per il tuo ambiente.
L'esempio seguente imposta il numero di pianificatori su due:
gcloud composer environments update example-environment \
--scheduler-count=2
Terraform
Segui i passaggi descritti in Modificare il numero di pianificatori per impostare il numero richiesto di pianificatori per il tuo ambiente.
L'esempio seguente imposta il numero di pianificatori su due:
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
workloads_config {
scheduler {
count = 2
}
}
}
}
Modificare la CPU e la memoria per gli scheduler
I parametri CPU e memoria sono per ogni pianificatore nel tuo ambiente. Ad esempio, se il tuo ambiente ha due pianificatori, la capacità totale è il doppio del numero specificato di CPU e memoria.
Console
Segui la procedura descritta in Modificare i parametri di scalabilità e prestazioni di worker, pianificatori e server web per impostare la CPU e la memoria per i pianificatori.
gcloud
Segui i passaggi descritti in Modificare i parametri di scalabilità e prestazioni di worker, pianificatori e server web per impostare la CPU e la memoria per i pianificatori.
L'esempio seguente modifica la CPU e la memoria per gli scheduler. Puoi specificare solo gli attributi CPU o Memoria, a seconda delle esigenze.
gcloud composer environments update example-environment \
--scheduler-cpu=0.5 \
--scheduler-memory=3.75
Terraform
Segui la procedura descritta in Modificare i parametri di scalabilità e prestazioni di worker, pianificatori e server web per impostare la CPU e la memoria per i pianificatori.
L'esempio seguente modifica la CPU e la memoria per gli scheduler. Puoi omettere gli attributi CPU o Memoria, a seconda delle esigenze.
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
workloads_config {
scheduler {
cpu = "0.5"
memory_gb = "3.75"
}
}
}
}
Modificare il numero massimo di worker
L'aumento del numero massimo di worker consente all'ambiente di eseguire automaticamente la scalabilità a un numero maggiore di worker, se necessario.
La riduzione del numero massimo di worker riduce la capacità massima dell'ambiente, ma potrebbe anche essere utile per ridurre i costi dell'ambiente.
Esempi:
Console
Segui i passaggi descritti in Modificare il numero minimo e massimo di worker per impostare il numero massimo di worker richiesto per il tuo ambiente.
gcloud
Segui i passaggi descritti in Modificare il numero minimo e massimo di worker per impostare il numero massimo di worker richiesto per il tuo ambiente.
L'esempio seguente imposta il numero massimo di worker su sei:
gcloud composer environments update example-environment \
--max-workers=6
Terraform
Segui i passaggi descritti in Modificare il numero minimo e massimo di worker per impostare il numero massimo di worker richiesto per il tuo ambiente.
L'esempio seguente imposta il numero massimo di pianificatori su sei:
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
workloads_config {
worker {
max_count = "6"
}
}
}
}
Modificare la CPU e la memoria del worker
La riduzione della memoria dei worker può essere utile quando il grafico di utilizzo dei worker indica un utilizzo molto ridotto della memoria.
L'aumento della memoria dei worker consente ai worker di gestire più attività contemporaneamente o di gestire attività ad alta intensità di memoria. Potrebbe risolvere il problema degli espulsioni dei pod di worker.
La riduzione della CPU dei worker può essere utile quando il grafico dell'utilizzo della CPU dei worker indica che le risorse della CPU sono molto sovraallocate.
L'aumento della CPU dei worker consente ai worker di gestire più attività contemporaneamente e, in alcuni casi, di ridurre il tempo necessario per elaborarle.
La modifica della CPU o della memoria dei worker riavvia i worker, il che potrebbe influire sulle attività in esecuzione. Ti consigliamo di farlo quando non sono in esecuzione DAG.
I parametri CPU e memoria si riferiscono a ogni worker nel tuo ambiente. Ad esempio, se il tuo ambiente ha quattro worker, la capacità totale è quattro volte il numero specificato di CPU e memoria.
Console
Segui i passaggi descritti in Modificare i parametri di scalabilità e prestazioni di worker, pianificatore e server web per impostare la CPU e la memoria per i worker.
gcloud
Segui i passaggi descritti in Modificare i parametri di scalabilità e prestazioni di worker, scheduler e server web per impostare la CPU e la memoria per i worker.
L'esempio seguente modifica la CPU e la memoria per i worker. Puoi ommettere l'attributo CPU o memoria, se necessario.
gcloud composer environments update example-environment \
--worker-memory=3.75 \
--worker-cpu=2
Terraform
Segui i passaggi descritti in Modificare i parametri di scalabilità e prestazioni di worker, pianificatore e server web per impostare la CPU e la memoria per i worker.
L'esempio seguente modifica la CPU e la memoria per i worker. Puoi ommettere il parametro CPU o memoria, se necessario.
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
workloads_config {
worker {
cpu = "2"
memory_gb = "3.75"
}
}
}
}
Modificare la CPU e la memoria del server web
La riduzione della CPU o della memoria del server web può essere utile quando il grafico di utilizzo del server web indica che è continuamente sottoutilizzato.
La modifica dei parametri del server web riavvia il server web, provocando un tempo di inattività temporaneo del server web. Ti consigliamo di apportare modifiche al di fuori dell'orario di utilizzo regolare.
Console
Segui i passaggi descritti in Modificare i parametri di scalabilità e prestazioni di worker, pianificatore e server web per impostare la CPU e la memoria per il server web.
gcloud
Segui i passaggi descritti in Modificare i parametri di scalabilità e prestazioni di worker, pianificatore e server web per impostare la CPU e la memoria per il server web.
L'esempio seguente modifica la CPU e la memoria del server web. Puoi omettere gli attributi CPU o memoria, a seconda delle esigenze.
gcloud composer environments update example-environment \
--web-server-cpu=2 \
--web-server-memory=3.75
Terraform
Segui i passaggi descritti in Modificare i parametri di scalabilità e prestazioni di worker, pianificatore e server web per impostare la CPU e la memoria per il server web.
L'esempio seguente modifica la CPU e la memoria del server web. Puoi omettere gli attributi CPU o memoria, a seconda delle esigenze.
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
workloads_config {
web_server {
cpu = "2"
memory_gb = "3.75"
}
}
}
}
Modificare le dimensioni dell'ambiente
La modifica delle dimensioni dell'ambiente modifica la capacità dei componenti di backend di Cloud Composer, come il database Airflow e la coda Airflow.
- Valuta la possibilità di ridurre le dimensioni dell'ambiente (ad esempio da Grande a Medio o da Medio a Piccolo) quando le metriche relative all'utilizzo del database mostrano un sottoutilizzo sostanziale.
Valuta la possibilità di aumentare le dimensioni dell'ambiente se noti un utilizzo elevato del database Airflow.
Console
Segui i passaggi descritti in Regolare le dimensioni dell'ambiente per impostare le dimensioni dell'ambiente.
gcloud
Segui i passaggi descritti in Regolare le dimensioni dell'ambiente per impostare le dimensioni dell'ambiente.
Nell'esempio seguente, le dimensioni dell'ambiente vengono impostate su Medie.
gcloud composer environments update example-environment \
--environment-size=medium
Terraform
Segui i passaggi descritti in Regolare le dimensioni dell'ambiente per impostare le dimensioni dell'ambiente.
Nell'esempio seguente, le dimensioni dell'ambiente vengono impostate su Medie.
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
environment_size = "medium"
}
}
Modifica dell'intervallo di elenco della directory DAG
L'aumento dell'intervallo di inserimento della directory DAG riduce il carico dello scheduler associato alla scoperta di nuovi DAG nel bucket dell'ambiente.
- Valuta la possibilità di aumentare questo intervallo se esegui il deployment di nuovi DAG di rado.
- Valuta la possibilità di ridurre questo intervallo se vuoi che Airflow reagisca più velocemente ai file DAG appena implementati.
Per modificare questo parametro, esegui l'override della seguente opzione di configurazione di Airflow:
Sezione | Chiave | Valore | Note |
---|---|---|---|
scheduler |
dag_dir_list_interval |
Nuovo valore per l'intervallo della scheda | Il valore predefinito, in secondi, è 120 . |
Modifica dell'intervallo di analisi dei file DAG
L'aumento dell'intervallo di analisi dei file DAG riduce il carico dello scheduler associato all'analisi continua dei DAG nel DAG bag.
Valuta la possibilità di aumentare questo intervallo se hai un numero elevato di DAG che non cambiano troppo spesso o se noti un carico elevato dello scheduler in generale.
Per modificare questo parametro, esegui l'override della seguente opzione di configurazione di Airflow:
Sezione | Chiave | Valore | Note |
---|---|---|---|
scheduler |
min_file_process_interval |
Nuovo valore per l'intervallo di analisi del DAG | Il valore predefinito, in secondi, è 30 . |
Concorrenza dei worker
Il rendimento della concorrenza e la capacità di autoscaling del tuo ambiente sono collegati a due impostazioni:
- il numero minimo di worker Airflow
- il parametro
[celery]worker_concurrency
I valori predefiniti forniti da Cloud Composer sono ottimali per la maggior parte dei casi d'uso, ma il tuo ambiente potrebbe trarre vantaggio da aggiustamenti personalizzati.
Considerazioni sulle prestazioni della concorrenza dei worker
Il parametro [celery]worker_concurrency
definisce il numero di attività
che un singolo worker può recuperare dalla coda delle attività.
La velocità di esecuzione delle attività dipende da diversi fattori, come la CPU, la memoria e il tipo di lavoro stesso del worker.
Scalabilità automatica dei worker
Cloud Composer monitora la coda delle attività e genera worker aggiuntivi per
recuperare le attività in attesa. Impostare [celery]worker_concurrency
su un valore elevato significa che ogni worker può acquisire molte attività, quindi in determinate circostanze la coda potrebbe non riempirsi mai, causando l'attivazione della scalabilità automatica.
Ad esempio, in un ambiente Cloud Composer con due worker Airflow,[celery]worker_concurrency
impostato su 100 e 200 task in coda,
ogni worker acquisirebbe 100 task. La coda rimane vuota e la scalabilità automatica non viene attivata. Se il completamento di queste attività richiede molto tempo, potrebbero verificarsi problemi di prestazioni.
Tuttavia, se le attività sono piccole e rapide da eseguire, un valore elevato nell'impostazione [celery]worker_concurrency
potrebbe portare a uno scaling eccessivo.
Ad esempio, se l'ambiente ha 300 attività in coda, Cloud Composer inizia a creare nuovi worker. Tuttavia, se le prime 200 attività vengono completate entro il momento in cui i nuovi lavoratori sono pronti, un lavoratore esistente può recuperarle. Il risultato finale è che l'autoscaling crea nuovi worker, ma
non ci sono attività per loro.
La modifica di [celery]worker_concurrency
per casi speciali deve essere basata su
i tempi di esecuzione delle attività di picco e sui numeri di coda:
- Per le attività che richiedono più tempo per essere completate, i lavoratori non devono essere in grado di svuotare completamente la coda.
- Per attività più brevi e piccole, aumenta il numero minimo di worker Airflow per evitare una scalabilità eccessiva.
Sincronizzazione dei log delle attività
I worker di Airflow includono un componente che sincronizza i log di esecuzione delle attività con i bucket Cloud Storage. Un numero elevato di attività simultanee eseguite da un singolo worker comporta un numero elevato di richieste di sincronizzazione. Ciò potrebbe sovraccaricare il tuo worker e causare problemi di prestazioni.
Se noti problemi di prestazioni dovuti a un numero elevato di traffico di sincronizzazione dei log, riduci i valori [celery]worker_concurrency
e regola il numero minimo di worker Airflow.
Modificare la concorrenza dei worker
La modifica di questo parametro regola il numero di attività che un singolo worker può eseguire contemporaneamente.
Ad esempio, un worker con 0,5 CPU in genere può gestire 6 attività simultanee; un ambiente con tre worker di questo tipo può gestire fino a 18 attività simultanee.
Aumenta questo parametro quando ci sono attività in attesa nella coda e i worker utilizzano contemporaneamente una bassa percentuale di CPU e memoria.
Riduci questo parametro quando si verificano espulsioni dei pod; in questo modo, verrà ridotto il numero di attività che un singolo worker tenta di elaborare. Come alternativa, puoi aumentare la memoria dei worker.
Il valore predefinito per la concorrenza dei worker è uguale a:
- In Airflow 2.6.3 e versioni successive, un valore minimo tra
32
,12 * worker_CPU
e6 * worker_memory
. - Nelle versioni di Airflow precedenti alla 2.6.3, un valore minimo tra
32
,12 * worker_CPU
e8 * worker_memory
. - Nelle versioni di Airflow precedenti alla 2.3.3,
12 * worker_CPU
.
Il valore worker_CPU
è il numero di CPU allocate a un singolo worker. Il valore worker_memory
è la quantità di memoria allocata a un singolo worker. Ad esempio, se i worker nel tuo ambiente utilizzano ciascuno 0,5 CPU e 4 GB di memoria, la concorrenza dei worker è impostata su 6
. Il valore della concorrenza dei worker non dipende dal numero di worker nel tuo ambiente.
Per modificare questo parametro, esegui l'override della seguente opzione di configurazione di Airflow:
Sezione | Chiave | Valore |
---|---|---|
celery |
worker_concurrency |
Nuovo valore per la concorrenza dei worker |
Modificare la concorrenza DAG
La concorrenza DAG definisce il numero massimo di istanze di attività consentite in esecuzione contemporaneamente in ogni DAG. Aumentalo quando i DAG eseguono un numero elevato di attività contemporaneamente. Se questa impostazione è bassa, lo scheduler ritarda l'inserimento di altre attività nella coda, il che riduce anche l'efficienza dell'autoscaling dell'ambiente.
Per modificare questo parametro, esegui l'override della seguente opzione di configurazione di Airflow:
Sezione | Chiave | Valore | Note |
---|---|---|---|
core |
max_active_tasks_per_dag |
Nuovo valore per la concorrenza DAG | Il valore predefinito è 16 |
Aumentare il numero massimo di esecuzioni attive per DAG
Questo attributo definisce il numero massimo di esecuzioni DAG attive per DAG. Quando lo stesso DAG deve essere eseguito più volte contemporaneamente, ad esempio con argomenti di input diversi, questo attributo consente allo scheduler di avviare queste esecuzioni in parallelo.
Per modificare questo parametro, esegui l'override della seguente opzione di configurazione di Airflow:
Sezione | Chiave | Valore | Note |
---|---|---|---|
core |
max_active_runs_per_dag |
Nuovo valore per le esecuzioni attive massime per DAG | Il valore predefinito è 25 |
Passaggi successivi
- Scala gli ambienti
- Informazioni sulla scalabilità degli ambienti
- Eseguire l'override delle configurazioni di Airflow
- Monitora l'integrità e le prestazioni dell'ambiente con le metriche chiave