Ottimizzazione di prestazioni e costi dell'ambiente

Cloud Composer 1 | Cloud Composer 2

Questa pagina spiega come ottimizzare i parametri di scalabilità e prestazioni del tuo ambiente in base alle esigenze del tuo progetto, in modo da migliorare le prestazioni e ridurre i costi per le risorse che non vengono utilizzate nel tuo ambiente.

Altre pagine su scalabilità e ottimizzazione:

Panoramica del processo di ottimizzazione

Le modifiche ai parametri dell'ambiente possono influire su molti aspetti delle prestazioni dell'ambiente. Ti consigliamo di ottimizzare l'ambiente nelle iterazioni:

  1. Inizia con le preimpostazioni di ambiente.
  2. Esegui i DAG.
  3. Osserva le prestazioni del tuo ambiente.
  4. Regola i parametri di scalabilità e prestazioni dell'ambiente, quindi ripeti dal passaggio precedente.

Inizia con le preimpostazioni di ambiente

Quando crei un ambiente nella console Google Cloud, puoi selezionare una delle tre preimpostazioni di ambiente. Queste preimpostazioni impostano la scalabilità iniziale e la configurazione delle prestazioni del tuo ambiente. Dopo aver creato l'ambiente, puoi modificare tutti i parametri di scalabilità e prestazioni forniti da un valore preimpostato.

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

Le prestazioni del tuo ambiente dipendono dall'implementazione di DAG specifici eseguiti nel tuo ambiente. La seguente tabella elenca 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 Numero massimo di esecuzioni di DAG simultanee Numero massimo di attività simultanee
Piccola 50 15 18
Media 250 60 100
Di grandi dimensioni 1000 250 400

Ad esempio, un ambiente deve eseguire 40 DAG. I DAG devono essere eseguiti contemporaneamente, con un'attività attiva ciascuno. Questo ambiente utilizzerebbe quindi un precaricamento Medium, perché il numero massimo di attività e esecuzioni di DAG in parallelo supera le stime consigliate per il preset Small.

Esegui i DAG

Una volta creato l'ambiente, carica i DAG al suo interno. 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 vengono eseguiti contemporaneamente.

Osserva le prestazioni dell'ambiente

Questa sezione è incentrata sugli aspetti più comuni relativi all'ottimizzazione della capacità e delle prestazioni di Cloud Composer 2. Ti consigliamo di seguire questa guida passo passo, perché le considerazioni sul rendimento più comuni vengono affrontate per prime.

Vai alla dashboard di Monitoring

Puoi monitorare le metriche sulle prestazioni del tuo ambiente nella dashboard di Monitoring del tuo ambiente.

Per accedere alla dashboard di Monitoring per il tuo ambiente:

  1. Nella console Google Cloud, vai alla pagina Ambienti.

    Vai a Ambienti

  2. Fai clic sul nome dell'ambiente.

  3. Vai alla scheda Monitoring.

Monitora le metriche di CPU e memoria dello scheduler

Le metriche di CPU e memoria dello scheduler Airflow consentono di verificare se le prestazioni dello scheduler sono un collo di bottiglia nelle prestazioni generali di Airflow.

Grafici per gli scheduler Ariflow
Figura 1. Grafici per gli scheduler Airflow (fai clic per ingrandire)

Nella sezione Scheduler della dashboard di Monitoring, osserva i grafici relativi agli scheduler Airflow del tuo ambiente:

  • CPU totale utilizzata dagli scheduler
  • Memoria totale utilizzata dagli scheduler

Adattati in base alle tue osservazioni:

Monitora il tempo di analisi totale per tutti i file DAG

Gli scheduler analizzano i DAG prima di pianificare le esecuzioni di DAG. Se l'analisi dei DAG richiede molto tempo, questo consuma la capacità dello scheduler e potrebbe ridurre le prestazioni delle esecuzioni di DAG.

Grafico del tempo totale di analisi dei DAG
Figura 2. Grafico del tempo di analisi dei DAG (fai clic per ingrandire)

Nella sezione Statistiche DAG della dashboard di Monitoring, osserva i grafici per il tempo totale di analisi dei DAG.

Se il numero supera i 10 secondi circa, i tuoi scheduler potrebbero essere sovraccaricati con l'analisi DAG e non possono eseguire i DAG in modo efficace. La frequenza predefinita di analisi dei DAG in Airflow è di 30 secondi. Se il tempo di analisi dei DAG supera questa soglia, i cicli di analisi iniziano a sovrapporsi e la capacità dello scheduler viene esaurita.

In base alle tue osservazioni, potresti voler:

Monitora le eliminazioni dei pod dei worker

L'eliminazione dei pod può verificarsi quando un determinato pod nel cluster del tuo ambiente raggiunge i limiti delle risorse.

Grafico delle rimozioni dei pod worker
Figura 3. Grafico che mostra le eliminazioni dei pod dei worker (fai clic per ingrandire)

Se un pod worker Airflow viene rimosso, tutte le istanze delle attività in esecuzione su quel pod vengono interrotte e successivamente contrassegnate come non riuscite da Airflow.

La maggior parte dei problemi relativi all'eliminazione dei pod dei worker si verifica a causa di situazioni di esaurimento della memoria dei worker.

Nella sezione Worker della dashboard di Monitoring, osserva i grafici relativi alle eliminazioni dei 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 è integro a livello di ambiente.

In base alle tue osservazioni, potresti voler:

Monitora i lavoratori attivi

Il numero di worker nel tuo ambiente scala automaticamente in risposta alle attività in coda.

Grafici dei lavoratori attivi e delle attività in coda
Figura 4. Grafici dei lavoratori attivi e delle attività in coda (fai clic per ingrandire)

Nella sezione Worker della dashboard di Monitoring, osserva i grafici relativi al numero di worker attivi e al numero di attività in coda:

  • Worker attivi
  • Attività Airflow

Adattati in base alle tue osservazioni:

  • Se l'ambiente raggiunge spesso il limite massimo per i worker e allo stesso tempo il numero di attività nella coda di Celery è costantemente elevato, potresti voler aumentare il numero massimo di worker.
  • Se si verificano lunghi ritardi di pianificazione tra le attività, ma allo stesso tempo l'ambiente non esegue lo scale up al numero massimo di worker, è probabile che un'impostazione Airflow limiti l'esecuzione e impedisca ai meccanismi di Cloud Composer di scalare l'ambiente. Poiché gli ambienti Cloud Composer 2 scalano in base al numero di attività nella coda di Celery, configura Airflow in modo da non limitare le attività in coda:

    • Aumenta la contemporaneità dei worker. La contemporaneità 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.
    • Aumentare la contemporaneità dei DAG, se un singolo DAG esegue un numero elevato di attività in parallelo, il che può portare a raggiungere 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 Airflow a limitare l'esecuzione perché viene raggiunto il limite massimo di esecuzioni attive per DAG.

Monitora l'utilizzo di CPU e memoria dei worker

Monitora l'utilizzo totale di CPU e memoria per tutti i worker nel tuo ambiente per determinare se i worker di Airflow utilizzano correttamente le risorse del tuo ambiente.

Grafici della CPU e della memoria dei worker
Figura 5. Grafici della CPU e della memoria dei worker (fai clic per ingrandire)

Nella sezione Worker della dashboard di Monitoring, osserva i grafici relativi all'utilizzo di CPU e memoria da parte dei worker di Airflow:

  • Utilizzo totale CPU worker
  • Utilizzo totale memoria worker

Questo grafico rappresenta 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.

Adattati in base alle tue osservazioni:

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.

Grafico che mostra le attività in esecuzione e in coda
Figura 6. Grafico che mostra le attività in esecuzione e in coda (fai clic per ingrandire)

Nella sezione Worker della dashboard di Monitoring, osserva il grafico Attività Airflow per il tuo ambiente.

Le attività in coda sono in attesa di essere eseguite dai worker. Se nel tuo ambiente sono presenti attività in coda, è possibile che i worker siano impegnati nell'esecuzione di altre attività.

Alcune code sono sempre presenti in un ambiente, soprattutto durante i picchi di elaborazione. Tuttavia, se noti un numero elevato di attività in coda o una tendenza crescente nel grafico, questo potrebbe indicare che i worker non hanno una 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:

Monitoraggio dell'utilizzo della CPU e della memoria del database

I problemi di prestazioni dei database Airflow possono causare problemi generali di esecuzione dei DAG. In genere l'utilizzo del disco del database non è motivo di preoccupazione, perché lo spazio di archiviazione viene esteso automaticamente a seconda delle esigenze.

Grafici della CPU e della memoria del database
Figura 7. Grafici della CPU e della memoria del database (fai clic per ingrandire)

Nella sezione Worker della dashboard di Monitoring, 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 metà del tempo totale, il database è sovraccarico e richiede scalabilità.

Le impostazioni delle dimensioni del database sono controllate dalla proprietà delle dimensioni dell'ambiente del tuo ambiente. Per fare lo scale up o lo scale down del database, modifica le dimensioni dell'ambiente impostandole su un livello diverso (Small, Medium o Large). Aumentando le dimensioni dell'ambiente aumentano i costi dell'ambiente.

Monitora la latenza della pianificazione delle attività

Se la latenza tra le attività supera i livelli previsti (ad esempio, 20 secondi o più), è possibile che l'ambiente non sia in grado di gestire il carico di attività generate dalle esecuzioni di DAG.

Grafico della latenza delle attività (UI di Airflow)
Figura 8. Grafico della latenza delle attività, UI di Airflow (fai clic per ingrandire)

Puoi visualizzare il grafico della latenza della pianificazione delle attività nell'interfaccia utente di Airflow del tuo ambiente.

In questo esempio, i ritardi (2,5 e 3,5 secondi) rientrano ben entro i limiti accettabili, ma latenze significativamente più elevate potrebbero indicare che:

Monitora CPU e memoria del server web

Le prestazioni del server web di Airflow influiscono sulla UI di Airflow. Non è frequente che il server web si sovraccarichi. In questo caso, le prestazioni della UI di Airflow potrebbero peggiorare, ma ciò non influisce sulle prestazioni delle esecuzioni di DAG.

Grafici della CPU e della memoria del server web
Figura 9. Grafici della CPU e della memoria del server web (fai clic per ingrandire)

Nella sezione Server web della dashboard di Monitoring, osserva i grafici relativi al server web Airflow:

  • Utilizzo CPU server web
  • Utilizzo memoria server web

In base alle tue osservazioni:

Regola i parametri di scalabilità e prestazioni dell'ambiente

Cambia il numero di scheduler

La regolazione del numero di scheduler migliora la capacità e la resilienza degli scheduler della pianificazione di Airflow.

L'aumento del numero di scheduler determina l'aumento del traffico da e verso il database Airflow. Ti consigliamo di utilizzare due scheduler Airflow nella maggior parte degli scenari. È necessario utilizzare più di due scheduler solo in rari casi che richiedono considerazioni speciali.

Se hai bisogno di una pianificazione più rapida:

Esempi:

Console

Segui i passaggi in Regolare il numero di scheduler per impostare il numero richiesto di scheduler per il tuo ambiente.

gcloud

Segui i passaggi in Regolare il numero di scheduler per 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 Regolare il numero di scheduler per 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
      }
    }
  }
}

Modifica della CPU e della memoria per gli scheduler

I parametri di CPU e memoria sono relativi a ogni scheduler nel tuo ambiente. Ad esempio, se il tuo ambiente ha due scheduler, la capacità totale è il doppio del numero di CPU e memoria specificato.

Console

Segui i passaggi in Regolare 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 Regolare 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 di 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 Regolare 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 di 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"
      }
    }
  }
}

Modifica il numero massimo di worker

L'aumento del numero massimo di worker consente al tuo ambiente di scalare automaticamente fino a un numero più elevato 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 per l'ambiente.

Esempi:

Console

Segui i passaggi in Regolare il numero minimo e massimo di worker per impostare il numero massimo richiesto di worker per il tuo ambiente.

gcloud

Segui i passaggi in Regolare il numero minimo e massimo di worker per impostare il numero massimo richiesto di worker per il tuo ambiente.

L'esempio seguente imposta il numero massimo di worker a sei:

gcloud composer environments update example-environment \
    --max-workers=6

Terraform

Segui i passaggi in Regolare il numero minimo e massimo di worker per impostare il numero massimo richiesto di worker per il tuo ambiente.

Nell'esempio seguente il numero massimo di scheduler è sei:

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    workloads_config {
      worker {
        max_count = "6"
      }
    }
  }
}

Cambia CPU e memoria del worker

  • La riduzione della memoria del worker può essere utile quando il grafico sull'utilizzo dei worker indica un utilizzo della memoria molto ridotto.

  • L'aumento della memoria del worker consente ai worker di gestire più attività contemporaneamente o di gestire quelle che richiedono molta memoria. Potrebbe risolvere il problema delle rimozioni dei pod worker.

  • La riduzione della CPU del worker può essere utile quando il grafico di utilizzo della CPU dei worker indica che le risorse della CPU sono fortemente allocate.

  • L'aumento della CPU worker consente ai worker di gestire più attività contemporaneamente e, in alcuni casi, di ridurre il tempo necessario per elaborare queste attività.

La modifica della CPU o della memoria dei worker riavvia i worker, con possibili conseguenze sulle attività in esecuzione. Ti consigliamo di farlo quando non sono in esecuzione DAG.

I parametri di CPU e memoria sono relativi a ogni worker nel tuo ambiente. Ad esempio, se il tuo ambiente ha quattro worker, la capacità totale è quattro volte superiore al numero di CPU e memoria specificato.

Console

Segui i passaggi descritti in Regolare 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 Regolare 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 omettere l'attributo di CPU o memoria, se necessario.

gcloud composer environments update example-environment \
  --worker-memory=3.75 \
  --worker-cpu=2

Terraform

Segui i passaggi descritti in Regolare 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. Puoi omettere il parametro della CPU o della memoria, se necessario.

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    workloads_config {
      worker {
        cpu = "2"
        memory_gb = "3.75"
      }
    }
  }
}

Cambia CPU e memoria del server web

La riduzione della CPU o della memoria del server web può essere utile quando il grafico sull'utilizzo del server web indica che il server web è 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 descritti in Regolare 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 Regolare i parametri di scalabilità e prestazioni di worker, scheduler 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 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 descritti in Regolare 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 di 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"
      }
    }
  }
}

Modifica 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 modificare le dimensioni dell'ambiente impostandole su una dimensione inferiore (ad esempio Da Grande a Medio o Da Medio a Piccolo) quando le metriche di utilizzo del database mostrano un sottoutilizzo sostanziale.
  • Valuta la possibilità di aumentare le dimensioni dell'ambiente se osservi l'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.

L'esempio seguente modifica le dimensioni dell'ambiente in Mezzo.

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 Mezzo.

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    environment_size = "medium"
  }
}

Modifica dell'intervallo dell'elenco delle directory DAG

L'aumento dell'intervallo per l'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 raramente.
  • Valuta la possibilità di diminuire questo intervallo se vuoi che Airflow reagisca più velocemente ai file DAG di cui è stato appena eseguito il deployment.

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 schede 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 bag DAG.

Valuta la possibilità di aumentare questo intervallo quando hai un numero elevato di DAG che non cambiano troppo spesso o se noti un carico dello scheduler elevato 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 dei DAG Il valore predefinito, in secondi, è 30.

Contemporaneità dei worker

Le prestazioni di contemporaneità e la capacità dell'ambiente di scalare automaticamente sono collegate a due impostazioni:

  • il numero minimo di worker Airflow
  • 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 contemporaneità dei worker

Il parametro [celery]worker_concurrency definisce il numero di attività che un singolo worker può scegliere dalla coda di attività. La velocità di esecuzione delle attività dipende da più fattori, ad esempio la CPU del worker, la memoria e il tipo di lavoro stesso.

Scalabilità automatica worker

Cloud Composer monitora la coda di attività e genera altri worker per selezionare le attività in attesa. L'impostazione di [celery]worker_concurrency su un valore elevato significa che ogni worker può gestire molte attività quindi, in determinate circostanze, la coda potrebbe non riempirsi mai, causando la mancata attivazione della scalabilità automatica.

Ad esempio, in un ambiente Cloud Composer con due worker Airflow, [celery]worker_concurrency impostato su 100 e attività 200 in coda, ogni worker verrebbe a prelevare 100 attività. La coda rimane vuota e la scalabilità automatica non viene attivata. Se queste attività richiedono molto tempo per essere completate, 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 una scalabilità eccessiva. Ad esempio, se l'ambiente ha 300 attività in coda, Cloud Composer inizia a creare nuovi worker. Tuttavia, se l'esecuzione delle prime 200 attività termina quando i nuovi worker sono pronti, un worker esistente può ritirarle. Il risultato è che la scalabilità automatica crea nuovi worker, che però non richiedono alcuna attività.

La regolazione di [celery]worker_concurrency per casi speciali dovrebbe basarsi sui tempi di esecuzione di picco delle attività e sui numeri delle code:

  • Per le attività il cui completamento richiede più tempo, i worker non dovrebbero 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 dispongono di un componente che sincronizza i log di esecuzione delle attività con i bucket Cloud Storage. Un elevato numero di attività simultanee eseguite da un singolo worker porta a un elevato numero di richieste di sincronizzazione. Questo 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 modifica invece il numero minimo di worker di Airflow.

Modifica contemporaneità dei worker

La modifica di questo parametro regola il numero di attività che un singolo worker può eseguire contemporaneamente.

Ad esempio, un worker con CPU 0,5 può in genere gestire 6 attività simultanee; un ambiente con tre di questi worker può gestire fino a 18 attività simultanee.

  • Aumenta questo parametro quando ci sono attività in attesa in coda e i tuoi worker utilizzano contemporaneamente una bassa percentuale di CPU e memoria.

  • Riduci questo parametro quando vengono rimosse le estensioni dei pod. In questo modo viene ridotto il numero di attività che un singolo worker tenta di elaborare. In 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 compreso tra 32, 12 * worker_CPU e 6 * worker_memory.
  • Nelle versioni di Airflow precedenti alla 2.6.3, un valore minimo compreso tra 32, 12 * worker_CPU e 8 * 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 0,5 CPU e 4 GB di memoria ciascuno, la contemporaneità dei worker è impostata su 6. Il valore di contemporaneità 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 contemporaneità dei worker

Modifica la contemporaneità dei DAG

La contemporaneità dei DAG definisce il numero massimo di istanze di attività che possono essere eseguite contemporaneamente in ogni DAG. e aumentala quando i DAG eseguono un numero elevato di attività simultanee. Se questa impostazione è bassa, lo scheduler ritarda la messa in coda di altre attività, il che riduce anche l'efficienza della scalabilità automatica 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 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 diversi, questo attributo consente allo scheduler di avviare tali 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 il numero massimo di esecuzioni attive per DAG Il valore predefinito è 25

Passaggi successivi