Monitoraggio dell'integrità di Cloud TPU

Il monitoraggio dell'integrità di Cloud TPU fornisce informazioni in tempo reale sullo stato di integrità delle VM TPU e delle sezioni TPU. Utilizzando la console Cloud Monitoring o Google Cloud CLI, puoi identificare i guasti hardware man mano che si verificano e riallocare le risorse, evitando errori dei job e riducendo al minimo il degrado delle prestazioni.

Il monitoraggio dell'integrità della TPU assegna lo stato HEALTHY o UNHEALTHY a ogni istanza TPU in uso. Alle TPU che funzionano come previsto viene assegnato lo HEALTHY stato, mentre a quelle che non sono più funzionali o che funzionano a un livello notevolmente ridotto viene assegnato lo stato UNHEALTHY.

Oltre allo stato di integrità, il monitoraggio dell'integrità della TPU fornisce metriche di logging per job specifici. Puoi utilizzare queste metriche per diagnosticare ulteriormente i problemi di integrità e prestazioni della TPU che non sono causati da problemi hardware.

Rilevamento di TPU non integre

Quando il monitoraggio dell'integrità della TPU assegna lo stato UNHEALTHY a una TPU, fornisce informazioni di identificazione della TPU non funzionante tramite l'endpoint del servizio compute.googleapis.com/instance/tpu/infra_health.

Cause dello stato di integrità della TPU

Una macchina viene classificata come UNHEALTHY quando si verificano problemi con l'hardware fisico. Quando una macchina viene classificata come UNHEALTHY, il monitoraggio dell'integrità della TPU fornisce una delle seguenti cause:

  • BAD_TPU_CHIP: un guasto fisico all'interno dell'hardware della TPU. La VM potrebbe essere in esecuzione come previsto, ma una TPU collegata alla VM è difettosa.
  • NETWORKING_ISSUE: problemi hardware nella comunicazione di rete sottostante tra i diversi worker o componenti del sistema TPU distribuito, ad esempio chiamate di procedura remota (RPC) di trasferimento eliminate.
  • BAD_SC_CHIP: un guasto fisico all'interno di uno SparseCore di un chip TPU.

Etichette metriche

Il monitoraggio dell'integrità della TPU fornisce le seguenti etichette metriche per identificare la TPU non integra specifica:

Nome etichetta Tipo Descrizione
health_status STRING Lo stato di integrità complessivo dell'istanza TPU.
unhealthy_category STRING La causa dello stato di integrità. Questa etichetta viene compilata solo quando il valore della metrica è UNHEALTHY.
machine_type STRING Il tipo di macchina Compute Engine dell'istanza.
reservation_id STRING L'ID della prenotazione della macchina fisica.

Il monitoraggio dell'integrità della TPU fornisce anche le seguenti etichette delle risorse:

Nome etichetta Tipo Descrizione
project STRING Il numero del progetto.
service STRING Il servizio API (compute.googleapis.com).
resource_type STRING L'istanza VM.
location STRING La zona dell'istanza.
resource_id STRING L'ID istanza Compute Engine.

Il monitoraggio dell'integrità della TPU fornisce le seguenti etichette metriche aggiuntive per le prenotazioni in modalità Capacità totale tramite TPU Cluster Director:

Nome etichetta Tipo Descrizione
machine_id STRING L'ID della macchina fisica che ospita la VM.
block_id STRING L'ID del blocco all'interno del cluster che ospita la VM.
cluster_id STRING L'ID del cluster che ospita la VM.
subblock_id STRING L'ID del sottoblocco che ospita la VM.

Logging

Una macchina senza problemi fisici potrebbe essere danneggiata o non funzionante a causa di problemi non correlati all'hardware. In questi casi, il monitoraggio dell'integrità della TPU continua a classificare la macchina come HEALTHY, ma registra anche le potenziali cause del problema con Cloud Logging nel progetto associato. I log forniscono dettagli sul problema, tra cui una breve descrizione, la causa principale sospetta, i potenziali responsabili e i passaggi successivi.

I log contengono una delle seguenti cause:

  • FINGERPRINT_MISMATCH: i programmi che dovrebbero eseguire lo stesso modulo TPU contengono impronte binarie diverse. Ciò è probabilmente dovuto a incoerenze causate da problemi del compilatore.
  • DATA_INPUT_STALL: le TPU sono bloccate durante le operazioni di accesso diretto alla memoria (DMA) o i trasferimenti di dati. Le TPU non possono continuare finché le operazioni DMA non vengono completate.
  • UNRECOVERABLE_ERROR: uno o più worker hanno riscontrato un errore non recuperabile e si trovano in uno stato indefinito.
  • DIFFERENT_MODULE: i worker eseguono moduli TPU diversi quando dovrebbero eseguire lo stesso modulo.
  • UNKNOWN_CAUSE: causa di errore non determinata.

Puoi visualizzare i log utilizzando Esplora log o l'API Logs. Per saperne di più sul Google Cloud logging, consulta Google Cloud Logging.

Monitoraggio con la console

La dashboard di monitoraggio nella Google Cloud console fornisce visualizzazioni in tempo reale dello stato di integrità della macchina, delle tendenze storiche e dei conteggi totali. La tabella Evento di errore collega gli errori dei job alle relative cause principali.

Per visualizzare una dashboard predefinita in Cloud Monitoring:

  1. Nella Google Cloud console, vai alla pagina Cloud Monitoring.
    Vai alla console Monitoring
  2. Nel riquadro di navigazione, fai clic su Dashboard.
  3. Nel campo Filtra ricerca, inserisci "Dashboard di integrità dell'istanza TPU".

Per impostazione predefinita, la dashboard mostra le seguenti metriche:

  • Integrità complessiva dell'istanza TPU: la percentuale di istanze TPU classificate come HEALTHY.
  • Numero di istanze: il numero totale di istanze TPU in uso.
  • Numero di istanze TPU integre: il numero totale di istanze TPU classificate come HEALTHY.
  • Numero di istanze TPU non integre: il numero totale di istanze TPU classificate come UNHEALTHY.
  • Distribuzione dell'integrità dell'infrastruttura VM: il numero di istanze HEALTHY nel tempo.

Per aggiungere una query personalizzata, fai clic su Aggiungi query e scrivi una query PromQL. Ad esempio, la seguente query recupera tutte le istanze TPU non integre:

count({__name__="compute.googleapis.com/instance/tpu/infra_health", monitored_resource="gce_instance", health_status="UNHEALTHY"})

Per saperne di più sul monitoraggio con la Google Cloud console, consulta la documentazione di Cloud Monitoring.

Monitoraggio con la CLI

Google Cloud CLI fornisce dati in tempo reale sull'integrità della TPU. La seguente richiesta di esempio recupera tutte le TPU UNHEALTHY:

export TOKEN=$(gcloud auth application-default print-access-token)

export PROMQL_QUERY='count({__name__="compute.googleapis.com/instance/tpu/infra_health", monitored_resource="gce_instance", health_status="UNHEALTHY"})'

export LOCATION="global"

curl -G \
  --header "Authorization: Bearer ${TOKEN}" \
  --header "Content-Type: application/json" \
  --header "X-Goog-User-Project: ${PROJECT_ID}" \
  --data-urlencode "query=${PROMQL_QUERY}" \
  "https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/location/${LOCATION}/prometheus/api/v1/query"

Dovresti visualizzare una risposta simile alla seguente:

{"status":"success","data":{"resultType":"vector","result":[65]}}

Per saperne di più su gcloud CLI, consulta la panoramica di gcloud CLI.