Ottimizzazione di prestazioni e costi dell'ambiente

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:

Panoramica della procedura di ottimizzazione

Apportare modifiche ai parametri dell'ambiente può influire su molti aspetti della le prestazioni del tuo ambiente. Ti consigliamo di ottimizzare l'ambiente in iterazioni:

  1. Inizia con i predefiniti di ambiente.
  2. Esegui i DAG.
  3. Osserva le prestazioni del tuo ambiente.
  4. Modifica la scala e i parametri di rendimento dell'ambiente, quindi ripeti il passaggio precedente.

Inizia con i predefiniti di 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 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 DAG consumino più risorse, modifica le stime di conseguenza.

Immagine predefinite consigliata DAG totali Numero massimo in simultanea Esecuzioni di DAG Task concorrenziali massime
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 una singola attività attiva ciascuno. 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. 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 allo stesso tempo, assicurati di controllare le prestazioni dell'ambiente quando I DAG vengono eseguiti contemporaneamente.

Osservare il rendimento dell'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 Monitoraggio

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:

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

    Vai ad 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 di Airflow aiutano a controllare se le prestazioni dello scheduler rappresentano un collo di bottiglia nelle prestazioni complessive di Airflow.

Grafici per gli scheduler di Airflow
Figura 1. Grafici per gli scheduler Airflow (fai clic per ingrandire)
di Gemini Advanced.

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:

Monitora il tempo totale di analisi per tutti i file DAG

Gli scheduler analizzano i DAG prima di pianificare le relative esecuzioni. Se i DAG richiedono molto tempo da analizzare, questo consuma la capacità dello scheduler e potrebbe ridurre le prestazioni delle esecuzioni di DAG.

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

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

Se il numero supera circa 10 secondi, è possibile che gli pianificatori siano sovraccaricati con l'analisi del DAG e non possano 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:

Monitora le eliminazioni dei pod dei worker

L'eliminazione dei pod può verificarsi quando un determinato pod nel cluster dell'ambiente raggiunge i limiti di risorse.

Grafico eliminazioni dei pod worker
Figura 3. Grafico che mostra le eliminazioni dei pod worker (fai clic per ingrandire)
di Gemini Advanced.

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 della memoria dei worker mostra una prospettiva totale del completamente gestito di Google Cloud. Un singolo worker può comunque superare il limite di memoria, anche se l'utilizzo della memoria sia integro 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 singolo lavoratore gestisce meno attività contemporaneamente. Ciò fornisce più memoria o spazio di archiviazione 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.

Monitorare i worker attivi

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

Grafici sui lavoratori attivi e sulle attività in coda
Figura 4. Grafici sui lavoratori attivi e sulle attività in coda (fai clic per ingrandire)
di Gemini Advanced.

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

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.
  • In caso di lunghi ritardi nella pianificazione tra le attività, ma nello stesso momento in cui l'ambiente non fa lo scale up fino al numero massimo worker, è probabile che esista un'impostazione Airflow che limita dell'esecuzione e impedisce la scalabilità dei meccanismi di Cloud Composer dell'ambiente. Poiché gli ambienti Cloud Composer 2 si scalano in base al numero di attività nella coda di Celery, configura Airflow in modo da non limitare le attività durante l'inserimento nella coda:

    • Aumenta la contemporaneità dei worker. Lavoratore la contemporaneità deve essere impostata su un valore superiore a quello previsto di attività simultanee diviso per il numero massimo di di Google Cloud 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 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 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.

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

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:

Monitorare le attività in esecuzione e in coda

Puoi monitorare il numero di attività in coda e in esecuzione per verificarne 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 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à.

Alcune attività di accodamento sono sempre presenti in un ambiente, in particolare 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.

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

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à dimensione dell'ambiente. 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). Aumentando le dimensioni dell'ambiente, i costi aumentano.

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

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

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 ampiamente nei limiti accettabili, ma latenze notevolmente superiori potrebbero indicare che:

Monitora la CPU e la memoria del server web

Le prestazioni del server web di Airflow influiscono sull'interfaccia utente 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.

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

Nella dashboard di Monitoring, nella sezione Server web, osserva 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

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:

Esempi:

Console

Segui i passaggi in Regola il numero di scheduler da impostare il numero richiesto di scheduler 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 pianificatori 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 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.

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. Tu possono 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"
      }
    }
  }
}

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 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 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"
      }
    }
  }
}

Modifica CPU e memoria dei 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 per gestire attività che richiedono molta 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 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 di CPU e memoria si riferiscono a ciascun 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 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 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. 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 è sottoutilizzato in modo continuo.

La modifica dei parametri del server web riavvia il server web, che causa 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. Tu può 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"
      }
    }
  }
}

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

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.

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 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 raramente.
  • Valuta la possibilità di ridurre questo intervallo se vuoi che Airflow reagisca più velocemente a dei file DAG di cui è stato appena eseguito il deployment.

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 all'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

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 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 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 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. Ma se il primo L'esecuzione di 200 attività termina quando i nuovi worker sono pronti, un worker esistente possono rilevarle. Il risultato finale è che la scalabilità automatica crea nuovi worker, ma 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 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 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 porta a un elevato numero di richieste di sincronizzazione. Ciò potrebbe sovraccaricare il tuo worker e causare problemi di prestazioni.

Se riscontri problemi di prestazioni a causa di un numero elevato di sincronizzazione dei log abbassa i valori di [celery]worker_concurrency e modifica il numero minimo di worker di 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 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 In 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 e 6 * worker_memory.
  • Nelle versioni Airflow precedenti alla 2.6.3, un valore minimo pari a 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. Per 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 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 concorrenza DAG definisce il numero massimo di istanze di attività consentite in esecuzione contemporaneamente in ogni DAG. Aumentalo quando i tuoi DAG eseguono un numero elevato 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 del seguente Airflow di configurazione:

Sezione Chiave Valore Note
core max_active_tasks_per_dag Nuovo valore per la concorrenza DAG Il valore predefinito è 16

Aumenta 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, 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