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 tuo progetto, in modo da ottenere prestazioni migliori e ridurre i costi per le risorse non utilizzate dall'ambiente.
Altre pagine su scalabilità e ottimizzazione:
- Per informazioni sulla scalabilità degli ambienti, vedi Scalare gli ambienti.
- Per informazioni sul funzionamento della scalabilità degli ambienti, vedi Scalabilità degli ambienti.
- Per un tutorial sul monitoraggio delle metriche chiave dell'ambiente, consulta Monitorare l'integrità e le prestazioni dell'ambiente con le metriche chiave.
Panoramica della procedura di ottimizzazione
La modifica dei parametri dell'ambiente può influire su molti aspetti del rendimento dell'ambiente. Ti consigliamo di ottimizzare l'ambiente in iterazioni:
- Inizia con i preset dell'ambiente.
- Esegui i DAG.
- Osserva il rendimento del tuo ambiente.
- Regola i parametri di scala e rendimento dell'ambiente, quindi ripeti il passaggio precedente.
Inizia con i preset dell'ambiente
Quando crei un ambiente nella console Google Cloud , puoi selezionare uno dei tre preset dell'ambiente. Questi preset impostano la configurazione iniziale di scalabilità e prestazioni del tuo ambiente. Dopo aver creato l'ambiente, puoi modificare tutti i parametri di scalabilità e prestazioni forniti da un preset.
Ti consigliamo di iniziare con uno dei preset, in base alle seguenti stime:
- Numero totale di DAG che prevedi di eseguire il deployment nell'ambiente
- Numero massimo di esecuzioni di DAG simultanee
- Numero massimo di attività simultanee
Il rendimento del tuo ambiente dipende dall'implementazione di DAG specifici che esegui nel tuo ambiente. La tabella seguente elenca le stime basate sul consumo medio di risorse. Se prevedi che i tuoi DAG consumino più risorse, modifica le stime di conseguenza.
Preset consigliato | DAG totali | Numero massimo di esecuzioni di DAG simultanee | Numero massimo di attività simultanee |
---|---|---|---|
Piccolo | 50 | 15 | 18 |
Media | 250 | 60 | 100 |
Grande | 1000 | 250 | 400 |
Ad esempio, un ambiente deve eseguire 40 DAG. Tutti i DAG devono essere eseguiti contemporaneamente con un'attività attiva ciascuno. Questo ambiente utilizzerebbe quindi un preset Medio, perché il numero massimo di esecuzioni e attività DAG simultanee supera le stime consigliate per il preset 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 le prestazioni del tuo ambiente quando tutti questi DAG sono in esecuzione contemporaneamente.
Osservare le prestazioni del tuo ambiente
Questa sezione si concentra sugli aspetti più comuni di ottimizzazione delle prestazioni e della capacità di Cloud Composer 2. Ti consigliamo di seguire questa guida passo dopo passo perché vengono trattate prima le considerazioni sulle prestazioni più comuni.
Vai alla dashboard di monitoraggio
Puoi monitorare le metriche sul rendimento del tuo ambiente nella dashboard di monitoraggio dell'ambiente.
Per andare alla dashboard di Monitoring per il tuo ambiente:
Nella console Google Cloud , vai alla pagina Ambienti.
Fai clic sul nome del tuo ambiente.
Vai alla scheda Monitoraggio.
Monitorare le metriche di CPU e memoria dello scheduler
Le metriche di CPU e memoria dello scheduler Airflow ti aiutano a verificare se le prestazioni dello scheduler rappresentano un collo di bottiglia nelle prestazioni complessive di Airflow.

Nella dashboard di Monitoring, nella sezione Schedulers, osserva i grafici per gli scheduler 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%, potresti:
Se l'utilizzo della CPU dello scheduler supera l'80% per un periodo di tempo superiore a qualche punto percentuale 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 esecuzioni dei DAG. Se l'analisi dei DAG richiede molto tempo, viene consumata la capacità dello scheduler e le prestazioni delle esecuzioni dei DAG potrebbero ridursi.

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

Se un pod 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 relativi all'espulsione dei pod worker si verifica a causa di situazioni di esaurimento della memoria nei worker.
Nella dashboard di monitoraggio, nella sezione Worker, osserva i grafici Espulsioni di pod worker per il tuo ambiente.
Il grafico Utilizzo totale memoria worker mostra una prospettiva totale dell'ambiente. Un singolo worker può comunque superare il limite di memoria, anche se l'utilizzo della memoria è normale a livello di ambiente.
In base alle tue osservazioni, potresti:
- Aumenta la memoria disponibile per i worker.
- Ridurre la concorrenza dei worker. In questo modo, un singolo lavoratore gestisce meno attività contemporaneamente. In questo modo, ogni attività dispone di più memoria o spazio di archiviazione. Se modifichi la concorrenza dei worker, potresti anche voler aumentare il numero massimo di worker. In questo modo, il numero di attività che il tuo 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 di monitoraggio, nella sezione Worker, osserva i grafici relativi al numero di worker attivi e al numero di attività nella coda:
- Worker attivi
- Attività Airflow
Modifica in base alle tue osservazioni:
- Se l'ambiente raggiunge spesso il limite massimo di worker e allo stesso tempo il numero di attività nella coda Celery è costantemente elevato, potresti aumentare il numero massimo di worker.
Se si verificano lunghi ritardi nella pianificazione tra le attività, ma contemporaneamente l'ambiente non viene scalato fino al numero massimo di worker, è probabile che esista un'impostazione di Airflow che limita l'esecuzione e impedisce ai meccanismi di Cloud Composer di scalare l'ambiente. Poiché gli ambienti Cloud Composer 2 vengono scalati in base al numero di attività nella coda Celery, configura Airflow in modo che non limiti le attività in entrata nella coda:
- Aumentare la concorrenza dei worker. La concorrenza dei worker deve essere impostata su un valore superiore al numero massimo previsto di attività simultanee, 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 il numero massimo di esecuzioni attive per DAG se esegui lo stesso DAG più volte in parallelo, il che può portare Airflow a limitare l'esecuzione perché è stato raggiunto il limite massimo di esecuzioni attive per DAG.
Monitorare l'utilizzo di CPU e memoria dei worker
Monitora l'utilizzo totale di CPU e memoria aggregato per tutti i worker nel tuo ambiente per determinare se i worker Airflow utilizzano correttamente le risorse del tuo ambiente.

Nella dashboard di monitoraggio, nella sezione Worker, osserva i grafici relativi all'utilizzo di CPU e memoria da parte dei worker Airflow:
- Utilizzo totale CPU worker
- Utilizzo totale memoria worker
Questi grafici rappresentano l'utilizzo aggregato delle risorse; i singoli lavoratori potrebbero comunque raggiungere i limiti di capacità, anche se la visualizzazione aggregata mostra capacità di riserva.
Modifica in base alle tue osservazioni:
- Se l'utilizzo della memoria dei worker si avvicina al limite, ciò può causare l'eliminazione 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 worker, potresti 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 ha un maggiore controllo sulla capacità di cui è stato eseguito il 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 di CPU più elevata. In caso contrario, ti consigliamo di aumentare il numero di worker.
Monitorare 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 di Monitoring, 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, potrebbe significare che i worker nel tuo ambiente sono occupati a eseguire altre attività.
In un ambiente è sempre presente una coda, soprattutto durante i picchi di elaborazione. Tuttavia, se osservi un numero elevato di attività in coda o una tendenza crescente nel grafico, ciò potrebbe indicare che i worker non hanno capacità sufficiente per elaborare le attività o che Airflow sta limitando l'esecuzione delle attività.
Un numero elevato di attività in coda viene in genere osservato 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 complessivi del DAG. L'utilizzo del disco del database in genere non è motivo di preoccupazione perché lo spazio di archiviazione viene esteso automaticamente in base alle necessità.

Nella dashboard Monitoring, nella sezione SQL Database, 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ù di qualche punto percentuale del tempo totale, il database è sovraccarico e richiede lo scaling.
Le impostazioni delle dimensioni del database sono controllate dalla proprietà delle dimensioni dell'ambiente del tuo ambiente. Per scalare il database verso l'alto o verso il basso, modifica le dimensioni dell'ambiente in un livello diverso (Piccolo, Medio o Grande). L'aumento delle dimensioni dell'ambiente comporta un aumento dei costi.
Monitorare la latenza di pianificazione delle attività
Se la latenza tra le attività supera i livelli previsti (ad esempio, 20 secondi o più), ciò potrebbe indicare che l'ambiente non è in grado di gestire il carico di attività generate dalle esecuzioni 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 pianificatore è sovraccarico. Monitora la CPU e la memoria dello scheduler per rilevare eventuali problemi.
- Le opzioni di configurazione di Airflow limitano l'esecuzione. Prova ad aumentare la concorrenza dei worker, aumentare la concorrenza dei DAG o aumentare le esecuzioni attive massime per DAG.
- Non ci sono abbastanza worker per eseguire le attività. Prova a aumentare il numero massimo di worker.
Monitora CPU e 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 DAG.

Nella dashboard Monitoring, 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ù di qualche punto percentuale del tempo, valuta la possibilità di aumentare la CPU del server web.
- Se osservi un utilizzo elevato della memoria del server web, valuta la possibilità di aggiungere più 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à dello scheduler e la resilienza della pianificazione di Airflow.
Se aumenti il numero di scheduler, aumenta il traffico verso e dal database Airflow. Nella maggior parte degli scenari, ti consigliamo di utilizzare due scheduler Airflow. L'utilizzo di tre scheduler è necessario solo in rari casi che richiedono considerazioni speciali. La configurazione di più di tre pianificatori spesso comporta un calo delle prestazioni dell'ambiente.
Se hai bisogno di una pianificazione più rapida:
- Configura due scheduler 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 scheduler per impostare il numero di scheduler richiesto per il tuo ambiente.
gcloud
Segui i passaggi descritti in Modificare il numero di scheduler per impostare il numero di scheduler richiesto per il tuo ambiente.
L'esempio seguente imposta il numero di scheduler su due:
gcloud composer environments update example-environment \
--scheduler-count=2
Terraform
Segui i passaggi descritti in Modificare il numero di scheduler per impostare il numero di scheduler richiesto per il tuo ambiente.
L'esempio seguente imposta il numero di scheduler su due:
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
workloads_config {
scheduler {
count = 2
}
}
}
}
Modifica di CPU e memoria per gli scheduler
I parametri CPU e memoria sono per ogni scheduler nel tuo ambiente. Ad esempio, se il tuo ambiente ha due scheduler, la capacità totale è il doppio del numero specificato di CPU e memoria.
Console
Segui i passaggi descritti in Modifica i parametri di scalabilità e prestazioni di worker, scheduler e server web per impostare CPU e memoria per gli scheduler.
gcloud
Segui i passaggi descritti in Modifica i parametri di scalabilità e rendimento di worker, scheduler e server web per impostare CPU e memoria per gli scheduler.
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 i passaggi descritti in Modifica i parametri di scalabilità e prestazioni di worker, scheduler e server web per impostare CPU e memoria per gli scheduler.
L'esempio seguente modifica la CPU e la memoria per gli scheduler. Puoi omettere gli attributi CPU o Memoria, a seconda delle necessità.
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 al tuo ambiente di scalare automaticamente 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 scheduler 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 worker può essere utile quando il grafico di utilizzo del worker indica un utilizzo della memoria molto basso.
L'aumento della memoria dei worker consente loro di gestire più attività contemporaneamente o attività che richiedono molta memoria. Potrebbe risolvere il problema delle espulsioni dei pod worker.
La riduzione della CPU worker può essere utile quando il grafico di utilizzo della CPU worker indica che le risorse CPU sono altamente sovraallocate.
L'aumento della CPU del 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 del 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 sono per 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 Modifica i parametri di scalabilità e prestazioni di worker, scheduler e server web per impostare CPU e 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 CPU e memoria per i worker.
L'esempio seguente modifica la CPU e la memoria per i worker. Se necessario, puoi omettere l'attributo CPU o memoria.
gcloud composer environments update example-environment \
--worker-memory=3.75 \
--worker-cpu=2
Terraform
Segui i passaggi descritti in Modifica i parametri di scalabilità e prestazioni di worker, scheduler e server web per impostare CPU e memoria per i worker.
L'esempio seguente modifica la CPU e la memoria per i worker. Se necessario, puoi omettere il parametro CPU o memoria.
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, il che causa un tempo di inattività temporaneo del server web. Ti consigliamo di apportare modifiche al di fuori delle normali ore di utilizzo.
Console
Segui i passaggi descritti in Modifica i parametri di scalabilità e prestazioni di worker, scheduler e server web per impostare CPU e memoria per il server web.
gcloud
Segui i passaggi descritti in Modifica i parametri di scalabilità e prestazioni di worker, scheduler e server web per impostare CPU e memoria per il server web.
Il seguente esempio modifica la CPU e la memoria per il server web. Puoi omettere gli attributi CPU o memoria, a seconda delle necessità.
gcloud composer environments update example-environment \
--web-server-cpu=2 \
--web-server-memory=3.75
Terraform
Segui i passaggi descritti in Modifica i parametri di scalabilità e prestazioni di worker, scheduler e server web per impostare CPU e memoria per il server web.
Il seguente esempio modifica la CPU e la memoria per il server web. Puoi omettere gli attributi CPU o memoria, a seconda delle necessità.
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 Large a Medium o da Medium a Small) quando le metriche di utilizzo del database mostrano una sottoutilizzazione sostanziale.
Se noti un utilizzo elevato del database Airflow, valuta la possibilità di aumentare le dimensioni dell'ambiente.
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.
L'esempio seguente modifica le dimensioni dell'ambiente in Medio.
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.
L'esempio seguente modifica le dimensioni dell'ambiente in Medio.
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
environment_size = "medium"
}
}
Modifica dell'intervallo di visualizzazione della directory DAG
L'aumento dell'intervallo di elenco delle directory DAG riduce il carico dello scheduler associato al rilevamento 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ù rapidamente 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 di inserzione | 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.
Ti consigliamo di aumentare questo intervallo quando hai un numero elevato di DAG che non cambiano troppo spesso o quando 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 DAG | Il valore predefinito, in secondi, è 30 . |
Contemporaneità worker
Le prestazioni di concorrenza e la capacità di scalabilità automatica del tuo ambiente sono correlate 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 regolazioni personalizzate.
Considerazioni sul rendimento della concorrenza dei worker
Il parametro [celery]worker_concurrency
definisce il numero di attività
che un singolo worker può prelevare dallacoda di attivitàà.
La velocità di esecuzione delle attività dipende da più fattori, come CPU, memoria e tipo di lavoro del worker.
Scalabilità automatica dei worker
Cloud Composer monitora la coda di attività e genera worker aggiuntivi per
recuperare le attività in attesa. Se imposti [celery]worker_concurrency
su un valore elevato,
ogni worker può eseguire 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, se [celery]worker_concurrency
è impostato su 100 e ci sono 200 attività in coda, ogni worker preleverà 100 attività. In questo modo la coda rimane vuota e non viene attivata la scalabilità automatica. Se il completamento di queste attività richiede molto tempo, potrebbero verificarsi problemi di prestazioni.
Tuttavia, se le attività sono piccole e veloci da eseguire, un valore elevato nell'impostazione
[celery]worker_concurrency
potrebbe portare a uno scale up 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 prima che i nuovi worker siano pronti, un worker esistente
può riprenderle. Il risultato finale è che lo scalabilità automatica crea nuovi worker, ma
non ci sono attività per loro.
La regolazione di [celery]worker_concurrency
per casi speciali deve basarsi
sui 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ù rapide e più 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 worker e causare problemi di prestazioni.
Se noti problemi di prestazioni dovuti a un elevato volume di traffico di sincronizzazione dei log, riduci i valori di [celery]worker_concurrency
e regola invece 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 può in genere 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 una percentuale bassa di CPU e memoria contemporaneamente.
Diminuisci questo parametro quando ricevi espulsioni di pod; in questo modo si riduce il numero di attività che un singolo worker tenta di elaborare. In alternativa, puoi aumentare la memoria del worker.
Per impostazione predefinita, la concorrenza dei worker viene impostata in base al numero di istanze di attività simultanee leggere che un worker può ospitare. Ciò significa che il suo valore dipende dai limiti delle risorse dei worker. Il valore di 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 contemporaneità del DAG
La concorrenza DAG definisce il numero massimo di istanze di attività consentite per l'esecuzione contemporaneamente in ogni DAG. Aumentalo quando i DAG eseguono un numero elevato di attività simultanee. Se questa impostazione è bassa, lo scheduler ritarda l'inserimento di altre attività nella coda, il che riduce anche l'efficienza dello scaling automatico 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
- Override delle configurazioni Airflow
- Monitora l'integrità e le prestazioni dell'ambiente con le metriche chiave