Déboguer les problèmes de DAG où la mémoire ou l'espace de stockage sont saturés

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

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œuds de calcul, tels que de mémoire des nœuds de calcul ou d'espace de stockage insuffisant, à l'aide des journaux et de l'environnement la surveillance.

Présentation

Ce tutoriel porte sur les problèmes liés aux ressources pour illustrer comment déboguer DAG.

L'absence de ressources de nœuds de calcul allouées entraîne l'échec du DAG. Si une tâche Airflow à court 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, il est généralement recommandé d'augmenter le nombre ou de réduire le nombre de tâches par nœud de calcul. Toutefois, comme Airflow des exceptions peuvent être génériques, il peut être difficile d'identifier la ressource spécifique qui est à l'origine du problème.

Ce tutoriel explique comment diagnostiquer la cause de l'échec d'un DAG et comment Identifier le type de ressource à l'origine des problèmes 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 exemples de DAG qui échouent pour les raisons suivantes:

    • Mémoire de nœud de calcul insuffisante
    • Espace de stockage insuffisant pour les nœuds de calcul
  • Diagnostiquer les raisons de l'échec

  • Augmenter les ressources de nœuds 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 requises avant de commencer le tutoriel.

Créer et configurer un projet

Pour ce tutoriel, vous avez besoin d'un project. 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.

Activez l'API Cloud Composer

Activer l'API

Créer votre environnement Cloud Composer

Créez un environnement Cloud Composer 2.

Pour créer l'environnement, vous accordez l'extension d'agent de service de l'API Cloud Composer v2 (roles/composer.ServiceAgentV2Ext) à l'agent de service Composer Google Cloud. Cloud Composer utilise ce compte pour effectuer des opérations dans votre projet Google Cloud.

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

Vérifiez les limites de ressources de 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. > Nœud de calcul.

  5. Vérifiez que les valeurs correspondent à 0,5 vCPU, 1,875 Go de mémoire et 1 Go de stockage. Voici les limites de ressources de nœuds de calcul Airflow que vous utiliserez dans les de ce tutoriel.

Exemple: diagnostiquer les problèmes de mémoire saturée

Importez l'exemple de DAG suivant dans l'environnement que vous avez créées aux é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 s vide.
  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 pour chaque minutes.
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 examinez le résultat. les journaux pour vérifier que votre DAG a démarré.

Pendant l'exécution de la tâche, les journaux de sortie afficheront la taille de la mémoire en Go. que le DAG utilise.

Après quelques minutes, la tâche échoue, car elle dépasse le nombre de nœuds de calcul Airflow. limite de mémoire de 1,875 Go.

Diagnostiquer le DAG ayant échoué

Si vous exécutiez plusieurs tâches au moment de l'échec, envisagez d'exécuter une seule tâche et de diagnostiquer la pression des ressources pendant cette période afin d'identifier quelles tâches provoquent une pression sur les ressources et quelles ressources vous devez augmenter.

Examiner les journaux de tâches Airflow

Notez que la tâche du DAG create_list_with_many_strings comporte un 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 nœud le pod s'exécute de façon à dépasser la limite de consommation de mémoire:

  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 ont un état semblable à celui-ci:

    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 la limite autorisée. Le processus est arrêté pour empêcher l'utilisation de la mémoire.

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

Examinez la surveillance de l'état de l'environnement et de la consommation des 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 Présentation.

  4. Dans le panneau Présentation de l'environnement, recherchez l'icône Graphique État de l'environnement (DAG de surveillance Airflow). Il contient qui correspond au moment où les journaux ont commencé à imprimer des erreurs.

  5. Sélectionnez Nœuds de calcul, puis recherchez le graphique Utilisation totale de la mémoire des nœuds de calcul. Notez que la ligne Memory usage (Utilisation de la mémoire) présente un pic au moment où la valeur était en cours d'exécution.

<ph type="x-smartling-placeholder"></ph> La ligne d&#39;utilisation de la mémoire présente un pic au moment où
    tâche en cours d&#39;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, lors du diagnostic des causes de l'échec, vous devez tenir compte uniquement mémoire pouvant être allouée, tandis que la ligne Limite de mémoire du graphique représente la mémoire totale. (y compris la capacité réservée par GKE).

Dans cet exemple, la limite de mémoire des nœuds de calcul est définie sur 1,875 Go. GKE qui réserve 25% des 4 premiers Gio de mémoire. GKE réserve également eviction-threshold: 100 Mio de mémoire sur chaque nœud pour l'éviction du kubelet.

La mémoire pouvant être allouée est calculée comme suit:

ALLOCATABLE = CAPACITY - RESERVED - EVICTION-THRESHOLD

Si la limite de mémoire est de 1,875 Go, la mémoire réelle pouvant être allouée est la suivante:

1.75 GiB (1.875GB) - 0.44 (25% GiB reserved) - 0.1 = 1.21 GiB (~1.3 GB).

Lorsque vous ajoutez cette limite réelle au graphique d'utilisation de la mémoire, verra que le pic d'utilisation de la mémoire de la tâche atteint la mémoire réelle et vous pouvez en conclure que la tâche a échoué en raison d'un nœud de calcul insuffisant 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 section Resources (Ressources) &gt; Workloads (Charges de travail). cliquez sur Modifier.

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

  6. Enregistrez les modifications et patientez quelques minutes pour que vos nœuds de calcul Airflow redémarrer.

Tester votre DAG avec la nouvelle limite de mémoire

Déclenchez à nouveau le DAG create_list_with_many_strings et attendez qu'il s'exécute.

  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 dans l'onglet Surveillance. assurez-vous qu'il n'y a pas de zones rouges.

  3. Cliquez sur la section Nœuds de calcul et recherchez Utilisation totale de la mémoire des nœuds de calcul. graphique. Vous constaterez que la ligne Memory limit (Limite de mémoire) reflète la modification la limite de mémoire et la ligne Memory usage (Utilisation de la mémoire) est nettement inférieure à la valeur réelle limite de mémoire pouvant être allouée.

Exemple: Diagnostiquer les problèmes d'espace 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 second DAG crée un fichier volumineux et imite un opération de longue durée.

La taille du fichier dans les deux DAG dépasse celle de l'espace de stockage des nœuds de calcul Airflow par défaut de 1 Go, mais le second DAG a une tâche d'attente supplémentaire pour étendre artificiellement.

Vous étudierez les différences de comportement entre les deux DAG étapes.

Importer un DAG qui crée un fichier volumineux

Importez l'exemple de DAG suivant dans l'environnement que vous avez créées aux é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 l'espace de stockage des nœuds de calcul Airflow.
  2. Affiche 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

Imiter un DAG de longue durée et étudier l'impact de la durée de la tâche à l'état final, importez le deuxième exemple de DAG 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 l'espace de stockage des nœuds de calcul Airflow.
  2. Affiche 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 avec le fichier, par exemple, en le lisant à partir 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 examinez le résultat. les journaux pour vérifier que votre DAG a démarré.

  6. Attendez que la tâche que vous avez créée avec create_large_txt_file_print_logs DAG terminé. Cela peut prendre plusieurs minutes.

  7. Sur la page DAG, cliquez sur l'exécution du DAG. Votre tâche s'affiche est associé à l'état Success, même si la limite de stockage a été dépassée.

Examinez les journaux Airflow pour 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 &gt; Journaux Airflow &gt; Nœuds de calcul &gt; Afficher dans l'explorateur de journaux

    3. Filtrez les journaux par type: affichez uniquement les messages d'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é un "arrêt tiède" parce que le le stockage utilisé a dépassé la limite et a été évincé en une heure. Toutefois, le DAG exécute n'a pas échoué, car il s'est terminé dans le délai de grâce du délai de grâce Kubernetes chaque période de test, qui est expliquée plus en détail dans ce tutoriel.

Pour illustrer le concept de délai de grâce pour la résiliation, 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 examinez le résultat. les journaux pour vérifier que votre DAG a démarré.

  6. Attendre l'exécution du DAG long_running_create_large_txt_file_print_logs est défaillant. Cela prendra environ une heure.

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

  1. Sur la page DAG, cliquez sur le Exécution du DAG long_running_create_large_txt_file_print_logs. Vous verrez que la tâche est à l'état Failed et que la durée de l'exécution a été exactement 1 heure 5 minutes, ce qui est inférieur à la période d'attente de la tâche de 1 heure 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 démarré et que la durée d'exécution est affichée dans les journaux des tâches toutes les minutes. Dans cet exemple, le DAG imprime le journal localfile.txt size: et la taille du fichier localfile.txt fera 1,5 Go.

Une fois que le fichier écrit dans le conteneur du nœud de calcul Airflow dépasse l'espace de stockage l'exécution du DAG est censée échouer. Toutefois, la tâche n'échoue pas jusqu'à ce que sa durée atteigne 1 heure et 5 minutes. En effet, Kubernetes n'arrête pas la tâche immédiatement et conserve pour octroyer un délai de récupération d'une heure, de fin". Lorsqu'un nœud est à court de ressources, Kubernetes n'arrête pas pour gérer l'arrêt en douceur, de sorte qu'il y ait un minimum l'impact sur l'utilisateur final.

Le délai de grâce pour la résiliation permet aux utilisateurs de récupérer des fichiers en cas d'échec, Toutefois, cela peut prêter à confusion lors du diagnostic des DAG. Lorsque le nœud de calcul Airflow limite de stockage est dépassée, l'état de fin de la tâche dépend de la durée Exécution du DAG:

  • Si l'exécution du DAG dépasse la limite de stockage des nœuds de calcul, mais se termine en moins de 1 heure, la tâche se termine avec l'état Success, car elle a été terminée pendant le délai de grâce pour la résiliation. Cependant, Kubernetes arrête le pod et le fichier écrit est immédiatement supprimé du conteneur.

  • Si le DAG dépasse la limite de stockage des nœuds de calcul et s'exécute pendant plus d'une heure, le DAG continue de s'exécuter pendant 1 heure et peut dépasser la limite de stockage des milliers de pour cent avant que Kubernetes n'élimine les marques de pod et d'Airflow la tâche en tant que Failed.

Diagnostiquer le DAG ayant échoué

Si vous exécutiez plusieurs tâches au moment de l'échec, envisagez d'exécuter une seule tâche et de diagnostiquer la pression des ressources pendant cette période afin d'identifier quelles tâches provoquent une pression sur les ressources et quelles ressources vous devez augmenter.

Examinez les journaux de 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 &gt; Journaux Airflow &gt; Nœuds de calcul &gt; Afficher dans l'explorateur de journaux

  4. Filtrez les journaux par type: affichez uniquement les messages d'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 qu'au fur et à mesure de la progression de la tâche, les journaux Airflow ont démarré des erreurs d'impression lorsque la taille des fichiers générés par votre DAG dépassait la limite de stockage du nœud de calcul, et le délai de grâce pour la résiliation a commencé. Pendant le délai de grâce avant la résiliation, l'utilisation de l'espace de stockage n'a pas retrouvé sa limite, ce qui a entraîné l'éviction du pod à la fin du délai de grâce.

Examinez la surveillance de l'état de l'environnement et de la consommation des 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 Présentation.

  4. Dans le panneau Présentation de l'environnement, recherchez l'icône Graphique État de l'environnement (DAG de surveillance Airflow). Il contient qui correspond au moment où les journaux ont commencé à imprimer des erreurs.

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

<ph type="x-smartling-placeholder"></ph> La ligne d&#39;utilisation du disque présente un pic et dépasse la limite de disque
    au moment où votre tâche était en cours d&#39;exécution .
Figure 2. Graphique de l'utilisation totale du disque par les nœuds de calcul (cliquez pour agrandir)

Augmenter la limite de stockage des nœuds de calcul

Allouer un espace de stockage supplémentaire aux nœuds de calcul Airflow pour que l'exemple de DAG réussir:

  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 section Resources (Ressources) &gt; Workloads (Charges de travail). cliquez sur Modifier.

  5. Dans le champ Storage (Stockage) de la section Worker (Nœud de calcul), spécifiez le nouvel espace de stockage. pour les nœuds de calcul Airflow. Dans ce tutoriel, définissez-la sur 2 Go.

  6. Enregistrez les modifications et patientez quelques minutes pour que vos nœuds de calcul Airflow redémarrer.

Tester votre DAG avec la nouvelle limite de stockage

Déclenchez à nouveau le DAG long_running_create_large_txt_file_print_logs et attendez 1 heure et 15 minutes qu'il s'exécute.

  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 (Opération réussie) d'une durée d'une heure. et 15 minutes, soit le temps d'attente défini dans le code du DAG.

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

  3. Cliquez sur la section Nœuds de calcul et recherchez Utilisation totale du disque par les nœuds de calcul. graphique. Vous constaterez que la ligne Limite de disque reflète la modification apportée au limite de stockage et que la ligne Utilisation du disque se situe dans la plage autorisée.

Résumé

Dans ce tutoriel, vous avez diagnostiqué la cause de l'échec d'un DAG et identifié les Type de ressource qui entraîne 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 après avoir alloué plus de mémoire et d'espace de stockage à vos nœuds de calcul. Cependant, il est recommandé pour Optimiser vos DAG (workflows) de réduire la consommation des ressources des nœuds de calcul, possible d'augmenter les ressources au-delà d'un certain seuil.

Effectuer un nettoyage

Pour éviter que les ressources soient facturées sur votre compte Google Cloud, utilisées dans ce tutoriel, supprimez le projet qui contient les ressources ou conserver le projet et supprimer les ressources individuelles.

Supprimer le projet

  1. Dans la console Google Cloud, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

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 avez également supprimer le bucket de l'environnement au cours de cette procédure.

Étape suivante