Déboguer les problèmes de mémoire insuffisante et de manque d'espace de stockage dans les DAG

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Ce tutoriel explique comment déboguer un DAG Airflow ayant échoué dans Cloud Composer et diagnostiquer les problèmes liés aux ressources de nœud de calcul, tels que le manque de mémoire ou d'espace de stockage, à l'aide des journaux et de la surveillance de l'environnement.

Introduction

Ce tutoriel se concentre sur les problèmes liés aux ressources pour montrer comment déboguer un DAG.

Le manque de ressources de calcul allouées entraîne l'échec des DAG. Si une tâche Airflow manque de mémoire ou d'espace de stockage, une exception Airflow peut s'afficher, par exemple :

WARNING airflow.exceptions.AirflowException: Task received SIGTERM signal
INFO - Marking task as FAILED.

ou

Task exited with return code Negsignal.SIGKILL

Dans ce cas, nous vous recommandons généralement d'augmenter les ressources des nœuds de calcul Airflow ou de réduire le nombre de tâches par nœud de calcul. Toutefois, comme les exceptions Airflow peuvent être génériques, il peut être difficile d'identifier la ressource spécifique qui pose problème.

Ce tutoriel explique comment diagnostiquer la raison d'un échec de DAG et identifier le type de ressource qui pose problème en déboguant deux exemples de DAG qui échouent en raison d'un manque de mémoire et de stockage des nœuds de calcul.

Objectifs

  • Exécutez des DAG exemples qui échouent pour les raisons suivantes :

    • Manque de mémoire du nœud de calcul
    • Manque d'espace de stockage pour les nœuds de calcul
  • Diagnostiquer les raisons de l'échec

  • Augmenter les ressources de nœud de calcul allouées

  • Tester les DAG avec de nouvelles limites de ressources

Coûts

Ce tutoriel utilise les composants facturables suivants de Google Cloud :

Une fois que vous avez terminé ce tutoriel, évitez de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez Effectuer un nettoyage.

Avant de commencer

Cette section décrit les actions à effectuer avant de commencer le tutoriel.

Créer et configurer un projet

Pour ce tutoriel, vous avez besoin d'un projet Google Cloud. Configurez le projet comme suit :

  1. Dans la console Google Cloud , sélectionnez ou créez un projet :

    Accéder au sélecteur de projet

  2. Assurez-vous que la facturation est activée pour votre projet. Découvrez comment vérifier si la facturation est activée sur un projet.

  3. Assurez-vous que l'utilisateur de votre projet Google Cloud dispose des rôles suivants pour créer les ressources nécessaires :

    • Administrateur de l'environnement et des objets Storage (roles/composer.environmentAndStorageObjectAdmin)
    • Administrateur de Compute (roles/compute.admin)
    • Éditeur Monitoring (roles/monitoring.editor)

Activer les API pour votre projet.

Enable the Cloud Composer API.

Enable the API

Créer votre environnement Cloud Composer

Créez un environnement Cloud Composer 2.

Lorsque vous créez l'environnement, vous attribuez le rôle Extension de l'agent de service de l'API Cloud Composer v2 (roles/composer.ServiceAgentV2Ext) au compte de l'agent de service Composer. Cloud Composer utilise ce compte pour effectuer des opérations dans votre projet Google Cloud .

Vérifier les limites de ressources des nœuds de calcul

Vérifiez les limites de ressources des nœuds de calcul Airflow dans votre environnement :

  1. Dans la console Google Cloud , accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. Accédez à Ressources > Configuration des charges de travail > Worker.

  5. Vérifiez que les valeurs sont de 0,5 vCPU, 1,875 Go de mémoire et 1 Go de stockage. Il s'agit des limites de ressources des nœuds de calcul Airflow que vous allez utiliser dans les prochaines étapes de ce tutoriel.

Exemple : Diagnostiquer les problèmes de mémoire insuffisante

Importez l'exemple de DAG suivant dans l'environnement que vous avez créé lors des étapes précédentes. Dans ce tutoriel, ce DAG est nommé create_list_with_many_strings.

Ce DAG contient une tâche qui exécute les étapes suivantes :

  1. Crée une liste vide s.
  2. Exécute un cycle pour ajouter la chaîne More à la liste.
  3. Affiche la quantité de mémoire consommée par la liste et attend une seconde à chaque itération d'une minute.
import time

import airflow
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
import sys
from datetime import timedelta

default_args = {
    'start_date': airflow.utils.dates.days_ago(0),
    'retries': 0,
    'retry_delay': timedelta(minutes=10)
}

dag = DAG(
    'create_list_with_many_strings',
    default_args=default_args,
    schedule_interval=None)


def consume():
    s = []
    for i in range(120):
        for j in range(1000000):
            s.append("More")
        print(f"i={i}; size={sys.getsizeof(s) / (1000**3)}GB")
        time.sleep(1)


t1 = PythonOperator(
    task_id='task0',
    python_callable=consume,
    dag=dag,
    depends_on_past=False,
    retries=0
)

Déclencher l'exemple de DAG

Déclenchez l'exemple de DAG, create_list_with_many_strings :

  1. Dans la console Google Cloud , accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la colonne Serveur Web Airflow, cliquez sur le lien Airflow correspondant à votre environnement.

  3. Dans l'interface Web Airflow, sur la page DAG, dans la colonne Liens de votre DAG, cliquez sur le bouton Déclencher le DAG.

  4. Cliquez sur Déclencher.

  5. Sur la page DAG, cliquez sur la tâche que vous avez déclenchée et consultez les journaux de sortie pour vous assurer que votre DAG a commencé à s'exécuter.

Pendant l'exécution de la tâche, les journaux de sortie indiquent la taille de la mémoire (en Go) utilisée par le DAG.

Après quelques minutes, la tâche échouera, car elle dépasse la limite de mémoire de 1,875 Go du nœud de calcul Airflow.

Diagnostiquer le DAG ayant échoué

Si vous exécutiez plusieurs tâches au moment de l'échec, envisagez de n'en exécuter qu'une seule et de diagnostiquer la pression sur les ressources pendant ce temps pour identifier les tâches qui causent la pression sur les ressources et les ressources que vous devez augmenter.

Examiner les journaux des tâches Airflow

Notez que la tâche du DAG create_list_with_many_strings est à l'état Failed.

Examinez les journaux de la tâche. L'entrée de journal suivante s'affiche :

```none
{local_task_job.py:102} INFO - Task exited with return code
Negsignal.SIGKILL
```

`Netsignal.SIGKILL` might be an indication of your task using more memory
than the Airflow worker is allocated. The system sends
the `Negsignal.SIGKILL` signal to avoid further memory consumption.

Examiner les charges de travail

Examinez les charges de travail pour vérifier que la charge de votre tâche n'entraîne pas le dépassement de la limite de consommation de mémoire du nœud sur lequel le pod s'exécute :

  1. Dans la console Google Cloud , accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. Dans Ressources > Cluster GKE > Charges de travail, cliquez sur Afficher les charges de travail du cluster.

  5. Vérifiez si certains pods de charge de travail présentent des états semblables à ceux ci-dessous :

    Error with exit code 137 and 1 more issue.
    ContainerStatusUnknown with exit code 137 and 1 more issue
    

    Exit code 137 signifie qu'un conteneur ou un pod tente d'utiliser plus de mémoire que ce qui est autorisé. Le processus est arrêté pour éviter l'utilisation de mémoire.

Examiner la surveillance de l'état de l'environnement et de la consommation de ressources

Examinez la surveillance de l'état de l'environnement et de la consommation de ressources :

  1. Dans la console Google Cloud , accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Surveillance, puis sélectionnez Aperçu.

  4. Dans le panneau Présentation de l'environnement, recherchez le graphique État de l'environnement (DAG de surveillance Airflow). Il contient une zone rouge, qui correspond au moment où les journaux ont commencé à afficher des erreurs.

  5. Sélectionnez Nœuds de calcul, puis recherchez le graphique Utilisation totale de la mémoire pour les nœuds de calcul. Notez que la ligne Utilisation de la mémoire présente un pic au moment où la tâche était en cours d'exécution.

La ligne "Utilisation de la mémoire" présente un pic au moment où la tâche était en cours d'exécution.
Figure 1 : Graphique de l'utilisation totale de la mémoire des nœuds de calcul (cliquez pour agrandir)

Même si la ligne d'utilisation de la mémoire sur le graphique n'atteint pas la limite, vous devez tenir compte de l'utilisation de la mémoire par les nœuds de calcul individuels lorsque vous diagnostiquez les raisons de l'échec. Chaque nœud de calcul utilise une partie de sa mémoire pour exécuter d'autres conteneurs qui effectuent les actions nécessaires à son fonctionnement, comme la synchronisation de ses fichiers DAG avec le bucket de l'environnement. La quantité réelle de mémoire dont dispose un nœud de calcul pour exécuter des tâches Airflow est inférieure à sa limite de mémoire. Si un nœud de calcul atteint la limite de mémoire réelle disponible, la tâche exécutée peut échouer en raison d'une mémoire de nœud de calcul insuffisante. Dans ce cas, vous pouvez observer des échecs de tâches même si la ligne du graphique sur l'utilisation totale de la mémoire des nœuds de calcul n'atteint pas la limite de mémoire.

Augmenter la limite de mémoire des nœuds de calcul

Allouez de la mémoire de nœud de calcul supplémentaire pour que l'exemple de DAG réussisse :

  1. Dans la console Google Cloud , accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. Recherchez la configuration Ressources > Charges de travail, puis cliquez sur Modifier.

  5. Dans la section Nœud de calcul, dans le champ Mémoire, spécifiez la nouvelle limite de mémoire pour les nœuds de calcul Airflow. Dans ce tutoriel, utilisez 3 Go.

  6. Enregistrez les modifications et attendez quelques minutes que vos nœuds de calcul Airflow redémarrent.

Tester votre DAG avec la nouvelle limite de mémoire

Déclenchez à nouveau le DAG create_list_with_many_strings et attendez qu'il ait fini de s'exécuter.

  1. Dans les journaux de sortie de l'exécution de votre DAG, vous verrez Marking task as SUCCESS et l'état de la tâche indiquera Success (Réussite).

  2. Consultez la section Présentation de l'environnement de l'onglet Surveillance et assurez-vous qu'il n'y a pas de zones rouges.

  3. Cliquez sur la section Nœuds de calcul, puis recherchez le graphique Utilisation totale de la mémoire pour les nœuds de calcul. Vous verrez que la ligne Limite de mémoire reflète la modification de la limite de mémoire, et que la ligne Utilisation de la mémoire est bien en dessous de la limite de mémoire allouable réelle.

Exemple : Diagnostiquer les problèmes de stockage insuffisant

Au cours de cette étape, vous allez importer deux DAG qui créent des fichiers volumineux. Le premier DAG crée un fichier volumineux. Le deuxième DAG crée un fichier volumineux et imite une opération de longue durée.

La taille du fichier dans les deux DAG dépasse la limite de stockage par défaut des nœuds de calcul Airflow (1 Go), mais le deuxième DAG comporte une tâche d'attente supplémentaire pour prolonger artificiellement sa durée.

Vous allez examiner les différences de comportement des deux DAG au cours des prochaines étapes.

Importer un DAG qui crée un fichier volumineux

Importez l'exemple de DAG suivant dans l'environnement que vous avez créé lors des étapes précédentes. Dans ce tutoriel, ce DAG est nommé create_large_txt_file_print_logs.

Ce DAG contient une tâche qui exécute les étapes suivantes :

  1. Écrit un fichier localfile.txt de 1,5 Go dans le stockage du nœud de calcul Airflow.
  2. Imprime la taille du fichier créé à l'aide du module Python os.
  3. Affiche la durée de l'exécution du DAG toutes les minutes.
import airflow
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
import os
from datetime import timedelta
import time

default_args = {
    'start_date': airflow.utils.dates.days_ago(0),
    'retries': 0,
    'retry_delay': timedelta(minutes=10)
}

dag = DAG(
    'create_large_txt_file_print_logs',
    default_args=default_args,
    schedule_interval=None)


def consume():
    size = 1000**2  # bytes in 1 MB
    amount = 100

    def create_file():
        print(f"Start creating a huge file")
        with open("localfile.txt", "ab") as f:
            for j in range(15):
                f.write(os.urandom(amount) * size)
        print("localfile.txt size:", os.stat("localfile.txt").st_size / (1000**3), "GB")

    create_file()
    print("Success!")


t1 = PythonOperator(
    task_id='create_huge_file',
    python_callable=consume,
    dag=dag,
    depends_on_past=False,
    retries=0)

Importer un DAG qui crée un fichier volumineux dans une opération de longue durée

Pour imiter un DAG de longue durée et étudier l'impact de la durée de la tâche sur l'état final, importez le deuxième exemple de DAG dans votre environnement. Dans ce tutoriel, ce DAG est nommé long_running_create_large_txt_file_print_logs.

Ce DAG contient une tâche qui exécute les étapes suivantes :

  1. Écrit un fichier localfile.txt de 1,5 Go dans le stockage du nœud de calcul Airflow.
  2. Imprime la taille du fichier créé à l'aide du module Python os.
  3. Attend 1 heure et 15 minutes pour imiter le temps nécessaire aux opérations sur le fichier, par exemple la lecture du fichier.
  4. Affiche la durée de l'exécution du DAG toutes les minutes.
import airflow
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
import os
from datetime import timedelta
import time

default_args = {
    'start_date': airflow.utils.dates.days_ago(0),
    'retries': 0,
    'retry_delay': timedelta(minutes=10)
}

dag = DAG(
    'long_running_create_large_txt_file_print_logs',
    default_args=default_args,
    schedule_interval=None)


def consume():
    size = 1000**2  # bytes in 1 MB
    amount = 100

    def create_file():
        print(f"Start creating a huge file")
        with open("localfile.txt", "ab") as f:
            for j in range(15):
                f.write(os.urandom(amount) * size)
        print("localfile.txt size:", os.stat("localfile.txt").st_size / (1000**3), "GB")

    create_file()
    for k in range(75):
        time.sleep(60)
        print(f"{k+1} minute")

    print("Success!")


t1 = PythonOperator(
    task_id='create_huge_file',
    python_callable=consume,
    dag=dag,
    depends_on_past=False,
    retries=0)

Déclencher des exemples de DAG

Déclenchez le premier DAG, create_large_txt_file_print_logs :

  1. Dans la console Google Cloud , accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la colonne Serveur Web Airflow, cliquez sur le lien Airflow correspondant à votre environnement.

  3. Dans l'interface Web Airflow, sur la page DAG, dans la colonne Liens de votre DAG, cliquez sur le bouton Déclencher le DAG.

  4. Cliquez sur Déclencher.

  5. Sur la page DAG, cliquez sur la tâche que vous avez déclenchée et consultez les journaux de sortie pour vous assurer que votre DAG a commencé à s'exécuter.

  6. Attendez la fin de la tâche que vous avez créée avec le DAG create_large_txt_file_print_logs. Cette opération peut prendre plusieurs minutes.

  7. Sur la page DAGs (DAG), cliquez sur l'exécution du DAG. Vous verrez que votre tâche est à l'état Success, même si la limite de stockage a été dépassée.

Consultez les journaux Airflow de la tâche :

  1. Dans la console Google Cloud , accédez à la page Environnements.

    Accéder à la page Environnements

    1. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

    2. Accédez à l'onglet Journaux, puis à Tous les journaux > Journaux Airflow > Nœuds de calcul > Afficher dans l'explorateur de journaux.

    3. Filtrez les journaux par type : n'affichez que les messages Error (Erreur).

Dans les journaux, vous verrez des messages semblables à ceux-ci :

Worker: warm shutdown (Main Process)

ou

A worker pod was evicted at 2023-12-01T12:30:05Z with message: Pod ephemeral
local storage usage exceeds the total limit of containers 1023Mi.

Ces journaux indiquent que le pod a lancé le processus d'arrêt progressif, car le stockage utilisé a dépassé la limite et a été supprimé au bout d'une heure. Toutefois, l'exécution du DAG n'a pas échoué, car elle s'est terminée pendant le délai de grâce de l'arrêt Kubernetes, qui est expliqué plus en détail dans ce tutoriel.

Pour illustrer le concept de délai de grâce avant l'arrêt, examinez le résultat du deuxième exemple de DAG, long_running_create_large_txt_file_print_logs.

Déclenchez le deuxième DAG, long_running_create_large_txt_file_print_logs :

  1. Dans la console Google Cloud , accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la colonne Serveur Web Airflow, cliquez sur le lien Airflow correspondant à votre environnement.

  3. Dans l'interface Web Airflow, sur la page DAG, dans la colonne Liens de votre DAG, cliquez sur le bouton Déclencher le DAG.

  4. Cliquez sur Déclencher.

  5. Sur la page DAG, cliquez sur la tâche que vous avez déclenchée et consultez les journaux de sortie pour vous assurer que votre DAG a commencé à s'exécuter.

  6. Attendez que l'exécution du DAG long_running_create_large_txt_file_print_logs échoue. Cette opération prendra environ une heure.

Examinez les résultats de l'exécution du DAG :

  1. Sur la page DAGs (DAG), cliquez sur l'exécution du DAG long_running_create_large_txt_file_print_logs. Vous verrez que l'état de la tâche est Failed et que la durée de l'exécution était exactement de 1 heure et 5 minutes, ce qui est inférieur à la période d'attente de la tâche de 1 heure et 15 minutes.

  2. Examinez les journaux de la tâche. Une fois que le DAG a créé le fichier localfile.txt dans le conteneur du nœud de calcul Airflow, le journal indique que le DAG a commencé à attendre, et la durée d'exécution est imprimée dans les journaux des tâches toutes les minutes. Dans cet exemple, le DAG affiche le journal localfile.txt size: et la taille du fichier localfile.txt sera de 1,5 Go.

Une fois que le fichier écrit dans le conteneur du nœud de calcul Airflow dépasse la limite de stockage, l'exécution du DAG est censée échouer. Toutefois, la tâche n'échoue pas immédiatement et continue de s'exécuter jusqu'à ce que sa durée atteigne 1 heure et 5 minutes. Cela se produit parce que Kubernetes ne met pas fin immédiatement à la tâche et continue de s'exécuter pour permettre un délai de récupération d'une heure, appelé "période de grâce pour l'arrêt". Lorsqu'un nœud manque de ressources, Kubernetes n'arrête pas immédiatement le pod pour gérer l'arrêt de manière fluide, afin de minimiser l'impact sur l'utilisateur final.

Le délai de grâce pour la résiliation aide les utilisateurs à récupérer des fichiers après des échecs de tâches. Toutefois, il peut entraîner une confusion lors du diagnostic des DAG. Lorsque la limite de stockage du nœud de calcul Airflow est dépassée, l'état de la tâche de fin dépend de la durée de l'exécution du DAG :

  • Si l'exécution du DAG dépasse la limite de stockage du nœud de calcul, mais se termine en moins d'une heure, la tâche se termine avec l'état Success, car elle a été effectuée pendant le délai de grâce avant l'arrêt. Toutefois, Kubernetes met fin au pod et le fichier écrit est immédiatement supprimé du conteneur.

  • Si le DAG dépasse la limite de stockage du nœud de calcul et s'exécute pendant plus d'une heure, il continue de s'exécuter pendant une heure et peut dépasser la limite de stockage de plusieurs milliers de pour cent avant que Kubernetes n'élimine le pod et qu'Airflow ne marque la tâche comme Failed.

Diagnostiquer le DAG ayant échoué

Si vous exécutiez plusieurs tâches au moment de l'échec, envisagez de n'en exécuter qu'une seule et de diagnostiquer la pression sur les ressources pendant ce temps pour identifier les tâches qui causent la pression sur les ressources et les ressources que vous devez augmenter.

Examinez les journaux des tâches du deuxième DAG, long_running_create_large_txt_file_print_logs :

  1. Dans la console Google Cloud , accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Journaux, puis à Tous les journaux > Journaux Airflow > Nœuds de calcul > Afficher dans l'explorateur de journaux.

  4. Filtrez les journaux par type : n'affichez que les messages Error (Erreur).

Dans les journaux, vous verrez des messages semblables à ceux-ci :

Container storage usage of worker reached 155.7% of the limit.

This likely means that the total size of local files generated by your DAGs is
close to the storage limit of worker.

You may need to decrease the storage usage or increase the worker storage limit
in your Cloud Composer environment configuration.

ou

Pod storage usage of worker reached 140.2% of the limit.
A worker pod was evicted at 2023-12-01T12:30:05Z with message: Pod ephemeral
local storage usage exceeds the total limit of containers 1023Mi.

This eviction likely means that the total size of dags and plugins folders plus
local files generated by your DAGs exceeds the storage limit of worker.

Please decrease the storage usage or increase the worker storage limit in your
Cloud Composer environment configuration.

Ces messages indiquent que, au fur et à mesure de la progression de la tâche, les journaux Airflow ont commencé à afficher des erreurs lorsque la taille des fichiers générés par votre DAG a dépassé la limite de stockage du nœud de calcul et que le délai de grâce pour l'arrêt a commencé. Pendant le délai de grâce de résiliation, la consommation de stockage n'est pas revenue à la limite, ce qui a entraîné l'éviction du pod après la fin du délai de grâce de résiliation.

Examinez la surveillance de l'état de l'environnement et de la consommation de ressources :

  1. Dans la console Google Cloud , accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Surveillance, puis sélectionnez Aperçu.

  4. Dans le panneau Présentation de l'environnement, recherchez le graphique État de l'environnement (DAG de surveillance Airflow). Il contient une zone rouge, qui correspond au moment où les journaux ont commencé à afficher des erreurs.

  5. Sélectionnez Nœuds de calcul, puis recherchez le graphique Utilisation totale du disque pour les nœuds de calcul. Notez que la ligne Utilisation du disque présente un pic et dépasse la ligne Limite de disque au moment où votre tâche était en cours d'exécution.

La ligne "Utilisation du disque" présente un pic et dépasse la ligne "Limite de disque" au moment où votre tâche était en cours d'exécution.
Figure 2 : Graphique de l'utilisation totale du disque pour les nœuds de calcul (cliquez pour agrandir)

Augmenter la limite de stockage des workers

Allouez de l'espace de stockage supplémentaire aux nœuds de calcul Airflow pour que l'exemple de DAG puisse s'exécuter correctement :

  1. Dans la console Google Cloud , accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. Recherchez la configuration Ressources > Charges de travail, puis cliquez sur Modifier.

  5. Dans la section Nœud de calcul, dans le champ Stockage, spécifiez la nouvelle limite de stockage pour les nœuds de calcul Airflow. Dans ce tutoriel, définissez-la sur 2 Go.

  6. Enregistrez les modifications et attendez quelques minutes que vos nœuds de calcul Airflow redémarrent.

Tester votre DAG avec le nouveau quota de stockage

Déclenchez à nouveau le DAG long_running_create_large_txt_file_print_logs et attendez une heure et 15 minutes qu'il se termine.

  1. Dans les journaux de sortie de l'exécution de votre DAG, vous verrez Marking task as SUCCESS. L'état de la tâche indiquera Réussie, avec une durée d'une heure et 15 minutes, ce qui correspond au temps d'attente défini dans le code du DAG.

  2. Consultez la section Présentation de l'environnement de l'onglet Surveillance et assurez-vous qu'il n'y a pas de zones rouges.

  3. Cliquez sur la section Nœuds de calcul, puis recherchez le graphique Utilisation totale du disque pour les nœuds de calcul. Vous verrez que la ligne Limite de disque reflète la modification de la limite de stockage, et que la ligne Utilisation du disque se trouve dans la plage autorisée.

Résumé

Dans ce tutoriel, vous avez diagnostiqué la raison de l'échec d'un DAG et identifié le type de ressource qui provoque une pression en déboguant deux exemples de DAG qui échouent en raison d'un manque de mémoire et de stockage des nœuds de calcul. Vous avez ensuite exécuté les DAG avec succès après avoir alloué plus de mémoire et de stockage à vos nœuds de calcul. Toutefois, il est recommandé d'optimiser vos DAG (workflows) pour réduire la consommation de ressources des nœuds de calcul en premier lieu, car il n'est pas possible d'augmenter les ressources au-delà d'un certain seuil.

Effectuer un nettoyage

Pour éviter que les ressources utilisées dans ce tutoriel ne soient facturées sur votre compte Google Cloud , supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.

Supprimer le projet

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Supprimer des ressources individuelles

Si vous envisagez d'explorer plusieurs tutoriels et guides de démarrage rapide, réutiliser des projets peut vous aider à ne pas dépasser les limites de quotas des projets.

Supprimez l'environnement Cloud Composer. Vous allez également supprimer le bucket de l'environnement au cours de cette procédure.

Étapes suivantes