Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Cette page explique comment ajuster les paramètres de scaling et de performances de votre environnement en fonction des besoins de votre projet afin d'améliorer les performances et de réduire les coûts pour les ressources qui ne sont pas utilisées par votre environnement.
Autres pages sur l'ajustement et l'optimisation :
- Pour plus d'informations sur le scaling de vos environnements, consultez la section Faire évoluer les environnements.
- Pour en savoir plus sur le fonctionnement du scaling d'environnement, consultez la page Scaling de l'environnement.
- Pour obtenir un tutoriel sur la surveillance des métriques clés de l'environnement, consultez Surveiller l'état et les performances de l'environnement à l'aide de métriques clés.
Présentation du processus d'optimisation
La modification des paramètres de votre environnement peut affecter de nombreux aspects de ses performances. Nous vous recommandons d'optimiser votre environnement par itérations :
- Commencez avec les environnements prédéfinis.
- Exécutez vos DAG.
- Observez les performances de votre environnement.
- Ajustez les paramètres de scaling et de performances de votre environnement, puis répétez l'étape précédente.
Commencer avec les environnements prédéfinis
Lorsque vous créez un environnement dans la console Google Cloud, vous pouvez sélectionner l'un des trois environnements prédéfinis. Ces environnements prédéfinis définissent la configuration initiale des instances et des performances de votre environnement. Une fois votre environnement créé, vous pouvez modifier tous les paramètres de scaling et de performances du modèle prédéfini.
Nous vous recommandons de commencer par l'un des environnements prédéfinis en fonction des estimations suivantes :
- Nombre total de DAG que vous prévoyez de déployer dans l'environnement.
- Nombre maximal d'exécutions de DAG simultanées.
- Nombre maximal de tâches simultanées.
Les performances de votre environnement dépendent de la mise en œuvre des DAG spécifiques que vous exécutez dans celui-ci. Le tableau suivant répertorie des estimations basées sur la consommation moyenne des ressources. Si vous prévoyez que vos DAG consomment plus de ressources, ajustez les estimations en conséquence.
Environnement prédéfini recommandé | Nombre total de DAG | Nombre maximal d'exécutions de DAG simultanées | Nombre maximal de tâches simultanées |
---|---|---|---|
Petite | 50 | 15 | 18 |
Moyen | 250 | 60 | 100 |
Grande | 1000 | 250 | 400 |
Prenons pour exemple un environnement devant exécuter 40 DAG. Tous les DAG doivent être exécutés simultanément avec une tâche active par DAG. Un tel environnement utiliserait l'environnement prédéfini "Medium" (Moyen) car le nombre maximal d'exécutions et de tâches simultanées de DAG dépasse les estimations recommandées pour l'environnement prédéfini "Small" (Petit).
Exécuter vos DAG
Une fois votre environnement créé, importez-y vos DAG. Exécutez vos DAG et observez les performances de l'environnement.
Nous vous recommandons d'exécuter vos DAG selon un calendrier qui reflète l'application réelle de vos DAG. Par exemple, si vous prévoyez d'exécuter plusieurs DAG en même temps, veillez à vérifier les performances de votre environnement lorsque tous les DAG s'exécutent simultanément.
Observer les performances de votre environnement
Cette section porte sur les aspects les plus courants des réglages de capacité et de performances de Cloud Composer 2. Nous vous recommandons de suivre ce guide étape par étape car les considérations de performances les plus courantes sont traitées en premier.
Accéder au tableau de bord Monitoring
Vous pouvez surveiller les métriques de performances de votre environnement dans le tableau de bord Monitoring correspondant.
Pour accéder au tableau de bord Monitoring de votre environnement, procédez comme suit :
Dans la console Google Cloud, accédez à la page Environnements.
Cliquez sur le nom de votre environnement.
Accédez à l'onglet Surveillance.
Surveiller les métriques de processeur et de mémoire du programmeur
Les métriques de processeur et de mémoire du programmeur Airflow vous aident à vérifier si les performances du programmeur sont affectées par un goulot d'étranglement dans les performances globales d'Airflow.
Dans la section Programmeurs du tableau de bord Monitoring, observez les graphiques des programmeurs Airflow de votre environnement :
- Utilisation totale du processeur pour les programmeurs
- Utilisation totale de la mémoire pour les programmeurs
Ajustez-les en fonction de vos observations :
Si l'utilisation de processeur du programmeur est systématiquement inférieure à 30-35 %, vous pouvez :
Si l'utilisation de processeur du programmeur dépasse 80 % pendant plus de quelques points de pourcentage du temps total, vous pouvez :
Surveiller le temps d'analyse total pour tous les fichiers DAG
Les programmeurs analysent les DAG avant de planifier leur exécution. Si l'analyse des DAG prend beaucoup de temps, cela consomme les capacités du programmeur et peut réduire les performances des exécutions DAG.
Dans la section Statistiques DAG du tableau de bord Monitoring, observez les graphiques de durée d'analyse totale des DAG.
Si le nombre dépasse environ 10 secondes, vos programmeurs peuvent être surchargés par l'analyse des DAG et ne pas pouvoir exécuter efficacement les DAG. La fréquence d'analyse par défaut des DAG dans Airflow est de 30 secondes. Si la durée d'analyse du DAG dépasse ce seuil, les cycles d'analyse commencent à se chevaucher et épuisent la capacité du programmeur.
Selon vos observations, vous souhaiterez peut-être :
- Simplifier vos DAG, y compris leurs dépendances Python.
- Augmenter l'intervalle d'analyse des fichiers DAG et augmenter l'intervalle de référencement des dossiers DAG.
- Augmenter le nombre de programmeurs.
- Augmenter l'allocation de processeur des programmeurs.
Surveiller les évictions de pods de nœuds de calcul
L'éviction de pods peut se produire lorsqu'un pod spécifique du cluster de votre environnement atteint ses limites de ressources.
Si un pod de nœud de calcul Airflow est évincé, toutes les instances de tâche qui y sont exécutées sont interrompues, puis marquées comme ayant échoué par Airflow.
La majorité des problèmes d'éviction de pods de nœuds de calcul se produisent en raison de mémoire insuffisante.
Dans la section Nœuds de calcul du tableau de bord Monitoring, observez les graphiques évictions de pods de nœuds de calcul pour votre environnement.
Le graphique Utilisation totale de mémoire des nœuds de calcul indique la perspective totale pour l'environnement. Un seul nœud de calcul peut toujours dépasser la limite de mémoire, même si l'utilisation de mémoire est acceptable au niveau de l'environnement.
Selon vos observations, vous souhaiterez peut-être :
- Augmenter la mémoire disponible pour les nœuds de calcul.
- Réduire la simultanéité des nœuds de calcul. De cette manière, un seul nœud de calcul gère moins de tâches à la fois. Vous obtenez ainsi plus de mémoire ou d'espace de stockage pour chaque tâche. Si vous modifiez la simultanéité des nœuds de calcul, vous pouvez également augmenter le nombre maximal de nœuds de calcul. De cette manière, le nombre de tâches que votre environnement peut effectuer simultanément reste le même. Par exemple, si vous réduisez la simultanéité des nœuds de calcul de 12 à 6, vous souhaiterez peut-être doubler le nombre maximal de nœuds de calcul.
Surveiller les nœuds de calcul actifs
Le nombre de nœuds de calcul dans votre environnement évolue automatiquement en réponse au nombre de tâches en file d'attente.
Dans la section Nœuds de calcul du tableau de bord Monitoring, observez les graphiques correspondant au nombre de nœuds de calcul actifs et au nombre de tâches dans la file d'attente :
- Nœuds de calcul actifs
- Tâches Airflow
Ajustez-les en fonction de vos observations :
- Si l'environnement atteint fréquemment sa limite maximale de nœuds de calcul et que, en même temps, le nombre de tâches de la file d'attente Celery est élevé, vous pouvez augmenter le nombre maximal de nœuds de calcul.
S'il y a de longs délais de planification entre les tâches, mais que l'environnement n'évolue pas jusqu'à atteindre le nombre maximal de nœuds de calcul, il est probable qu'un paramètre Airflow limite la fréquence d'exécution et empêche les mécanismes de Cloud Composer de procéder au scaling de l'environnement. Étant donné que les environnements Cloud Composer 2 évoluent en fonction du nombre de tâches dans la file d'attente Celery, configurez Airflow pour ne pas limiter le nombre de tâches qui arrivent en file d'attente :
- Augmentez la simultanéité des nœuds de calcul. La simultanéité des nœuds de calcul doit être définie sur une valeur supérieure au nombre maximal attendu de tâches simultanées, divisé par le nombre maximal de nœuds de calcul dans l'environnement.
- Augmentez la simultanéité DAG si un seul DAG exécute un grand nombre de tâches en parallèle, ce qui augmente le risque d'atteindre le nombre maximal d'instances de tâche en cours d'exécution par DAG.
- Augmentez le nombre maximal d'exécutions actives par DAG si vous exécutez plusieurs fois le même DAG en parallèle, ce qui risque de limiter l'exécution d'Airflow si le nombre maximal d'exécutions actives par DAG est atteint.
Surveiller l'utilisation de processeur et de mémoire des nœuds de calcul
Surveillez l'utilisation totale de processeur et de mémoire de tous les nœuds de calcul de votre environnement pour déterminer si ceux-ci utilisent correctement les ressources de votre environnement.
Dans la section Nœuds de calcul du tableau de bord Monitoring, observez les graphiques d'utilisation de processeur et de mémoire des nœuds de calcul Airflow :
- Utilisation totale du processeur pour les nœuds de calcul
- Utilisation totale de la mémoire pour les nœuds de calcul
Ce graphique représente l'utilisation agrégée des ressources. Même si la vue globale affiche de la capacité supplémentaire, il reste possible que les nœuds de calcul individuels atteignent leurs limites de capacité.
Ajustez-les en fonction de vos observations :
- Si l'utilisation de mémoire des nœuds de calcul approche de la limite, la situation peut entraîner des évictions de pods de nœuds de calcul. Pour résoudre ce problème, augmentez l'allocation de mémoire des nœuds de calcul.
- Si l'utilisation de mémoire est minimale par rapport à la limite et qu'il n'y a aucune éviction de pods de nœuds de calcul, vous pouvez réduire l'allocation de mémoire des nœuds de calcul.
Si l'utilisation de processeur des nœuds de calcul est proche de la limite (plus de 80 % pendant plus de quelques points de pourcentage du temps total), vous pouvez :
- Augmenter le nombre de nœuds de calcul. Cela permet à votre environnement de mieux contrôler la capacité provisionnée pour une charge de travail particulière.
- Augmenter l'allocation de processeur des nœuds de calcul ou réduire la simultanéité des nœuds de calcul si des tâches individuelles nécessitent une allocation de processeur plus élevée. Sinon, nous vous recommandons d'augmenter le nombre de nœuds de calcul.
Surveiller les tâches en cours et en file d'attente
Vous pouvez surveiller le nombre de tâches en file d'attente et en cours d'exécution pour vérifier l'efficacité du processus de planification.
Dans la section Workers du tableau de bord Monitoring, observez graphique des tâches Airflow pour votre environnement.
Les tâches en file d'attente attendent d'être exécutées par les nœuds de calcul. Si des tâches sont en file d'attente dans votre environnement, cela peut signifier que les nœuds de calcul de votre environnement sont occupés à exécuter d'autres tâches.
La file d'attente est toujours sollicitée dans un environnement, tout particulièrement pendant les pics de traitement. Toutefois, si vous observez un nombre élevé de tâches en file d'attente ou une tendance croissante dans le graphique, cela peut indiquer que les nœuds de calcul ne disposent pas d'une capacité suffisante pour traiter les tâches, ou qu'Airflow limite exécution de tâches.
Un nombre élevé de tâches en file d'attente est généralement observé lorsque le nombre de tâches en cours d'exécution atteint également le niveau maximal.
Pour résoudre ces deux problèmes :
Surveiller l'utilisation de processeur et de mémoire de la base de données
Les problèmes de performances de la base de données Airflow peuvent entraîner des problèmes d'exécution globale du DAG. L'utilisation du disque de base de données n'est généralement pas une préoccupation, car l'espace de stockage est automatiquement étendu si nécessaire.
Dans le tableau de bord Monitoring, dans la section Base de données SQL, observez Graphiques illustrant l'utilisation du processeur et de la mémoire par la base de données Airflow:
- Utilisation du processeur de la base de données
- Utilisation de la mémoire de la base de données
Si l'utilisation de processeur de la base de données dépasse 80 % pendant plus de quelques points de pourcentage du temps total, la base de données est surchargée et nécessite un scaling.
Les paramètres de taille de la base de données sont contrôlés par la propriété de taille d'environnement de votre environnement. Pour effectuer un scaling de la base de données à la hausse ou à la baisse, modifiez la taille de l'environnement pour choisir un autre niveau ("Small, "Medium" ou "Large"). L'augmentation de la taille de l'environnement augmente les coûts associés à votre environnement.
Surveiller la latence de planification des tâches
Si la latence entre les tâches dépasse les niveaux attendus (par exemple, 20 secondes ou plus), cela peut indiquer que l'environnement ne peut pas gérer la charge de tâches générées par les exécutions de DAG.
Vous pouvez afficher le graphique de latence de planification des tâches dans l'interface utilisateur Airflow de votre environnement.
Dans cet exemple, les retards (2,5 et 3,5 secondes) sont bien dans les limites acceptables, mais les latences beaucoup plus élevées peuvent indiquer que :
- Le programmeur est surchargé. Surveillez l'utilisation de processeur et de mémoire du programmeur pour détecter les problèmes potentiels.
- Les options de configuration Airflow limitent l'exécution. Essayez d'augmenter la simultanéité des nœuds de calcul, d'augmenter la simultanéité des DAG ou d'augmenter le nombre maximal d'exécutions actives par DAG.
- Le nombre de nœuds de calcul est insuffisant pour exécuter des tâches. Essayez d'augmenter le nombre maximal de nœuds de calcul.
Surveiller l'utilisation de processeur et de mémoire du serveur Web
Les performances du serveur Web Airflow affectent l'interface utilisateur Airflow. Il n'est pas courant que le serveur Web soit surchargé. Dans une telle situation, les performances de l'interface utilisateur Airflow peuvent se dégrader, mais cela n'affecte pas les performances des exécutions DAG.
Dans la section Serveur Web du tableau de bord Monitoring, observez les graphiques du serveur Web Airflow :
- Utilisation du processeur du serveur Web
- Utilisation de la mémoire du serveur Web
D'après vos observations :
- Si l'utilisation de processeur du serveur Web est supérieure à 80 % pendant plus de quelques points de pourcentage du temps total, envisagez d'augmenter l'allocation de processeur du serveur Web.
- Si vous constatez une utilisation élevée de mémoire par le serveur Web, envisagez d'augmenter l'allocation de mémoire du serveur Web.
Ajuster les paramètres d'évolutivité et de performances de l'environnement
Modifier le nombre de programmeurs
Ajuster le nombre de programmeurs permet d'améliorer la capacité et la résilience du programmeur de planification Airflow.
Si vous augmentez le nombre de planificateurs, cela augmente le trafic vers et de la base de données Airflow. Nous recommandons d'utiliser deux programmeurs Airflow dans la plupart des cas différents scénarios. L'utilisation de trois planificateurs n'est requise que dans de rares cas nécessitant des considérations particulières. Configurer plus de trois planificateurs entraîne souvent une baisse des performances de l'environnement.
Pour une planification plus rapide:
- Configurez deux planificateurs Airflow.
- Attribuez plus de ressources de processeur et de mémoire aux planificateurs Airflow.
- Augmentation de dag-dir-list-interval
- Augmentation de min-file-process-interval
- Augmenter job-heartbeat-sec
Exemples :
Console
Suivez les étapes décrites dans la section Ajuster le nombre de programmeurs pour définir le nombre requis de programmeurs pour votre environnement.
gcloud
Suivez les étapes décrites dans la section Ajuster le nombre de programmeurs pour définir le nombre requis de programmeurs pour votre environnement.
L'exemple suivant définit le nombre de programmeurs sur deux :
gcloud composer environments update example-environment \
--scheduler-count=2
Terraform
Suivez les étapes décrites dans la section Ajuster le nombre de programmeurs pour définir le nombre requis de programmeurs pour votre environnement.
L'exemple suivant définit le nombre de programmeurs sur deux :
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
workloads_config {
scheduler {
count = 2
}
}
}
}
Modifier l'allocation de processeur et de mémoire des programmeurs
Les paramètres de processeur et de mémoire s'appliquent à chaque programmeur de votre environnement. Par exemple, si votre environnement dispose de deux programmeurs, la capacité totale est deux fois supérieure aux quantités de processeur et de mémoire spécifiées.
Console
Suivez les étapes décrites dans la section Ajuster les paramètres de scaling et de performances des nœuds de calcul, du programmeur et du serveur Web pour définir l'allocation de processeur et de mémoire des programmeurs.
gcloud
Suivez les étapes décrites dans la section Ajuster les paramètres de scaling et de performances des nœuds de calcul, du programmeur et du serveur Web pour définir l'allocation de processeur et de mémoire des programmeurs.
L'exemple suivant modifie l'allocation de processeur et de mémoire des programmeurs. Vous pouvez spécifier uniquement des attributs de processeur ou de mémoire, selon les besoins.
gcloud composer environments update example-environment \
--scheduler-cpu=0.5 \
--scheduler-memory=3.75
Terraform
Suivez les étapes décrites dans la section Ajuster les paramètres de scaling et de performances des nœuds de calcul, du programmeur et du serveur Web pour définir l'allocation de processeur et de mémoire des programmeurs.
L'exemple suivant modifie l'allocation de processeur et de mémoire des programmeurs. Vous pouvez omettre les attributs de processeur ou de mémoire, le cas échéant.
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
workloads_config {
scheduler {
cpu = "0.5"
memory_gb = "3.75"
}
}
}
}
Modifier le nombre maximal de nœuds de calcul
L'augmentation du nombre maximal de nœuds de calcul permet à votre environnement d'évoluer automatiquement vers un nombre plus élevé de nœuds de calcul, si nécessaire.
La réduction du nombre maximal de nœuds de calcul réduit la capacité maximale de l'environnement, mais peut également être utile pour réduire les coûts de l'environnement.
Par exemple :
Console
Suivez les étapes de la section Ajuster le nombre minimal et maximal de nœuds de calcul pour définir le nombre maximal de nœuds de calcul requis pour votre environnement.
gcloud
Suivez les étapes de la section Ajuster le nombre minimal et maximal de nœuds de calcul pour définir le nombre maximal de nœuds de calcul requis pour votre environnement.
L'exemple suivant définit le nombre maximal de nœuds de calcul sur six :
gcloud composer environments update example-environment \
--max-workers=6
Terraform
Suivez les étapes de la section Ajuster le nombre minimal et maximal de nœuds de calcul pour définir le nombre maximal de nœuds de calcul requis pour votre environnement.
L'exemple suivant définit le nombre maximal de programmeurs sur six :
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
workloads_config {
worker {
max_count = "6"
}
}
}
}
Modifier l'allocation de processeur et de mémoire des nœuds de calcul
La réduction de l'allocation de mémoire des nœuds de calcul peut être utile lorsque le graphique d'utilisation des nœuds de calcul indique une utilisation de mémoire très faible.
L'augmentation de l'allocation de mémoire des nœuds de calcul permet aux nœuds de calcul de gérer plus de tâches simultanément ou de gérer des tâches qui utilisent beaucoup de mémoire. Cela peut résoudre le problème des évictions de pods de nœuds de calcul.
La réduction de l'allocation de processeur des nœuds de calcul peut être utile lorsque le graphique d'utilisation du processeur de nœud de calcul indique que les ressources de processeur sont surprovisionnées.
L'augmentation de l'allocation de processeur des nœuds de calcul permet aux nœuds de calcul de gérer davantage de tâches simultanément et, dans certains cas, de réduire le temps nécessaire à leur traitement.
La modification des allocations de processeur ou de mémoire des nœuds de calcul redémarre les nœuds de calcul, ce qui peut affecter les tâches en cours d'exécution. Nous vous recommandons de procéder à de telles modifications lorsqu'aucun DAG n'est en cours d'exécution.
Les paramètres de processeur et de mémoire sont propres à chaque nœud de calcul de votre environnement. Par exemple, si votre environnement dispose de quatre nœuds de calcul, la capacité totale est quatre fois supérieure aux quantités de processeur et de mémoire spécifiées.
Console
Suivez les étapes décrites dans la section Ajuster les paramètres de scaling et de performances des nœuds de calcul, du programmeur et du serveur Web pour définir l'allocation de processeur et de mémoire des nœuds de calcul.
gcloud
Suivez les étapes décrites dans la section Ajuster les paramètres de scaling et de performances des nœuds de calcul, du programmeur et du serveur Web pour définir l'allocation de processeur et de mémoire des nœuds de calcul.
L'exemple suivant modifie l'allocation de processeur et de mémoire pour les nœuds de calcul. Vous pouvez omettre l'attribut de processeur ou de mémoire, le cas échéant.
gcloud composer environments update example-environment \
--worker-memory=3.75 \
--worker-cpu=2
Terraform
Suivez les étapes décrites dans la section Ajuster les paramètres de scaling et de performances des nœuds de calcul, du programmeur et du serveur Web pour définir l'allocation de processeur et de mémoire des nœuds de calcul.
L'exemple suivant modifie l'allocation de processeur et de mémoire pour les nœuds de calcul. Vous pouvez omettre le paramètre de processeur ou de mémoire, le cas échéant.
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
workloads_config {
worker {
cpu = "2"
memory_gb = "3.75"
}
}
}
}
Modifier l'allocation de processeur et de mémoire du serveur Web
Il peut être utile de réduire l'allocation de processeur ou de mémoire du serveur Web lorsque le graphique d'utilisation du serveur Web indique qu'il est continuellement sous-utilisé.
La modification des paramètres du serveur Web a pour effet de redémarrer le serveur Web, ce qui entraîne un temps d'arrêt temporaire. Nous vous recommandons d'apporter des modifications en dehors des heures d'utilisation normales.
Console
Suivez les étapes décrites dans la section Ajuster les paramètres de scaling et de performances des nœuds de calcul, du programmeur et du serveur Web pour définir l'allocation de processeur et de mémoire du serveur Web.
gcloud
Suivez les étapes décrites dans la section Ajuster les paramètres de scaling et de performances des nœuds de calcul, du programmeur et du serveur Web pour définir l'allocation de processeur et de mémoire du serveur Web.
L'exemple suivant modifie l'allocation de processeur et de mémoire du serveur Web. Vous pouvez omettre les attributs de processeur ou de mémoire, le cas échéant.
gcloud composer environments update example-environment \
--web-server-cpu=2 \
--web-server-memory=3.75
Terraform
Suivez les étapes décrites dans la section Ajuster les paramètres de scaling et de performances des nœuds de calcul, du programmeur et du serveur Web pour définir l'allocation de processeur et de mémoire du serveur Web.
L'exemple suivant modifie l'allocation de processeur et de mémoire du serveur Web. Vous pouvez omettre les attributs de processeur ou de mémoire, le cas échéant.
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
workloads_config {
web_server {
cpu = "2"
memory_gb = "3.75"
}
}
}
}
Modifier la taille de l'environnement
La modification de la taille de l'environnement modifie la capacité des composants de backend Cloud Composer tels que la base de données Airflow et la file d'attente Airflow.
- Envisagez de réduire la taille de l'environnement (par exemple, de "Large" à "Medium" ou de "Medium" à "Small") lorsque les métriques d'utilisation de la base de données indiquent une sous-utilisation importante.
Pensez à augmenter la taille de l'environnement si vous remarquez une utilisation élevée de la base de données Airflow.
Console
Suivez les étapes de la section Ajuster la taille de l'environnement pour définir la taille de l'environnement.
gcloud
Suivez les étapes de la section Ajuster la taille de l'environnement pour définir la taille de l'environnement.
L'exemple suivant modifie la taille de l'environnement pour passer à "Medium".
gcloud composer environments update example-environment \
--environment-size=medium
Terraform
Suivez les étapes de la section Ajuster la taille de l'environnement pour définir la taille de l'environnement.
L'exemple suivant modifie la taille de l'environnement pour passer à "Medium".
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
environment_size = "medium"
}
}
Modifier l'intervalle de référencement des dossiers DAG
L'augmentation de l'intervalle de référencement des dossiers DAG réduit la charge de programmeur associée à la découverte des nouveaux DAG dans le bucket d'environnement.
- Envisagez d'augmenter cet intervalle si vous déployez rarement de nouveaux DAG.
- Envisagez de réduire cet intervalle si vous souhaitez qu'Airflow réagisse plus rapidement aux fichiers DAG nouvellement déployés.
Pour modifier ce paramètre, remplacez l'option de configuration Airflow suivante :
Section | Clé | Valeur | Remarques |
---|---|---|---|
scheduler |
dag_dir_list_interval |
Nouvelle valeur pour l'intervalle de référencement | La valeur par défaut, en secondes, est 120 . |
Modifier l'intervalle d'analyse du fichier DAG
L'augmentation de l'intervalle d'analyse des fichiers DAG réduit la charge de programmeur associée à l'analyse continue des DAG.
Pensez à augmenter cet intervalle lorsque vous disposez d'un grand nombre de DAG qui ne changent pas souvent ou que vous observez une charge de programmeur élevée en général.
Pour modifier ce paramètre, remplacez l'option de configuration Airflow suivante :
Section | Clé | Valeur | Remarques |
---|---|---|---|
scheduler |
min_file_process_interval |
Nouvelle valeur pour l'intervalle d'analyse des fichiers DAG | La valeur par défaut, en secondes, est 30 . |
Simultanéité des nœuds de calcul
Les performances de simultanéité et la capacité de votre environnement à l'autoscaling sont liées à deux paramètres:
- le nombre minimal de nœuds de calcul Airflow
- Paramètre
[celery]worker_concurrency
Les valeurs par défaut fournies par Cloud Composer sont optimales pour la plupart des cas d'utilisation, mais votre environnement peut tirer parti des ajustements personnalisés.
Considérations sur les performances de la simultanéité des nœuds de calcul
Le paramètre [celery]worker_concurrency
définit le nombre de tâches
qu'un nœud de calcul unique
peut récupérer dans la file d'attente de tâches.
La vitesse d'exécution d'une tâche dépend de plusieurs facteurs, tels que le processeur de nœud de calcul, la mémoire,
et le type de travail lui-même.
Autoscaling des nœuds de calcul
Cloud Composer surveille la file d'attente des tâches et génère des nœuds de calcul supplémentaires pour récupérer les tâches en attente. Définir [celery]worker_concurrency
sur une valeur élevée
chaque employé peut accomplir de nombreuses tâches. Dans certaines circonstances,
la file d'attente risque de ne jamais se remplir, ce qui empêche le déclenchement de l'autoscaling.
Par exemple, dans un environnement Cloud Composer
avec deux nœuds de calcul Airflow,
[celery]worker_concurrency
défini sur 100 et les tâches 200 dans la file d'attente,
chaque nœud de calcul
effectuerait 100 tâches. Cela laisse la file d'attente vide et ne déclenche pas d'autoscaling. Si l'exécution de ces tâches prend beaucoup de temps, cela peut entraîner des problèmes de performances.
Mais si les tâches sont petites et rapides à exécuter, une valeur élevée
Le paramètre [celery]worker_concurrency
peut entraîner un scaling excessif.
Par exemple, si cet environnement compte 300 tâches dans la file d'attente, Cloud Composer commence à créer des nœuds de calcul. Toutefois, si les 200 premières tâches sont terminées au moment où les nouveaux nœuds de calcul sont prêts, un nœud de calcul existant peut les récupérer. Au final, l'autoscaling crée des nœuds de calcul,
il n'y a aucune tâche pour eux.
L'ajustement de [celery]worker_concurrency
pour les cas particuliers doit être basé sur les heures d'exécution des tâches de pointe et les numéros de file d'attente :
- Pour les tâches qui prennent plus de temps, les nœuds de calcul ne doivent pas pouvoir vider complètement la file d'attente.
- Pour des tâches plus rapides et plus petites, augmentez le nombre minimal de nœuds de calcul Airflow afin d'éviter une escalade trop rapide.
Synchronisation des journaux de tâches
Les nœuds de calcul Airflow sont dotés d'un composant qui synchronise les journaux d'exécution des tâches des buckets Cloud Storage. Un nombre élevé de tâches simultanées effectuées par un seul nœud de calcul entraîne un grand nombre de requêtes de synchronisation. Cela peut surcharger votre nœud de calcul et entraîner des problèmes de performances.
Si vous constatez des problèmes de performances en raison d'un trafic de synchronisation de journaux élevé, réduisez les valeurs [celery]worker_concurrency
et ajustez plutôt le nombre minimal de nœuds de calcul Airflow.
Modifier la simultanéité des nœuds de calcul
La modification de ce paramètre ajuste le nombre de tâches qu'un seul nœud de calcul peut exécuter simultanément.
Par exemple, un nœud de calcul disposant de 0,5 processeur peut généralement gérer six tâches simultanées. Un environnement comprenant trois nœuds de calcul peut gérer jusqu'à 18 tâches simultanées.
Augmentez ce paramètre lorsque des tâches sont en attente dans la file d'attente alors que vos nœuds de calcul utilisent un faible pourcentage de leurs allocations de processeur et de mémoire.
Diminuez ce paramètre lorsque vous subissez des évictions de pods. Cela réduira le nombre de tâches qu'un seul nœud de calcul tente de traiter simultanément. Vous pouvez également augmenter l'allocation de mémoire des nœuds de calcul.
La valeur par défaut pour la simultanéité des nœuds de calcul est égale à :
- Dans Airflow 2.6.3 et versions ultérieures, une valeur minimale est de
32
,12 * worker_CPU
et6 * worker_memory
. - Dans les versions d'Airflow antérieures à 2.6.3, une valeur minimale parmi
32
,12 * worker_CPU
et8 * worker_memory
. - Dans les versions d'Airflow antérieures à 2.3.3,
12 * worker_CPU
.
La valeur worker_CPU
correspond au nombre de processeurs alloués à un seul nœud de calcul. La valeur worker_memory
correspond à la quantité de mémoire allouée à un seul nœud de calcul. Par exemple, si les nœuds de calcul de votre environnement utilisent 0,5 processeur et 4 Go de mémoire chacun, la simultanéité des nœuds de calcul est définie sur 6
. La valeur de la simultanéité des nœuds de calcul ne dépend pas du nombre de nœuds de calcul dans votre environnement.
Pour modifier ce paramètre, remplacez l'option de configuration Airflow suivante :
Section | Clé | Valeur |
---|---|---|
celery |
worker_concurrency |
Nouvelle valeur pour la simultanéité des nœuds de calcul |
Modifier la simultanéité DAG
La simultanéité DAG définit le nombre maximal d'instances de tâche autorisées à s'exécuter simultanément dans chaque DAG. Augmentez cette valeur lorsque vos DAG exécutent un grand nombre de tâches simultanées. Si ce paramètre est faible, le programmeur met plus de tâches à la file d'attente, ce qui réduit également l'efficacité de l'autoscaling de l'environnement.
Pour modifier ce paramètre, remplacez l'option de configuration Airflow suivante :
Section | Clé | Valeur | Remarques |
---|---|---|---|
core |
max_active_tasks_per_dag |
Nouvelle valeur pour la simultanéité DAG | La valeur par défaut est 16 . |
Augmenter le nombre maximal d'exécutions actives par DAG
Cet attribut définit le nombre maximal d'exécutions DAG actives pour chaque DAG. Lorsque le même DAG doit être exécuté plusieurs fois simultanément, par exemple avec des arguments d'entrée différents, cet attribut permet au programmeur de démarrer de telles exécutions en parallèle.
Pour modifier ce paramètre, remplacez l'option de configuration Airflow suivante :
Section | Clé | Valeur | Remarques |
---|---|---|---|
core |
max_active_runs_per_dag |
Nouvelle valeur pour le nombre maximal d'exécutions actives par DAG | La valeur par défaut est 25 . |
Étape suivante
- Faire évoluer des environnements
- À propos du scaling d'environnement
- Remplacer les configurations Airflow
- Surveiller l'état et les performances de l'environnement à l'aide de métriques clés