Surveiller les nœuds Cloud TPU
Ce guide explique comment utiliser Google Cloud Monitoring pour surveiller vos nœuds Cloud TPU. Google Cloud Monitoring collecte automatiquement les métriques et les journaux de votre Cloud TPU et de son hôte Compute Engine. Ces données peuvent être utilisées pour surveiller l'état de votre Cloud TPU et de Compute Engine.
Les métriques vous permettent de suivre une quantité numérique au fil du temps, par exemple l'utilisation du processeur, l'utilisation du réseau ou l'utilisation des MXU. Les journaux enregistrent les événements à un moment précis. Les entrées de journal sont écrites par votre propre code, par les Google Cloud services, par les applications tierces et par l' Google Cloud infrastructure. Vous pouvez également générer des métriques à partir des données d'une entrée de journal en créant une métrique basée sur les journaux. Vous pouvez également définir des règles d'alerte en fonction des valeurs de métrique ou des entrées de journal.
Ce guide présente la Google Cloud surveillance et vous explique comment:
- Afficher les métriques Cloud TPU
- Configurer des règles d'alerte pour les métriques Cloud TPU
- Interroger les journaux Cloud TPU
- Créer des métriques basées sur les journaux pour configurer des alertes et visualiser des tableaux de bord
Prérequis
Ce document suppose que vous disposez de connaissances de base sur la surveillanceGoogle Cloud . Vous devez disposer d'une VM Compute Engine et de ressources Cloud TPU pour pouvoir commencer à générer et à utiliser Google Cloud Monitoring. Pour en savoir plus, consultez le guide de démarrage rapide de Cloud TPU.
Métriques
Les métriquesGoogle Cloud sont générées automatiquement par les VM Compute Engine et l'environnement d'exécution Cloud TPU. Les métriques suivantes sont générées par les nœuds Cloud TPU:
cpu/utilization
memory/usage
network/received_bytes_count
network/sent_bytes_count
tpu/mxu/utilization
tpu/tensorcore/idle_duration
Utilisation du processeur
La métrique cpu/utilization
suit l'utilisation actuelle du processeur sur le nœud de travail Cloud TPU, représentée en pourcentage. Les valeurs sont généralement comprises entre 0,0 et 100,0, mais peuvent dépasser 100,0. Échantillonné toutes les 60 secondes. La génération d'une valeur et son affichage peuvent prendre jusqu'à 180 secondes.
Utilisation de la mémoire
La métrique memory/usage
suit la mémoire actuellement utilisée par la VM Cloud TPU en octets. Cette métrique est échantillonnée toutes les 60 secondes. La génération d'une valeur et son affichage peuvent prendre jusqu'à 180 secondes.
Nombre d'octets reçus sur le réseau
La métrique network/received_bytes_count
suit le nombre cumulé d'octets de données que la VM Cloud TPU a reçus sur le réseau à un moment donné. L'affichage d'une valeur peut prendre jusqu'à 180 secondes.
Nombre d'octets envoyés sur le réseau
La métrique network/sent_bytes_count
suit le nombre cumulé d'octets envoyés par la VM Cloud TPU sur le réseau à un moment donné. La génération d'une valeur et son affichage peuvent prendre jusqu'à 180 secondes.
Durée d'inactivité de TensorCore
La métrique tpu/tensorcore/idle_duration
suit le nombre de secondes pendant lesquelles le TensorCore de chaque puce TPU a été inactif. Cette métrique est disponible pour chaque puce de tous les TPU utilisés. Si un TensorCore est utilisé, la valeur de la durée d'inactivité est réinitialisée sur zéro. Lorsque le TensorCore n'est plus utilisé, la valeur de la durée d'inactivité commence à augmenter.
Le graphique suivant montre la métrique tpu/tensorcore/idle_duration
pour une VM Cloud TPU v2-8 avec un seul nœud de calcul. Chaque nœud de calcul dispose de quatre puces. Dans cet exemple, les quatre chips ont les mêmes valeurs pour tpu/tensorcore/idle_duration
. Les graphiques sont donc superposés.
Utilisation des unités matricielles
La métrique tpu/mxu/utilization
suit l'utilisation actuelle de la MXU sur le nœud de travail TPU, représentée sous forme de pourcentage. Les valeurs sont généralement des nombres compris entre 0,0 et 100,0. Échantillonné toutes les 60 secondes. Après échantillonnage, les données ne sont pas visibles pendant un délai pouvant atteindre 180 secondes.
Pour obtenir la liste complète des métriques générées par Cloud TPU, consultez la page Métriques Cloud TPU.
Afficher les métriques
Vous pouvez afficher les métriques à l'aide de l'explorateur de métriques dans la console Google Cloud .
Dans l'explorateur de métriques, cliquez sur SÉLECTIONNER UNE MÉTRIQUE et recherchez Cloud TPU Worker
. Si l'option Afficher uniquement les ressources et métriques actives est activée, seules les métriques actuellement générées s'affichent. Cliquez sur Nœud de calcul Cloud TPU pour afficher les métriques disponibles.
Vous pouvez également accéder aux métriques à l'aide d'appels HTTP curl:
Utilisez le bouton Essayez dans la documentation projects.timeSeries.query pour récupérer la valeur d'une métrique au cours de la période spécifiée.
- Renseignez le nom au format suivant: projects/{project-name}.
- Ajoutez une requête à la section Request body (Corps de la requête). Voici un exemple de requête permettant de récupérer la métrique de durée d'inactivité pour la zone spécifiée au cours des cinq dernières minutes :
fetch tpu_worker | filter zone = 'us-central2-b' | metric tpu.googleapis.com/tpu/tensorcore/idle_duration | within 5m"
- Cliquez sur Exécuter pour récupérer les résultats du message HTTP POST.
Pour en savoir plus sur la personnalisation de cette requête, consultez la documentation de référence sur le langage de requête de surveillance.
Vous pouvez créer des règles d'alerte qui indiquent à Google Cloud Monitoring d'envoyer une alerte lorsqu'une condition est remplie.
Créer des alertes
Les étapes de cette section présentent un exemple d'ajout d'une règle d'alerte pour la métrique TensorCore Idle Duration. Chaque fois que cette métrique dépasse 24 heures, Cloud Monitoring envoie un e-mail à l'adresse e-mail enregistrée.
- Accéder à la console Monitoring
- Dans le volet de navigation, cliquez sur Alertes.
- Cliquez sur MODIFIER LES CANAUX DE NOTIFICATION.
- Sous Adresse e-mail, cliquez sur AJOUTER.
- Saisissez une adresse e-mail et un nom à afficher, puis cliquez sur ENREGISTRER.
- Cliquez sur CRÉER UNE RÈGLE.
- Cliquez sur SÉLECTIONNER UNE MÉTRIQUE, sélectionnez Durée d'inactivité du Tensorcore, puis cliquez sur APPLIQUER.
- Cliquez sur SUIVANT, puis sur Seuil.
- Pour Déclencheur d'alerte, sélectionnez À chaque infraction de série.
- Pour Position du seuil, sélectionnez Au-dessus du seuil.
- Dans le champ Valeur du seuil, saisissez
86400000
. - Cliquez sur SUIVANT.
- Sous Canaux de notification, sélectionnez votre canal de notification par e-mail, puis cliquez sur OK.
- Saisissez un nom pour la règle d'alerte.
- Cliquez sur SUIVANT, puis sur CRÉER UNE RÈGLE.
Lorsque la durée d'inactivité du TensorCore dépasse 24 heures, un e-mail est envoyé à l'adresse e-mail que vous avez spécifiée.
Journalisation
Les entrées de journal sont écrites par des Google Cloud services, des services tiers, des frameworks de ML ou votre code. Vous pouvez afficher les journaux à l'aide de la visionneuse de journaux ou de l'API Logs. Pour en savoir plus sur la journalisation Google Cloud , consultez la section JournalisationGoogle Cloud .
Dans l'explorateur de journaux, vous pouvez sélectionner un type de ressource:
- Nœud Cloud TPU -> Zone -> ID de nœud
- Ressource auditée -> Cloud TPU -> API (
google.cloud.tpu.v1.Tpu.CreateNode
,google.cloud.tpu.v1.Tpu.DeleteNode
,google.cloud.tpu.v1.Tpu.UpdateNode
)
Les journaux des nœuds de calcul Cloud TPU contiennent des informations sur un nœud de calcul Cloud TPU spécifique dans une zone spécifique, par exemple la quantité de mémoire disponible sur le nœud de calcul Cloud TPU (system_available_memory_GiB
).
Les journaux de ressources audités contiennent des informations sur le moment où une API Cloud TPU spécifique a été appelée et sur l'auteur de l'appel. Par exemple, CreateNode
, UpdateNode
et DeleteNode
.
Les frameworks de ML peuvent générer des journaux dans stdout
et stderr
. Ces journaux sont contrôlés par des variables d'environnement et sont lus par votre script d'entraînement.
Votre code peut écrire des journaux dans Google Cloud Logging. Pour en savoir plus, consultez les pages Écrire des journaux standards et Écrire des journaux structurés.
Afficher les journaux Cloud TPU
- Accédez à la Google Cloud visionneuse de journaux
- Cliquez sur le menu déroulant Ressource.
- Cliquez sur Nœud de calcul Cloud TPU.
- Sélectionner une zone
- Sélectionner le Cloud TPU qui vous intéresse
- Cliquez sur Appliquer. Les journaux s'affichent dans les résultats de la requête
Pour afficher les journaux des ressources auditées:
- Accédez à la Google Cloud visionneuse de journaux
- Cliquez sur le menu déroulant Ressource.
- Cliquez sur Ressource auditée, puis sur Cloud TPU.
- Choisir l'API Cloud TPU qui vous intéresse
- Cliquez sur Appliquer. Les journaux s'affichent dans les résultats de la requête
- Choisissez les API commençant par
google.cloud.tpu.v1.Tpu
.
Journaux de requête Google Cloud
Lorsque vous affichez des journaux dans la Google Cloud console, la page effectue une requête par défaut.
Vous pouvez afficher la requête en sélectionnant le bouton bascule Show query
. Vous pouvez modifier la requête par défaut ou en créer une. Pour en savoir plus, consultez la page Créer des requêtes dans l'explorateur de journaux.
Comprendre la sortie du journal pour les journaux des ressources auditées
Cliquez sur une entrée de journal pour la développer, et vous verrez un champ nommé protoPayload
.
Développez protoPayload
pour afficher plusieurs sous-champs:
- logName: nom du journal
- protoPayload -> @type: type du journal
- resourceName: nom de votre Cloud TPU
- methodName: nom de la méthode appelée (journaux d'audit uniquement)
- request -> @type: type de requête
- request -> node: détails sur le nœud Cloud TPU
- request -> node_id: nom du TPU
- severity: gravité du journal
Comprendre la sortie du journal pour les journaux de nœuds de travail Cloud TPU
Cliquez sur une entrée de journal pour la développer, et vous verrez un champ nommé jsonPayload
.
Développez jsonPayload
pour afficher plusieurs sous-champs:
- accelerator_type: type d'accélérateur
- consumer_project: projet dans lequel se trouve le Cloud TPU
- evententry_timestamp: heure à laquelle le journal a été généré
- system_available_memory_GiB: mémoire disponible sur le nœud de travail Cloud TPU (0 à 350 Go)
Créer des métriques basées sur des journaux
Cette section explique comment créer les métriques basées sur les journaux utilisées pour configurer les tableaux de bord et les alertes de surveillance. Pour en savoir plus sur la création de métriques basées sur les journaux par programmation, consultez la section Créer des métriques basées sur les journaux par programmation à l'aide de l'API REST Cloud Logging.
Dans l'exemple suivant, le sous-champ system_available_memory_GiB illustre comment créer une métrique basée sur les journaux pour surveiller la mémoire disponible des nœuds de travail Cloud TPU.
- Accédez à l'explorateur de journaux.
Dans la zone de requête, saisissez la requête suivante pour extraire toutes les entrées de journal où le sous-champ system_available_memory_GiB est défini pour le nœud de calcul Cloud TPU principal:
resource.type=tpu_worker resource.labels.project_id=your-project resource.labels.zone=your-tpu-zone resource.labels.node_id=your-tpu-name resource.labels.worker_id=0 logName=projects/your-project/logs/tpu.googleapis.com%2Fruntime_monitor jsonPayload.system_available_memory_GiB:*
Cliquez sur Créer une métrique pour afficher l'éditeur de métriques.
Sous Type de métrique, sélectionnez Distribution.
Saisissez un nom, une description facultative et une unité de mesure pour votre métrique. saisissez "matrix_unit_utilization_percent" et "Utilisation des unités matricielles" dans les champs Nom et Description, respectivement.
Le filtre est prérempli avec le script que vous avez saisi dans l'explorateur de journaux.
Cliquez sur CRÉER UNE MÉTRIQUE.
Cliquez sur Explorer les métriques pour afficher votre nouvelle métrique. L'affichage de vos métriques peut prendre quelques minutes
Créer des métriques basées sur des journaux par programmation à l'aide de l'API REST Cloud Logging
Vous pouvez également créer des métriques basées sur les journaux via l'API Cloud Logging. Pour en savoir plus, consultez Créer une métrique de distribution.
Créer des tableaux de bord et des alertes à l'aide de métriques basées sur les journaux
Les tableaux de bord sont utiles pour visualiser les métriques (prévoir un délai d'environ deux minutes), et les alertes pour envoyer des notifications en cas d'erreur. Pour en savoir plus, consultez les pages Gérer les tableaux de bord personnalisés et Créer des règles d'alerte basées sur des métriques.
Créer des tableaux de bord
Pour créer un tableau de bord dans Cloud Monitoring pour la métrique Durée d'inactivité de Tensor Core:
- Accéder à la console Monitoring
- Dans le volet de navigation, cliquez sur Tableaux de bord.
- Cliquez sur CRÉER UN TABLEAU DE BORD, puis sur Ajouter un graphique.
- Choisissez le type de graphique que vous souhaitez ajouter. Pour cet exemple, choisissez Ligne.
- Saisissez un titre pour le tableau de bord.
- Cliquez sur le bouton sous Ressource et métrique.
- Faites défiler la liste des ressources/métriques, puis sélectionnez Cloud TPU Worker (Travailleurs Cloud TPU) -> Tpu (TPU) -> Tensorcore idle duration (Durée d'inactivité du Tensorcore).
- Cliquez sur Appliquer.
- Pour filtrer le contenu du tableau de bord, cliquez sur CRÉER DES FILTRES DE TABLEAU DE BORD.
- Dans le champ Label (Libellé), définissez project_id sur votre projet.
- Cliquez sur AJOUTER et définissez zone sur la zone dans laquelle vous avez créé votre TPU.
- Ajoutez un autre filtre pour node_id et spécifiez le nom de votre Cloud TPU.