Monitoraggio dei nodi di Cloud TPU
Questa guida spiega come utilizzare Google Cloud Monitoring per monitorare i nodi Cloud TPU. Google Cloud Monitoring raccoglie automaticamente metriche e log da Cloud TPU e dal suo host Compute Engine. Questi dati possono essere utilizzati per monitorare l'integrità di Cloud TPU e Compute Engine.
Le metriche consentono di monitorare una quantità numerica nel tempo, ad esempio l'utilizzo della CPU, l'utilizzo della rete o l'utilizzo MXU. I log acquisiscono gli eventi in un momento specifico. Le voci di log vengono scritte dal tuo codice, dai servizi Google Cloud, dalle applicazioni di terze parti e dall'infrastruttura Google Cloud. Puoi anche generare metriche dai dati presenti in una voce di log creando una metrica basata su log. Puoi anche impostare i criteri di avviso in base ai valori delle metriche o alle voci di log.
Questa guida illustra Google Cloud Monitoring e spiega come:
- Visualizza metriche di Cloud TPU
- Configura i criteri di avviso per le metriche di Cloud TPU
- Esegui query sui log di Cloud TPU
- Crea metriche basate su log per la configurazione degli avvisi e la visualizzazione delle dashboard.
Prerequisiti
Questo documento presuppone alcune conoscenze di base di Google Cloud Monitoring. Devi aver creato una VM di Compute Engine e delle risorse Cloud TPU prima di iniziare a generare e utilizzare Google Cloud Monitoring. Per ulteriori dettagli, consulta la guida rapida di Cloud TPU.
Metriche
Le metriche di Google Cloud vengono generate automaticamente dalle VM di Compute Engine e dal runtime di Cloud Cloud TPU. Le seguenti metriche vengono generate dai nodi di Cloud TPU:
cpu/utilization
memory/usage
network/received_bytes_count
network/sent_bytes_count
tpu/mxu/utilization
tpu/tensorcore/idle_duration
Utilizzo CPU
La metrica cpu/utilization
monitora l'utilizzo attuale della CPU sul worker di Cloud TPU, rappresentato come una percentuale. I valori sono generalmente compresi tra 0,0 e 100,0, ma potrebbero superare 100,0. Campionamento eseguito ogni 60 secondi. Potrebbero trascorrere fino a 180 secondi tra il momento in cui viene generato un valore e il momento in cui viene visualizzato.
Utilizzo memoria
La metrica memory/usage
monitora la memoria attualmente utilizzata dalla VM Cloud TPU in byte. Questa metrica viene campionata ogni 60 secondi. Potrebbero trascorrere fino a 180 secondi tra il momento in cui viene generato un valore e il momento in cui viene visualizzato.
Numero di byte ricevuti dalla rete
La metrica network/received_bytes_count
monitora il numero di byte cumulativi di dati ricevuti dalla VM Cloud TPU in un dato momento nella rete. Potrebbero trascorrere fino a 180 secondi tra il momento in cui viene generato un valore e il momento in cui viene visualizzato.
Conteggio byte inviati dalla rete
La metrica network/sent_bytes_count
monitora il numero di byte cumulativi
che la VM Cloud TPU ha inviato sulla rete in un determinato momento. Potrebbero trascorrere fino a 180 secondi tra il momento in cui viene generato un valore e il momento in cui viene visualizzato.
Durata inattività TensorCore
La metrica tpu/tensorcore/idle_duration
monitora il numero di secondi di inattività di TensorCore di ciascun chip TPU. Questa metrica è disponibile per ogni chip su tutte le TPU in uso. Se è in uso un TensorCore, il valore di durata inattività viene reimpostato su zero. Quando TensorCore non è più in uso, il valore della durata di inattività inizia ad aumentare.
Il seguente grafico mostra la metrica tpu/tensorcore/idle_duration
per una VM Cloud TPU v2-8 con un solo worker. Ogni worker ha quattro chip. In questo esempio, tutti e quattro i chip hanno gli stessi valori per tpu/tensorcore/idle_duration
, quindi i grafici si sovrappongono a vicenda.
Utilizzo MXU
La metrica tpu/mxu/utilization
monitora l'attuale utilizzo di MXU sul worker TPU, espresso in percentuale. I valori sono in genere numeri compresi tra 0,0 e 100,0. Campionamento eseguito ogni 60 secondi. Dopo il campionamento, i dati non sono visibili per un massimo di 180 secondi.
Per un elenco completo delle metriche generate da Cloud TPU, consulta le metriche di Cloud TPU.
Visualizzazione delle metriche
Puoi visualizzare le metriche utilizzando Metrics Explorer nella console Google Cloud.
In Metrics Explorer, fai clic su SELEZIONA UNA METRICA e cerca Cloud TPU Worker
. Se l'opzione Mostra solo risorse e metriche attive è
attiva, verranno visualizzate solo le metriche attualmente generate. Fai clic su Worker Cloud TPU per visualizzare le metriche disponibili.
Per accedere alle metriche puoi anche utilizzare le chiamate HTTP di curl:
Utilizza il pulsante Prova nella documentazione relativa ai progetti.timeSeries.query per recuperare il valore di una metrica entro il periodo di tempo specificato.
- Inserisci il nome nel seguente formato: projects/{project-name}
- Aggiungi una query alla sezione Richiesta. Di seguito è riportato un esempio di query per recuperare la metrica di durata inattiva per la zona specificata negli ultimi 5 minuti
fetch tpu_worker | filter zone = 'us-central2-b' | metric tpu.googleapis.com/tpu/tensorcore/idle_duration | within 5m"
- Fai clic su Esegui per recuperare i risultati del messaggio HTTP POST.
Il documento di monitoraggio del linguaggio di query in Monitoring contiene ulteriori informazioni su come personalizzare questa query.
Puoi creare criteri di avviso che indicano a Google Cloud Monitoring di inviare un avviso quando una condizione è soddisfatta.
Creazione di avvisi
I passaggi di questa sezione mostrano un esempio di come aggiungere un criterio di avviso per la metrica Durata di inattività di TensorCore. Ogni volta che questa metrica supera le 24 ore, Cloud Monitoring invia un'email all'indirizzo registrato.
- Vai alla console di Monitoring
- Nel riquadro di navigazione, fai clic su Avvisi.
- Fai clic su MODIFICA CANALI DI NOTIFICA.
- In Email, fai clic su AGGIUNGI NUOVO.
- Digita un indirizzo email e un nome visualizzato, quindi fai clic su SALVA
- Fai clic su CREA CRITERIO
- Fai clic su SELEZIONA UNA METRICA, seleziona Tensorcore Idle Duration e fai clic su APPLICA
- Fai clic su AVANTI e poi su Soglia.
- Per Attivazione avviso, seleziona Qualsiasi serie temporale viola
- In Posizione soglia, seleziona Sopra la soglia
- In Valore soglia, digita
86400000
. - Fai clic su AVANTI.
- In Canali di notifica seleziona il tuo canale di notifica email e fai clic su OK.
- Inserisci un nome per il criterio di avviso
- Fai clic su AVANTI e poi su CREA CRITERIO
Quando il valore di inattività di TensorCore supera le 24 ore, viene inviata un'email all'indirizzo specificato.
Logging
Le voci di log vengono scritte da servizi Google Cloud, servizi di terze parti, framework di ML o codice. Puoi visualizzare i log utilizzando il visualizzatore log o l'API Logs. Per saperne di più sul logging di Google Cloud, consulta Google Cloud Logging.
In Esplora log puoi selezionare un tipo di risorsa:
- Cloud TPU Worker -> Zona -> ID nodo
- Risorsa controllata -> Cloud TPU -> API (
google.cloud.tpu.v1.Tpu.CreateNode
,google.cloud.tpu.v1.Tpu.DeleteNode
,google.cloud.tpu.v1.Tpu.UpdateNode
)
I log worker Cloud TPU contengono informazioni su un worker Cloud TPU specifico in una zona specifica, ad esempio la quantità di memoria disponibile sul worker Cloud TPU
(system_available_memory_GiB
).
I log di risorse controllate contengono informazioni su quando è stata chiamata una specifica API Cloud TPU e su chi ha effettuato la chiamata. Ad esempio CreateNode
,
UpdateNode
e DeleteNode
.
I framework ML possono generare log in stdout
e stderr
. Questi log vengono controllati dalle variabili di ambiente e vengono letti dallo script di addestramento.
Il tuo codice può scrivere log in Google Cloud Logging. Per ulteriori informazioni, consulta Scrivere log standard e Scrivere log strutturati.
Visualizzazione dei log di Cloud TPU
- Vai al visualizzatore log di Google Cloud
- Fai clic sul menu a discesa Risorsa
- Fai clic su Cloud TPU Worker (Lavoratore TPU Cloud)
- Seleziona una zona
- Seleziona la Cloud TPU che ti interessa
- Fai clic su Applica. I log vengono visualizzati nei risultati della query
Per visualizzare i log delle risorse controllate:
- Vai al visualizzatore log di Google Cloud
- Fai clic sul menu a discesa Risorsa
- Fai clic su Risorsa controllata, quindi su Cloud TPU.
- Scegli l'API Cloud TPU che ti interessa
- Fai clic su Applica. I log vengono visualizzati nei risultati della query
- Scegli le API che iniziano con
google.cloud.tpu.v1.Tpu
Esegui query sui log di Google Cloud
Quando visualizzi i log nella console Google Cloud, la pagina esegue una query predefinita.
Puoi visualizzare la query selezionando l'opzione Show query
. Puoi modificare la query predefinita o crearne una nuova. Per saperne di più, consulta Creare query in Esplora log.
Informazioni sull'output dei log per i log delle risorse controllate
Fai clic su una voce di log per espanderla e troverai un campo denominato protoPayload
.
Espandi protoPayload
per visualizzare una serie di sottocampi:
- logName: il nome del log
- protoPayload -> @type: il tipo di log
- resourceName: il nome della tua Cloud TPU
- methodName: il nome del metodo chiamato (solo log di controllo)
- request -> @type: il tipo di richiesta
- request -> node: dettagli sul nodo Cloud TPU
- request -> node_id: il nome della TPU
- gravità: la gravità del log
Informazioni sull'output dei log per i log dei worker di Cloud TPU
Fai clic su una voce di log per espanderla e troverai un campo denominato jsonPayload
.
Espandi jsonPayload
per visualizzare una serie di sottocampi:
- accelerator_type: il tipo di acceleratore
- consumer_project: il progetto in cui si trova Cloud TPU
- evententry_timestamp: l'ora in cui è stato generato il log.
- system_available_memory_GiB: la memoria disponibile sul worker di Cloud TPU (0~350 GB)
Creazione di metriche basate su log
Questa sezione descrive come creare metriche basate su log utilizzate per configurare dashboard e avvisi di monitoraggio. Per informazioni sulla creazione programmatica di metriche basate su log, consulta Creazione di metriche basate su log in modo programmatico utilizzando l'API REST di Cloud Logging.
L'esempio seguente utilizza il sottocampo system_available_memory_GiB per mostrare come creare una metrica basata su log per il monitoraggio della memoria disponibile del worker Cloud TPU.
- Vai a Esplora log
Nella casella della query, inserisci la query seguente per estrarre tutte le voci di log con system_available_memory_GiB definite per il worker Cloud TPU principale:
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:*
Fai clic su Crea metrica per visualizzare l'editor delle metriche
In Tipo di metrica, scegli Distribuzione
Inserisci un nome, una descrizione facoltativa e l'unità di misura per la metrica. inserisci "matrix_unit_utilization_percent" e "utilizzo MXU" nei campi Nome e Descrizione, rispettivamente
Il filtro viene precompilato con lo script inserito in Esplora log
Fai clic su CREA METRICA.
Fai clic su Esplora metriche per visualizzare la nuova metrica. La visualizzazione delle metriche potrebbe richiedere alcuni minuti
Creazione di metriche basate su log in modo programmatico utilizzando l'API REST di Cloud Logging
Puoi anche creare metriche basate su log tramite l'API Cloud Logging. Per saperne di più, consulta Creazione di una metrica di distribuzione.
Creazione di dashboard e avvisi utilizzando metriche basate su log
Le dashboard sono utili per visualizzare le metriche (previsto circa 2 minuti); gli avvisi sono utili per inviare notifiche quando si verificano errori. Per ulteriori informazioni, consulta Gestire le dashboard personalizzate e Creare criteri di avviso basati su metriche.
Creazione di dashboard
Per creare una dashboard in Cloud Monitoring per la metrica Durata inattività di Tensorcore:
- Vai alla console di Monitoring
- Nel pannello di navigazione, fai clic su Dashboard.
- Fai clic su CREA DASHBOARD, quindi su Aggiungi grafico.
- Scegli il grafico che vuoi aggiungere. Per questo esempio, scegli Linea
- Digita un titolo per la dashboard
- Fai clic sul pulsante sotto Risorsa e metrica
- Scorri l'elenco di risorse/metriche e seleziona Worker Cloud TPU -> Tpu -> Durata inattività Tensorcore
- Fai clic su Applica.
- Per filtrare i contenuti della dashboard, fai clic su CREA FILTRI DELLA DASHBOARD.
- Nel campo Etichetta, imposta project_id sul tuo progetto
- Fai clic su AGGIUNGI e imposta zona sulla zona in cui hai creato la TPU
- Aggiungi un altro filtro per node_id e specifica il tuo nome Cloud TPU