Surveiller les VM Cloud TPU
Ce guide explique comment utiliser Google Cloud Monitoring. pour surveiller vos VM Cloud TPU. Google Cloud Monitoring collecte automatiquement les métriques et les journaux de votre instance Cloud TPU et son hôte Compute Engine. Ces données peuvent servir à surveiller l'état de vos ressources Cloud TPU et Compute Engine.
Les métriques vous permettent de suivre une quantité numérique au fil du temps (le CPU, par exemple) ou du réseau, ou la durée d'inactivité de TensorCore. Les événements de capture des journaux à un moment précis. Les entrées de journal sont écrites avec votre propre code, Google Cloud d'applications tierces et de l'infrastructure Google Cloud. Vous pouvez également générer des métriques à partir des données présentes dans une entrée de journal en créant une métrique basée sur les journaux. Vous pouvez également définir Règles d'alerte en fonction d'une métrique ou entrées de journal.
Ce guide traite de Google Cloud Monitoring et vous explique comment:
- Afficher les métriques Cloud TPU
- Configurer des règles d'alerte concernant 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 des connaissances de base sur Google Cloud Monitoring. Vous devez disposer d'une VM Compute Engine et d'un Cloud TPU ressources créées avant que vous ne puissiez 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étriques Google Cloud sont générées automatiquement par Compute Engine des VM et de l'environnement d'exécution Cloud TPU. Les métriques suivantes sont générées par VM Cloud TPU:
memory/usage
network/received_bytes_count
network/sent_bytes_count
cpu/utilization
tpu/tensorcore/idle_duration
accelerator/tensorcore_utilization
accelerator/memory_bandwidth_utilization
accelerator/duty_cycle
accelerator/memory_total
accelerator/memory_used
Il peut s'écouler jusqu'à 180 secondes entre le moment où une valeur de métrique est générée et celui où lorsqu'il est affiché dans l'Explorateur de métriques.
Pour obtenir la liste complète des métriques générées par Cloud TPU, consultez Métriques Google Cloud TPU.
Utilisation de la mémoire
La métrique memory/usage
est générée pour la ressource TPU Worker
et les canaux
la mémoire utilisée par la VM TPU en octets. Cette métrique est échantillonnée toutes les 60 secondes.
Nombre d'octets reçus par le réseau
La métrique network/received_bytes_count
est générée pour TPU Worker
ressource et suit le nombre cumulé d'octets de données reçus par la VM TPU
sur le réseau à un moment précis.
Nombre d'octets envoyés par le réseau
La métrique network/sent_bytes_count
est générée pour la ressource TPU Worker
.
et suit le nombre d'octets cumulés que la VM TPU a envoyés sur le réseau à un
à un moment précis.
Utilisation du processeur
La métrique cpu/utilization
est générée pour la ressource TPU Worker
.
suit l'utilisation actuelle du processeur sur le travailleur TPU, représentée sous forme de pourcentage
sont échantillonnés une fois par minute. Les valeurs sont généralement comprises entre 0,0 et 100,0, mais peuvent
dépasse 100,0.
Durée d'inactivité de TensorCore
La métrique tpu/tensorcore/idle_duration
est générée pour TPU Worker
ressource et effectue le suivi du nombre de secondes de TensorCore de chaque puce TPU
inactif. Cette métrique est disponible pour chaque puce sur tous les TPU utilisés. Si un processeur TensorCore
est en cours d'utilisation, la durée d'inactivité est réinitialisée. Lorsque TensorCore n'existe pas
la durée d'inactivité commence à augmenter.
Le graphique suivant illustre la métrique tpu/tensorcore/idle_duration
pour une version 2-8
VM TPU comprenant un nœud de calcul. Chaque nœud de calcul comporte quatre puces. Dans cet exemple, toutes
quatre chips ont les mêmes valeurs pour tpu/tensorcore/idle_duration
, donc le
graphiques sont superposés
les uns sur les autres.
Utilisation de TensorCore
La métrique accelerator/tensorcore_utilization
est générée pour la ressource GCE TPU
Worker
et suit le pourcentage actuel de TensorCore
utilisées. Cette métrique est calculée en divisant le nombre de cœurs TensorCore
effectuées sur une période d'échantillonnage par le nombre maximal d'opérations
pouvant être effectuées
sur la même période d'échantillonnage. Une valeur plus élevée signifie de meilleurs
de l'utilisation des ressources. La métrique d'utilisation TensorCore est compatible avec les TPU v4 et ultérieurs.
génération.
Utilisation de la bande passante de mémoire
La métrique accelerator/memory_bandwidth_utilization
est générée pour le
GCE TPU Worker
et suit le pourcentage actuel de l'accélérateur
la bande passante mémoire utilisée. Cette métrique est calculée en divisant
bande passante mémoire utilisée sur une période d'échantillonnage par la bande passante maximale acceptée
sur la même période d'échantillonnage. Une valeur supérieure signifie une meilleure utilisation. The Memory
La métrique d'utilisation de la bande passante est compatible avec les générations de TPU v4 et plus récentes.
Cycle de fonctionnement de l'accélérateur
La métrique accelerator/duty_cycle
est générée pour GCE TPU Worker
ressource et effectue le suivi du pourcentage de temps durant lequel, au cours de la période d'échantillonnage,
que TensorCore traitait activement. Les valeurs sont comprises dans la plage 0
à 100. Plus la valeur est élevée, plus l'utilisation de TensorCore est forte. Cette métrique est
sont signalées lorsqu'une charge de travail de machine learning est en cours d'exécution sur la VM TPU. La
La métrique du cycle de service de l'accélérateur est compatible avec JAX
0.4.14 et versions ultérieures,
PyTorch
2.1 et versions ultérieures et
TensorFlow
2.14.0
plus tard.
Mémoire totale de l'accélérateur
La métrique accelerator/memory_total
est générée pour GCE TPU Worker
et suit la mémoire totale de l'accélérateur allouée en octets.
Cette métrique est signalée lorsqu'une charge de travail de machine learning est exécutée sur le TPU
VM. La métrique "Mémoire totale de l'accélérateur" est compatible avec JAX
0.4.14 et versions ultérieures,
PyTorch
2.1 et versions ultérieures et
TensorFlow
2.14.0
plus tard.
Mémoire de l'accélérateur utilisée
La métrique accelerator/memory_used
est générée pour GCE TPU Worker
et suit la mémoire totale de l'accélérateur utilisée en octets. Cette métrique est
sont signalées lorsqu'une charge de travail de machine learning est en cours d'exécution sur la VM TPU. La
La métrique de mémoire de l'accélérateur utilisée est compatible avec JAX
0.4.14 et versions ultérieures,
PyTorch
2.1 et versions ultérieures et
TensorFlow
2.14.0
plus tard.
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 TPU Worker
.
ou GCE TPU Worker
selon la métrique qui vous intéresse.
Sélectionnez une ressource pour afficher toutes les métriques disponibles pour celle-ci.
Si l'option Actif est activé, seules les métriques ayant enregistré des séries temporelles au cours des 25 derniers jours
horaires sont
répertoriés. Désactivez Actives pour répertorier toutes les métriques.
Vous pouvez également accéder aux métriques à l'aide d'appels HTTP curl
.
Utilisez le bouton Essayer dans la documentation de projects.timeSeries.query pour récupérer la valeur d'une métrique au cours de la période spécifiée.
- Saisissez 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 minutes.
fetch tpu_worker | filter zone = 'us-central2-b' | metric tpu.googleapis.com/tpu/tensorcore/idle_duration | within 5m
Cliquez sur Execute (Exécuter) pour effectuer l'appel et afficher les résultats de la requête HTTP POST. .
Documentation de référence sur le langage de requête Monitoring contient plus d'informations sur la personnalisation de cette requête.
Créer des alertes
Vous pouvez créer des règles d'alerte qui indiquent à Cloud Monitoring pour envoyer une alerte lorsqu'une condition est remplie.
Les étapes de cette section illustrent un exemple d'ajout d'une règle d'alerte pour la Métrique Durée d'inactivité TensorCore. 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, un nom à afficher et cliquez sur Enregistrer.
- Sur la page Alertes, cliquez sur Créer une règle.
- Cliquez sur Sélectionner une métrique, puis sur Durée d'inactivité Tensorcore. Appliquer.
- Cliquez sur Suivant, puis sur Seuil.
- Pour Déclencheur d'alerte, sélectionnez À chaque infraction de série temporelle.
- 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é de TensorCore dépasse 24 heures, un e-mail est envoyé au que vous avez spécifiée.
Journalisation
Les entrées de journal sont écrites par des services Google Cloud, des services tiers, les frameworks ou votre code. Vous pouvez afficher les journaux à l'aide de l'explorateur de journaux API. Pour en savoir plus sur la journalisation Google Cloud, consultez la page Google Cloud Logging
Les journaux de nœud de calcul TPU contiennent des informations sur un objet spécifique
Travailleur Cloud TPU dans une zone spécifique, par exemple la quantité de mémoire
disponible sur le travailleur Cloud TPU (system_available_memory_GiB
).
Les journaux de ressources audités contiennent des informations sur les cas
Cloud TPU spécifique
l'API et son auteur. Par exemple, vous pouvez trouver des informations
sur les appels aux API CreateNode
, UpdateNode
et DeleteNode
.
Les frameworks de ML peuvent générer des journaux sur la sortie et l'erreur standards. Ces les journaux sont contrôlés par des variables d'environnement et sont lus par votre instance script.
Votre code peut écrire des journaux dans Google Cloud Logging. Pour plus d'informations, consultez les sections Écrire des journaux standards et Écrire de journaux structurés.
Interroger les journaux Google Cloud
Lorsque vous affichez des journaux dans la console Google Cloud, la page exécute 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 nouvelle. Pour en savoir plus, consultez
Créez des requêtes dans l'explorateur de journaux.
Journaux de ressources audités
Pour afficher les journaux des ressources auditées:
- Accédez à l'explorateur de journaux Google Cloud.
- Cliquez sur le menu déroulant Toutes les ressources.
- Cliquez sur Ressource auditée, puis sur Cloud TPU.
- Choisissez l'API Cloud TPU qui vous intéresse.
- Cliquez sur Appliquer. Les journaux sont affichés dans les résultats de la requête.
Cliquez sur une entrée de journal pour la développer. Chaque entrée de journal comporte plusieurs champs, y compris:
- logName: nom du journal
- protoPayload -> @type: type de journal
- protoPayload -> resourceName: nom de votre Cloud TPU
- protoPayload -> methodName: nom de la méthode appelée (journaux d'audit uniquement)
- protoPayload -> demande -> @type: type de requête
- protoPayload -> demande -> node: détails sur le nœud Cloud TPU
- protoPayload -> demande -> node_id: nom du TPU
- severity: sévérité du journal
Journaux des nœuds de calcul TPU
Pour afficher les journaux d'un nœud de calcul TPU, procédez comme suit:
- Accédez à l'explorateur de journaux Google Cloud.
- Cliquez sur le menu déroulant Toutes les ressources.
- Cliquez sur TPU Worker (Nœud de calcul TPU).
- Sélectionnez une zone.
- Sélectionnez le Cloud TPU qui vous intéresse.
- Cliquez sur Appliquer. Les journaux sont affichés dans les résultats de la requête.
Cliquez sur une entrée de journal pour la développer. Chaque entrée de journal comporte un champ appelé
jsonPayload
Développez jsonPayload
pour afficher plusieurs champs, y compris:
- accelerator_type: type d'accélérateur
- consumer_project: projet dans lequel réside la ressource Cloud TPU
- evententry_timestamp: heure à laquelle le journal a été généré
- system_available_memory_GiB: mémoire disponible sur le travailleur Cloud TPU (0 ~ 350 Gio)
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 pour créer de manière automatisée des métriques basées sur les journaux, Créez des métriques basées sur les journaux de manière automatisée à l'aide de l'API REST de Cloud Logging.
L'exemple suivant utilise le sous-champ system_available_memory_GiB pour Expliquer comment créer une métrique basée sur les journaux pour surveiller Cloud TPU la mémoire disponible du nœud de calcul.
- Accédez à l'explorateur de journaux Google Cloud.
Dans la zone de requête, saisissez la requête suivante pour extraire tout des entrées de journal pour lesquelles system_available_memory_GiB est défini pour 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 la page É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. Pour cet exemple, saisissez "matrix_unit_utilization_percent". et "Utilisation des MXU" dans le champ Nom et Description. Le filtre est prérempli avec le script que vous avez saisi dans le Explorateur de journaux.
Cliquez sur Créer une métrique.
Cliquez sur Afficher dans l'explorateur de métriques pour consulter votre nouvelle métrique. Cela peut prendre quelques minutes avant l'affichage de vos métriques.
Créer des métriques basées sur les journaux avec 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 la page 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 (comptez un délai d'environ deux minutes). alertes sont utiles pour envoyer des notifications en cas d'erreurs. Pour en savoir plus, consultez les pages suivantes :
- Tableaux de bord de surveillance et de journalisation
- Gérer les tableaux de bord personnalisés
- Créer des règles d'alerte basées sur les métriques
Créer des tableaux de bord
Créer un tableau de bord dans Cloud Monitoring pour la durée d'inactivité Tensorcore statistique:
- 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 widget.
- Sélectionnez le type de graphique que vous souhaitez ajouter. Pour cet exemple, choisissez Ligne.
- Saisissez un titre pour le widget.
- Cliquez sur le menu déroulant Sélectionner une métrique et saisissez "Durée d'inactivité Tensorcore". dans le champ de filtre.
- Dans la liste des métriques, sélectionnez TPU Worker -> Tpu -> Durée d'inactivité Tensorcore.
- Pour filtrer le contenu du tableau de bord, cliquez sur le menu déroulant Filtre.
- Sous Libellés de ressource, sélectionnez project_id.
- Choisissez un comparateur et saisissez une valeur dans le champ Valeur.
- Cliquez sur Appliquer.