Monitora le VM Cloud TPU
Questa guida spiega come utilizzare Google Cloud Monitoring per monitorare le VM Cloud TPU. Google Cloud Monitoring raccoglie automaticamente le metriche e i log da Cloud TPU e dal relativo host Compute Engine. Questi dati possono essere utilizzati per monitorare l'integrità di Cloud TPU e Compute Engine.
Le metriche ti consentono di monitorare una quantità numerica nel tempo, ad esempio l'utilizzo della CPU, l'utilizzo della rete o la durata inattivo di TensorCore. I log acquisiscono gli eventi in un determinato momento. 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 criteri di avviso in base ai valori delle metriche o alle voci di log.
Questa guida illustra Cloud Monitoring e mostra come:
- Visualizzare le metriche di Cloud TPU
- Configurare i criteri di avviso per le metriche Cloud TPU
- Eseguire query sui log di Cloud TPU
- Crea metriche basate su log per configurare avvisi e visualizzare dashboard
Prerequisiti
Questo documento presuppone alcune conoscenze di base di Google Cloud Monitoring. Devi aver creato una VM Compute Engine e risorse Cloud TPU prima di poter iniziare a generare e utilizzare Google Cloud Monitoring. Per maggiori dettagli, consulta la guida rapida di Cloud TPU.
Metriche
Le metriche di Google Cloud vengono generate automaticamente dalle VM Compute Engine e dal runtime Cloud TPU. Le seguenti metriche vengono generate dalle 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
Possono trascorrere fino a 180 secondi tra il momento in cui viene generato un valore della metrica e il momento in cui viene visualizzato nell'esploratore Metriche.
Per un elenco completo delle metriche generate da Cloud TPU, consulta Metriche di Cloud TPU di Google Cloud.
Utilizzo memoria
La metrica memory/usage
viene generata per la risorsa TPU Worker
e monitora la memoria utilizzata dalla VM TPU in byte. Questa metrica viene campionata ogni 60 secondi.
Conteggio byte di rete ricevuti
La metrica network/received_bytes_count
viene generata per la risorsa TPU Worker
e monitora il numero di byte cumulativi di dati ricevuti dalla VM TPU
tramite la rete in un determinato momento.
Conteggio byte di rete inviati
La metrica network/sent_bytes_count
viene generata per la risorsa TPU Worker
e monitora il numero di byte cumulativi inviati dalla VM TPU tramite la rete in un
determinato momento.
Utilizzo CPU
La metrica cpu/utilization
viene generata per la risorsa TPU Worker
e monitora l'utilizzo attuale della CPU sul worker TPU, rappresentato in percentuale, campionato una volta al minuto. I valori sono in genere compresi tra 0,0 e 100,0, ma potrebbero superare 100,0.
Durata di inattività di TensorCore
La metrica tpu/tensorcore/idle_duration
viene generata per la risorsa TPU Worker
e monitora il numero di secondi in cui il TensorCore di ogni chip TPU è stato attivo. Questa metrica è disponibile per ogni chip su tutte le TPU in uso. Se è in uso un TensorCore, il valore della durata inattiva viene reimpostato su zero. Quando TensorCore non è più in uso, il valore della durata inattivo inizia ad aumentare.
Il seguente grafico mostra la metrica tpu/tensorcore/idle_duration
per una VM TPU v2-8 con un worker. Ogni worker ha quattro chip. In questo esempio, tutti i quattro i chip hanno gli stessi valori per tpu/tensorcore/idle_duration
, quindi i grafici sono sovrapposti.
Utilizzo TensorCore
La metrica accelerator/tensorcore_utilization
viene generata per la risorsa GCE TPU
Worker
e monitora la percentuale corrente di TensorCore impiegata. Questa metrica viene calcolata dividendo il numero di operazioni
TensorCore eseguite in un periodo di campionamento per il numero massimo di operazioni
che possono essere eseguite nello stesso periodo di campionamento. Un valore più elevato indica un utilizzo migliore. La metrica di utilizzo di TensorCore è supportata dalle generazioni TPU v4 e successive.
Utilizzo larghezza di banda memoria
La metrica accelerator/memory_bandwidth_utilization
viene generata per la risorsa GCE TPU Worker
e monitora la percentuale corrente della larghezza di banda della memoria dell'acceleratore in uso. Questa metrica viene calcolata dividendo la larghezza di banda della memoria utilizzata in un periodo di campionamento per la larghezza di banda massima supportata nello stesso periodo di campionamento. Un valore più elevato indica un utilizzo migliore. La metrica Utilizzo larghezza di banda memoria è supportata dalle generazioni TPU v4 e successive.
Ciclo di servizio dell'acceleratore
La metrica accelerator/duty_cycle
viene generata per la risorsa GCE TPU Worker
e monitora la percentuale di tempo nel periodo di campionamento durante il quale
l'acceleratore TensorCore ha eseguito attivamente l'elaborazione. I valori vanno da 0
a 100. Un valore maggiore indica un migliore utilizzo di TensorCore. Questa metrica viene riportata quando un carico di lavoro di machine learning è in esecuzione sulla VM TPU. La metrica Ciclo di lavoro dell'acceleratore è supportata per JAX 0.4.14 e versioni successive, PyTorch 2.1 e versioni successive e
TensorFlow 2.14.0 e versioni successive.
Memoria acceleratore totale
La metrica accelerator/memory_total
viene generata per la risorsa GCE TPU Worker
e monitora la memoria acceleratore totale allocata in byte.
Questa metrica viene registrata quando un carico di lavoro di machine learning è in esecuzione sulla VM TPU. La metrica Memoria acceleratore totale è supportata per JAX
0.4.14 e versioni successive,
PyTorch
2.1 e versioni successive e
TensorFlow
2.14.0 e
successive.
Memoria acceleratore utilizzata
La metrica accelerator/memory_used
viene generata per la risorsa GCE TPU Worker
e monitora la memoria acceleratore totale utilizzata in byte. Questa metrica viene riportata quando un carico di lavoro di machine learning è in esecuzione sulla VM TPU. La metrica Memoria acceleratore utilizzata è supportata per JAX 0.4.14 e versioni successive, PyTorch 2.1 e versioni successive e
TensorFlow 2.14.0 e versioni successive.
Visualizzazione delle metriche
Puoi visualizzare le metriche utilizzando Metric Explorer nella console Google Cloud.
In Esplora metriche, fai clic su Seleziona una metrica e cerca TPU Worker
o GCE TPU Worker
a seconda della metrica che ti interessa.
Seleziona una risorsa per visualizzare tutte le metriche disponibili per quella risorsa.
Se l'opzione Attivo è attiva, vengono elencate solo le metriche con dati di serie temporali nelle ultime 25 ore. Disattiva Attive per elencare tutte le metriche.
Puoi anche accedere alle metriche utilizzando le curl
chiamate HTTP.
Utilizza il pulsante Prova nella documentazione di projects.timeSeries.query per recuperare il valore di una metrica nell'intervallo di tempo specificato.
- Inserisci il nome nel seguente formato:
projects/{project-name}
. Aggiungi una query alla sezione Corpo della richiesta. Di seguito è riportata una query di esempio per recuperare la metrica della durata inattiva per la zona specificata negli ultimi cinque minuti.
fetch tpu_worker | filter zone = 'us-central2-b' | metric tpu.googleapis.com/tpu/tensorcore/idle_duration | within 5m
Fai clic su Esegui per effettuare la chiamata e visualizzare i risultati del messaggio HTTP POST.
Il documento Monitoring Query Language reference contiene ulteriori informazioni su come personalizzare questa query.
Creazione di avvisi
Puoi creare criteri di avviso che indicano a Cloud Monitoring di inviare un avviso quando viene soddisfatta una condizione.
I passaggi riportati in questa sezione mostrano un esempio di come aggiungere un criterio di avviso per la metrica Durata inattività TensorCore. Ogni volta che questa metrica supera le 24 ore, Cloud Monitoring invia un'email all'indirizzo email registrato.
- Vai alla console di monitoraggio.
- 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.
- Nella pagina Avvisi, fai clic su Crea criterio.
- Fai clic su Seleziona una metrica, poi seleziona Durata inattività tensor core e fai clic su Applica.
- Fai clic su Avanti e poi su Soglia.
- Per Attivatore di avvisi, seleziona Qualsiasi violazione della serie temporale.
- In Posizione soglia, seleziona Sopra la soglia.
- In Valore soglia, digita
86400000
. - Fai clic su Avanti.
- In Canali di notifica, seleziona il canale di notifica via email e fai clic su Ok.
- Digita un nome per il criterio di avviso.
- Fai clic su Avanti, quindi su Crea criterio.
Quando la durata di inattività di TensorCore supera le 24 ore, viene inviata un'email all'indirizzo email specificato.
Logging
Le voci di log vengono scritte dai servizi Google Cloud, da servizi di terze parti, da framework di ML o dal tuo codice. Puoi visualizzare i log utilizzando Esplora log o l'API Logs. Per ulteriori informazioni su Google Cloud Logging, consulta Cloud Logging.
I log del worker TPU contengono informazioni su un determinato worker Cloud TPU in una zona specifica, ad esempio la quantità di memoria disponibile sul worker Cloud TPU (system_available_memory_GiB
).
I log delle risorse sottoposte a controllo contengono informazioni su quando è stata chiamata un'API Cloud TPU specifica e da chi è stata effettuata la chiamata. Ad esempio, puoi trovare informazioni sulle chiamate alle API CreateNode
, UpdateNode
e DeleteNode
.
I framework ML possono generare log per l'output standard e l'errore standard. Questi log sono controllati dalle variabili di ambiente e vengono letti dallo script di addestramento.
Il codice può scrivere log in Google Cloud Logging. Per ulteriori informazioni, consulta Scrivere log standard e Scrivere log strutturati.
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 di attivazione/disattivazione Show query
. Puoi
modificare la query predefinita o crearne una nuova. Per ulteriori informazioni, consulta
Creare query in Esplora log.
Log delle risorse sottoposte a controllo
Per visualizzare i log delle risorse controllate:
- Vai a Esplora log di Google Cloud.
- Fai clic sul menu a discesa Tutte le risorse.
- Fai clic su Risorsa sottoposta a controllo e poi su Cloud TPU.
- Scegli l'API Cloud TPU che ti interessa.
- Fai clic su Applica. I log vengono visualizzati nei risultati della query.
Fai clic su una voce di log per espanderla. Ogni voce di log contiene più campi, tra cui:
- logName: il nome del log
- protoPayload -> @type: il tipo di log
- protoPayload -> resourceName: il nome della tua Cloud TPU
- protoPayload -> methodName: il nome del metodo chiamato (solo log di controllo)
- protoPayload -> request -> @type: il tipo di richiesta
- protoPayload -> request -> node: dettagli sul nodo Cloud TPU
- protoPayload -> request -> node_id: il nome della TPU
- severity: la gravità del log
Log del worker TPU
Per visualizzare i log del worker TPU:
- Vai a Esplora log di Google Cloud.
- Fai clic sul menu a discesa Tutte le risorse.
- Fai clic su Nodo di lavoro TPU.
- Seleziona una zona.
- Seleziona la Cloud TPU che ti interessa.
- Fai clic su Applica. I log vengono visualizzati nei risultati della query.
Fai clic su una voce di log per espanderla. Ogni voce di log ha un campo chiamato
jsonPayload
. Espandi jsonPayload
per visualizzare più campi, tra cui:
- accelerator_type: il tipo di acceleratore
- consumer_project: il progetto in cui si trova la Cloud TPU
- evententry_timestamp: l'ora in cui è stato generato il log
- system_available_memory_GiB: la memoria disponibile sul worker Cloud TPU (da 0 a 350 GiB)
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 delle metriche basate su log, consulta Creare metriche basate su log in modo programmatico utilizzando l'API REST Cloud Logging.
L'esempio seguente utilizza il sottocampo system_available_memory_GiB per dimostrare come creare una metrica basata su log per il monitoraggio della memoria disponibile del worker Cloud TPU.
- Vai a Esplora log di Google Cloud.
Nella casella di query, inserisci la seguente query per estrarre tutte le voci di log con system_available_memory_GiB definito 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.
Digita un nome, una descrizione facoltativa e l'unità di misura per la metrica. Per questo esempio, digita "matrix_unit_utilization_percent" e "Utilizzo MXU" rispettivamente nei campi Nome e Descrizione. Il filtro viene precompilato con lo script inserito in Esplora log.
Fai clic su Crea metrica.
Fai clic su Visualizza in Esplora metriche per visualizzare la nuova metrica. Potrebbero essere necessari alcuni minuti prima che le metriche vengano visualizzate.
Creazione di metriche basate su log con l'API REST Cloud Logging
Puoi anche creare metriche basate su log tramite l'API Cloud Logging. Per ulteriori informazioni, consulta la sezione Creare una metrica di distribuzione.
Creazione di dashboard e avvisi utilizzando le metriche basate su log
Le dashboard sono utili per visualizzare le metriche (prevedi un ritardo di circa 2 minuti); gli avvisi sono utili per inviare notifiche in caso di errori. Per ulteriori informazioni, consulta:
- Dashboard di monitoraggio e logging
- Gestire le dashboard personalizzate
- Creare criteri di avviso basati su metriche
Creazione di dashboard
Per creare una dashboard in Cloud Monitoring per la metrica Durata inattività Tensorcore:
- Vai alla console di monitoraggio.
- Nel riquadro di navigazione, fai clic su Dashboard.
- Fai clic su Crea dashboard e poi su Aggiungi widget.
- Scegli il tipo di grafico che vuoi aggiungere. Per questo esempio, scegli Linea.
- Digita un titolo per il widget.
- Fai clic sul menu a discesa Seleziona una metrica e digita "Durata inattività Tensorcore" nel campo del filtro.
- Nell'elenco delle metriche, seleziona Operatore TPU -> Tpu -> Durata inattività Tensorcore.
- Per filtrare i contenuti della dashboard, fai clic sul menu a discesa Filtro.
- In Etichette delle risorse, seleziona project_id.
- Scegli un criterio di confronto e digita un valore nel campo Valore.
- Fai clic su Applica.