Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Questa pagina spiega come ottimizzare la scalabilità e le prestazioni del tuo ambiente alle esigenze del tuo progetto, in modo da migliorare le prestazioni ridurre i costi delle risorse che non vengono utilizzate completamente gestito di Google Cloud.
Altre pagine su scalabilità e ottimizzazione:
- Per informazioni sulla scalabilità degli ambienti, consulta Ambienti di scalabilità.
- Per informazioni su come funziona la scalabilità dell'ambiente, consulta Scalabilità dell'ambiente.
- Per un tutorial sul monitoraggio delle metriche chiave dell'ambiente, consulta Monitora l'integrità e le prestazioni dell'ambiente con 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 iterazioni:
- Inizia con i predefiniti di ambiente.
- Esegui i DAG.
- Osserva le prestazioni del tuo ambiente.
- Regola i parametri di scala e prestazioni dell'ambiente, poi ripeti dall'inizio al passaggio precedente.
Inizia con i predefiniti di ambiente
Quando crei un ambiente nella console Google Cloud, puoi: seleziona una delle tre preimpostazioni di ambiente. Queste preimpostazioni impostano la scala iniziale la configurazione delle prestazioni dell'ambiente; dopo aver creato dell'ambiente di rete, puoi modificare tutti i parametri di scalabilità e prestazioni forniti una preimpostazione.
Ti consigliamo di iniziare con una delle preimpostazioni, in base alle seguenti stime:
- Numero totale di DAG di cui prevedi di eseguire il deployment nell'ambiente
- Numero massimo di esecuzioni di DAG simultanee
- Numero massimo di attività simultanee
Il rendimento dell'ambiente dipende dall'implementazione di DAG specifici che esegui al suo interno. La tabella seguente elenca le stime in base al consumo medio delle risorse. Se prevedi che i tuoi DAG consumino più risorse e modifica le stime di conseguenza.
Consigliate preimpostata | DAG totali | Numero massimo in simultanea Esecuzioni di DAG | 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 con la stessa ciascuna con un'attività attiva. Questo ambiente utilizza quindi un Mezzo predefinito, perché il numero massimo di esecuzioni e attività di DAG simultanee supera il valore le stime consigliate per la temperatura preimpostata piccola.
Esegui i DAG
Una volta creato l'ambiente, carica i DAG che le sono assegnati. Esegui i DAG e osserva le prestazioni dell'ambiente.
Consigliamo di eseguire i DAG in base a una pianificazione che rifletta la vita reale dei tuoi DAG. Ad esempio, se vuoi eseguire più DAG allo stesso tempo, assicurati di controllare le prestazioni dell'ambiente quando I DAG vengono eseguiti contemporaneamente.
Osserva le prestazioni del tuo ambiente
Questa sezione è incentrata sulle funzionalità più comuni di Cloud Composer 2 aspetti dell'ottimizzazione delle prestazioni. Ti consigliamo di seguire questa guida passo passo perché vengono trattate per prime le considerazioni sulle prestazioni più comuni.
Vai alla dashboard di Monitoring
Puoi monitorare le metriche delle prestazioni del tuo ambiente nella scheda Monitoring dashboard 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 Monitoring.
Monitora le metriche CPU e memoria dell'organizzatore
Le metriche di CPU e memoria dello scheduler di Airflow aiutano a controllare 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 relativi gli scheduler Airflow del tuo ambiente:
- CPU totale utilizzata dagli scheduler
- Memoria totale utilizzata dagli scheduler
Regola in base alle tue osservazioni:
Se l'utilizzo della CPU dello scheduler è costantemente inferiore al 30%-35%, potresti voler:
Se l'utilizzo della CPU dello scheduler supera l'80% per un tempo superiore a qualche percentuale del tempo totale, puoi provare a:
Monitora il tempo totale di analisi per tutti i file DAG
Gli scheduler analizzano i DAG prima di pianificare le esecuzioni dei DAG. Se i DAG richiedono molto tempo da analizzare, questo consuma la capacità dello scheduler e potrebbe ridurre le prestazioni delle esecuzioni di DAG.
Nella dashboard Monitoraggio, nella sezione Statistiche DAG, osserva i grafici relativi al tempo di analisi totale del DAG.
Se il numero supera i 10 secondi circa, i programmi di pianificazione potrebbero essere sovraccarichi di l'analisi dei DAG e non può eseguire i DAG in modo efficace. L'analisi dei DAG predefinita la frequenza in Airflow è 30 secondi; se il tempo di analisi dei DAG supera questa soglia, i cicli di analisi iniziano a sovrapporsi, causando un'esaurimento della capacità dello scheduler.
In base alle tue osservazioni, ti consigliamo di:
- Semplifica i DAG, incluse le loro dipendenze Python.
- Aumenta l'intervallo di analisi dei file DAG e l'intervallo di elenco delle directory DAG.
- Aumenta il numero di scheduler.
- Aumenta la CPU degli scheduler.
Monitorare le eliminazioni dei pod di worker
L'eliminazione dei pod può verificarsi quando un determinato pod nel cluster dell'ambiente raggiunge i limiti di risorse.
Se un pod worker Airflow viene rimosso, tutte le istanze delle attività in esecuzione su quel pod pod vengono interrotti e successivamente contrassegnati come non riusciti da Airflow.
La maggior parte dei problemi relativi all'eliminazione dei pod dei worker si verifica a causa 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, potresti voler:
- Aumenta la memoria disponibile per i lavoratori.
- Riduci la concorrenza dei worker. In questo modo, un worker singolo gestisce meno attività contemporaneamente. In questo modo, avrai più memoria o stoccaggio per ogni singola attività. Se modifichi la contemporaneità 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 contemporaneità dei worker da 12 a 6, potresti voler raddoppiare il numero massimo di worker.
Monitora i worker attivi
Il numero di worker nel tuo ambiente scala automaticamente in risposta a le attività in coda.
Nella sezione Worker della dashboard di Monitoring, osserva grafici relativi al numero di worker attivi e al numero di attività in coda:
- Worker attivi
- Attività Airflow
Regola in base alle tue osservazioni:
- Se l'ambiente raggiunge spesso il limite massimo per i worker e mentre il numero di attività nella coda Celery è costantemente elevato, può essere utile 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 riduce la velocità di esecuzione e impedisce ai meccanismi di Cloud Composer di eseguire il ridimensionamento dell'ambiente. Poiché gli ambienti Cloud Composer 2 si scalano in base al numero di attività nella coda di Celery, configura Airflow in modo che non riduca la velocità delle attività durante l'inserimento nella coda:
- Aumenta la contemporaneità dei worker. 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 contemporaneità dei DAG, se viene eseguito un singolo DAG di eseguire in parallelo un numero elevato di attività, il che può portare a il 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 a Airflow limitando l'esecuzione perché il numero massimo di esecuzioni attive per limite di DAG è raggiunto.
Monitora l'utilizzo della CPU e della memoria dei worker
Monitora l'utilizzo totale di CPU e memoria aggregato tra tutti i worker nel tuo per determinare se i worker di Airflow utilizzano le risorse del tuo ambiente in modo adeguato.
Nella sezione Worker della dashboard di Monitoring, osserva grafici dell'utilizzo di CPU e memoria da parte dei worker di Airflow:
- Utilizzo totale CPU worker
- Utilizzo totale memoria worker
Questi grafici rappresentano l'utilizzo aggregato delle risorse. i singoli worker raggiungeranno comunque i limiti di capacità, anche se la visualizzazione aggregata mostra e la capacità di archiviazione.
Regola 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 questo problema, aumenta la memoria dei worker.
- Se la memoria utilizzata è minima rispetto al limite e non sono presenti worker eliminazioni dei pod, ti consigliamo di riduzione della memoria dei worker.
Se l'utilizzo della CPU del worker si avvicina al limite (supera l'80% per più di percentuale del tempo totale), potrebbe essere utile:
- 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 contemporaneità dei worker, se le singole attività richiedono una maggiore allocazione della CPU. In caso contrario, ti consigliamo aumenta 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, ciò potrebbe significare che i worker nel tuo ambiente sono occupati l'esecuzione di altre attività.
Alcune attività di accodamento sono sempre presenti in un ambiente, in particolare durante i picchi di elaborazione. Tuttavia, se noti un aumento del di attività in coda o una tendenza in crescita nel grafico, questo potrebbe indicano che i worker non hanno capacità sufficiente 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 relativi alle prestazioni del database Airflow possono portare all'esecuzione complessiva del DAG che le applicazioni presentino problemi di prestazioni. L'utilizzo del disco del database in genere 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ù della piccola percentuale del totale nel tempo, il database è sovraccarico e richiede scalabilità.
Le impostazioni delle dimensioni del database sono controllate dalla proprietà delle dimensioni dell'ambiente completamente gestito di Google Cloud. Per fare lo scale up o lo scale down del database, cambia le dimensioni dell'ambiente impostandole su un livello diverso (Piccolo, Medio o Grande). L'aumento delle dimensioni dell'ambiente ne aumenta i costi.
Monitora la latenza della pianificazione delle attività
Se la latenza tra le attività supera i livelli previsti (ad esempio, 20 secondi o più), questo potrebbe indicare che l'ambiente non può gestire il carico di attività generate dalle esecuzioni dei DAG.
Puoi visualizzare il grafico della latenza della pianificazione delle attività nella UI di Airflow di del tuo ambiente.
In questo esempio, i ritardi (2,5 e 3,5 secondi) rientrano limiti, ma latenze significativamente più elevate potrebbero indicare che:
- Lo scheduler è sovraccarico. Monitora la CPU e la memoria dello scheduler per rilevare eventuali segni di potenziali problemi.
- Le opzioni di configurazione di Airflow limitano l'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 della UI di Airflow potrebbero si deteriorano, ma questo non influisce sulle prestazioni delle esecuzioni dei 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ù di qualche percentuale di tempo, Prendi in considerazione l'aumento della CPU del server web.
- Se noti un elevato utilizzo di memoria del server web, aggiungendo più memoria al server web.
Modificare i parametri di scalabilità e prestazioni dell'ambiente
Modificare il numero di pianificatori
La regolazione del numero di scheduler migliora la capacità degli scheduler e la resilienza della pianificazione Airflow.
Se aumenti il numero di scheduler, aumenta anche il traffico verso dal database Airflow. Consigliamo di utilizzare due scheduler Airflow nella maggior parte dei diversi scenari. L'utilizzo di tre pianificatori è necessario solo in rari casi che richiedono considerazioni speciali. Configurazione di più di tre scheduler spesso si riducono a prestazioni dell'ambiente.
Se hai bisogno di una pianificazione più rapida:
- Configurare due scheduler Airflow.
- Assegna più risorse di CPU e memoria agli scheduler 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 in Regola il numero di scheduler da impostare il numero richiesto di scheduler 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 in Regola il numero di scheduler da impostare il numero richiesto di scheduler 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
}
}
}
}
Modificare la CPU e la memoria per gli scheduler
I parametri di CPU e memoria si riferiscono a ogni scheduler nel tuo ambiente. Ad esempio, se il tuo ambiente ha due scheduler, la capacità totale è due volte il numero di CPU e memoria specificato.
Console
Segui i passaggi in Regola i parametri di scalabilità e prestazioni di worker, scheduler e server web per impostare CPU e memoria per gli scheduler.
gcloud
Segui i passaggi in Regola 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 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 in Regola 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 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 la scalabilità automatica a un numero più elevato di worker, se necessario.
La riduzione del numero massimo di worker riduce la capacità massima dell'ambiente di rete, ma può anche essere utile per ridurre i costi legati all'ambiente.
Esempi:
Console
Segui i passaggi in Regola il numero minimo e massimo di worker da impostare il numero massimo richiesto di worker per il tuo ambiente.
gcloud
Segui i passaggi in Regola il numero minimo e massimo di worker da impostare il numero massimo richiesto di worker 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 in Regola il numero minimo e massimo di worker da impostare il numero massimo richiesto di worker 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"
}
}
}
}
Modifica CPU e memoria dei worker
La riduzione della memoria dei worker può essere utile quando il grafico di utilizzo dei worker indica con un utilizzo della memoria molto ridotto.
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 del pod worker gli espulsioni.
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 worker consente ai worker di gestire più attività contemporaneamente e in e in alcuni casi riducono il tempo necessario per elaborare queste attività.
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. Per Ad esempio, se il tuo ambiente ha quattro worker, la capacità totale è quattro volte il numero di CPU e memoria specificato.
Console
Segui i passaggi in Regola 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 la CPU e la memoria per i worker.
L'esempio seguente modifica la CPU e la memoria per i worker. Tu può omettere l'attributo CPU o memoria, se necessario.
gcloud composer environments update example-environment \
--worker-memory=3.75 \
--worker-cpu=2
Terraform
Segui i passaggi in Regola 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. Tu omettendo 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"
}
}
}
}
Modifica CPU e memoria del server web
La riduzione della CPU o della memoria del server web può essere utile quando il server web il grafico di utilizzo indica che è costantemente sottoutilizzato.
La modifica dei parametri del server web riavvia il server web. causando un tempo di inattività temporaneo del server web. Ti consigliamo di apportare modifiche al di fuori del normale orario di utilizzo.
Console
Segui i passaggi in Regola 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 in Regola i parametri di scalabilità e prestazioni di worker, scheduler e server web da impostare CPU e memoria per il server web.
L'esempio seguente modifica la CPU e la memoria per il server web. Tu può omettere gli attributi di 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 in Regola i parametri di scalabilità e prestazioni di worker, scheduler e server web per impostare CPU e 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à di Cloud Composer i componenti di backend, come il database Airflow e la coda Airflow.
- Ti consigliamo di impostare una dimensione inferiore per l'ambiente (ad ad esempio Da Grande a Medio o Da Medio a Piccolo) quando le metriche di utilizzo del database un notevole sottoutilizzo.
Valuta la possibilità di aumentare le dimensioni dell'ambiente se noti l'utilizzo elevato di il database Airflow.
Console
Segui i passaggi in Regola le dimensioni dell'ambiente per impostare dimensioni dell'ambiente.
gcloud
Segui i passaggi in Regola le dimensioni dell'ambiente per impostare dimensioni dell'ambiente.
L'esempio seguente modifica le dimensioni dell'ambiente in Medie.
gcloud composer environments update example-environment \
--environment-size=medium
Terraform
Segui i passaggi in Regola le dimensioni dell'ambiente per impostare dimensioni dell'ambiente.
L'esempio seguente modifica le dimensioni dell'ambiente in Medie.
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
environment_size = "medium"
}
}
Modifica dell'intervallo di elenco delle directory dei DAG
L'aumento dell'intervallo di elenco delle directory dei DAG riduce il carico dello scheduler associati al rilevamento di nuovi DAG nel bucket dell'ambiente.
- Valuta la possibilità di aumentare questo intervallo se esegui il deployment di nuovi DAG raramente.
- 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 del seguente Airflow di configurazione:
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 con l'analisi continua dei DAG nel bag DAG.
Valuta la possibilità di aumentare questo intervallo quando hai un numero elevato di DAG che non cambiare troppo spesso o di osservare in generale un carico di scheduler elevato.
Per modificare questo parametro, esegui l'override del seguente Airflow di configurazione:
Sezione | Chiave | Valore | Note |
---|---|---|---|
scheduler |
min_file_process_interval |
Nuovo valore per l'intervallo di analisi dei DAG | Il valore predefinito, in secondi, è 30 . |
Contemporaneità worker
Le prestazioni della contemporaneità e la capacità dell'ambiente di scalare automaticamente sono connesse a due impostazioni:
- il numero minimo di worker Airflow
- Il parametro
[celery]worker_concurrency
I valori predefiniti forniti da Cloud Composer sono ottimali nella maggior parte dei casi d'uso, ma il tuo ambiente potrebbe trarre vantaggio aggiustamenti personalizzati.
Considerazioni sulle prestazioni della contemporaneità dei worker
Il parametro [celery]worker_concurrency
definisce il numero di attività
un singolo worker può prendere dalla coda di attività.
La velocità di esecuzione delle attività dipende da più fattori, come CPU worker, memoria
e il tipo di lavoro stesso.
Scalabilità automatica dei worker
Cloud Composer monitora la coda di attività e genera worker aggiuntivi per
rispondere a tutte 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
impostata su 100 e attività 200 in coda,
ogni lavoratore prendeva 100 attività. La coda rimane vuota e non viene attivata la scalabilità automatica. Se queste attività richiedono molto tempo, potrebbero verificarsi problemi di prestazioni.
Ma se le attività sono piccole e rapide da eseguire, un valore elevato
L'impostazione [celery]worker_concurrency
potrebbe causare un ridimensionamento overeager.
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 la scalabilità automatica crea nuovi worker,
non ci sono attività per loro.
La modifica di [celery]worker_concurrency
per i casi speciali deve essere basata
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 poter completamente la coda.
- Per attività più rapide e di dimensioni ridotte, aumenta il numero minimo Worker Airflow per evitare scale overeager.
Sincronizzazione dei log delle attività
I worker di Airflow dispongono di un componente che sincronizza i log di esecuzione delle attività di archiviazione dei bucket Cloud Storage. Un numero elevato di attività simultanee eseguite da parte di un singolo worker comporta un elevato numero 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 possono essere eseguiti contemporaneamente.
Ad esempio, un worker con CPU 0,5 può in genere gestire 6 attività simultanee; un con tre di questi worker possono gestire fino a 18 attività simultanee.
Aumenta questo parametro quando ci sono attività in attesa in coda e il tuo i worker utilizzano contemporaneamente una bassa percentuale di CPU e memoria.
Riduci questo parametro quando ottieni l'eliminazione dei pod. questo ridurrebbe il numero di attività che un singolo worker tenta di elaborare. Come alternativa, puoi aumentare la memoria del worker.
Il valore predefinito per la contemporaneità dei worker è uguale a:
- In Airflow 2.6.3 e versioni successive, un valore minimo pari a
32
,12 * worker_CPU
e6 * worker_memory
. - Nelle versioni Airflow precedenti alla 2.6.3, un valore minimo pari a
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. La
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 di contemporaneità dei worker
non dipendono 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 contemporaneità dei worker |
Modificare la concorrenza DAG
La contemporaneità dei DAG definisce il numero massimo di istanze di attività che è possibile eseguire contemporaneamente in ogni DAG. Aumentalo quando i tuoi DAG eseguono un numero elevato di per attività simultanee. Se questa impostazione è bassa, lo scheduler ritarda l'invio, mettere in coda attività, il che riduce anche l'efficienza dell'ambiente e la scalabilità automatica.
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 contemporaneità dei DAG | Il valore predefinito è 16 |
Aumenta il numero massimo di esecuzioni attive per DAG
Questo attributo definisce il numero massimo di esecuzioni di DAG attive per DAG. Quando lo stesso DAG deve essere eseguito più volte contemporaneamente, ad esempio con argomenti di input, questo attributo consente allo scheduler di avviare le esecuzioni parallelo.
Per modificare questo parametro, esegui l'override del seguente Airflow di configurazione:
Sezione | Chiave | Valore | Note |
---|---|---|---|
core |
max_active_runs_per_dag |
Nuovo valore per il numero massimo di esecuzioni attive per DAG | Il valore predefinito è 25 |
Passaggi successivi
- Scala gli ambienti
- Informazioni sulla scalabilità degli ambienti
- Esegui l'override delle configurazioni Airflow
- Monitora l'integrità e le prestazioni dell'ambiente con metriche chiave