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 consentono di tracciare una quantità numerica nel tempo, ad esempio utilizzo della rete o durata di inattività di TensorCore. Eventi di acquisizione dei log alle 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 criteri di avviso in base ai valori delle metriche o alle voci di log.
Questa guida illustra Google Cloud Monitoring e mostra come:
- Visualizza le metriche di Cloud TPU
- Configurare i criteri di avviso per le metriche di Cloud TPU
- Eseguire query sui log di Cloud TPU
- Crea metriche basate su log per configurare avvisi e visualizzazione delle dashboard
Prerequisiti
Questo documento presuppone una conoscenza 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 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
tiene traccia dell'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 un chip TensorCore
è in uso, il valore della durata di inattività viene reimpostato su zero. Se TensorCore
in uso, il valore della durata di inattività 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,
quattro chip hanno gli stessi valori per tpu/tensorcore/idle_duration
, quindi
grafici sono sovrapposti.
Utilizzo TensorCore
La metrica accelerator/tensorcore_utilization
viene generata per la risorsa GCE TPU
Worker
e monitora la percentuale attuale di TensorCore che
utilizzato. 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 TensorCore è supportata dalla versione 4 e dalle TPU più recenti
generazioni.
Utilizzo larghezza di banda memoria
La metrica accelerator/memory_bandwidth_utilization
viene generata per
GCE TPU Worker
risorsa e tiene traccia della percentuale attuale dell'acceleratore
per la larghezza di banda della memoria 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ù alto indica un migliore utilizzo. 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 più alto significa un migliore utilizzo di TensorCore. Questa metrica è
quando un carico di lavoro di machine learning è in esecuzione sulla VM TPU. La
La metrica del ciclo di lavoro dell'acceleratore è supportata per JAX
0.4.14 e versioni successive,
PyTorch
2.1 e successive e
TensorFlow
2.14.0 e
in un secondo momento.
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 segnalata quando un carico di lavoro di machine learning è in esecuzione sulla TPU
VM. La metrica Totale memoria acceleratore è supportata per JAX
0.4.14 e versioni successive,
PyTorch
2.1 e successive e
TensorFlow
2.14.0 e
in un secondo momento.
Memoria utilizzata dall'acceleratore
La metrica accelerator/memory_used
viene generata per la risorsa GCE TPU Worker
e monitora la memoria acceleratore totale utilizzata in byte. Questa metrica è
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 Esplora metriche. 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 visualizzarne tutte le metriche disponibili.
Se l'opzione Attivo è attivata, vengono elencate solo le metriche con dati di serie temporali nelle ultime 25 ore. Disabilita Attivo per elencare tutte le metriche.
Puoi anche accedere alle metriche utilizzando le curl
chiamate HTTP.
Utilizza il pulsante Prova! nella documentazione diprojects.timeSeries.query per recuperare il valore di una metrica nel periodo di tempo specificato.
- Inserisci il nome nel seguente formato:
projects/{project-name}
. Aggiungi una query alla sezione Corpo della richiesta. Di seguito è riportato un esempio di query per recuperare la metrica relativa alla durata di inattività 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 dell'HTTP POST per creare un nuovo messaggio email.
Il riferimento di Monitoring Query Language documento contiene ulteriori informazioni su come personalizzare questa query.
Creazione di avvisi
Puoi creare criteri di avviso che indichino a Cloud Monitoring per inviare un avviso quando una condizione è soddisfatta.
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 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.
- 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'account all'indirizzo email specificato.
Logging
Le voci di log sono scritte da servizi Google Cloud, servizi di terze parti, ML framework o il tuo codice. Puoi visualizzare i log utilizzando Esplora log o Log tramite Google Cloud CLI o tramite l'API Compute Engine. Per ulteriori informazioni su Cloud Logging, consulta Cloud Logging.
I log dei worker TPU contengono informazioni su uno specifico
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 con output standard ed errori standard. Questi log sono 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.
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, vedi
Crea query in Esplora log.
Log delle risorse controllati
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 ad audit 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 del 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 -> richiesta -> node_id: il nome della TPU
- severity: la gravità del log
Log 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 Worker 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 del 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: memoria disponibile sul worker Cloud TPU (0 ~ 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 di Cloud TPU di memoria disponibile per i worker.
- 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 che hai inserito nel Esplora log.
Fai clic su Crea metrica.
Fai clic su Visualizza in Esplora metriche per visualizzare la nuova metrica. L'operazione potrebbe richiedere 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 saperne di più, consulta la sezione Creare una metrica di distribuzione.
Creazione di dashboard e avvisi utilizzando 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
- Crea 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 A linee.
- 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 Worker TPU -> Tpu -> Durata di inattività Tensor.
- Per filtrare i contenuti della dashboard, fai clic sul menu a discesa Filtro.
- In Etichette risorse, seleziona project_id.
- Scegli un criterio di confronto e digita un valore nel campo Valore.
- Fai clic su Applica.