Monitorar VMs da Cloud TPU
Este guia explica como usar o Google Cloud Monitoring para monitorar as VMs do Cloud TPU. Google Cloud O monitoramento coleciona automaticamente métricas e logs do Cloud TPU e do host do Compute Engine. Esses dados podem ser usados para monitorar a integridade da Cloud TPU e do Compute Engine.
As métricas permitem rastrear uma quantidade numérica ao longo do tempo, por exemplo, a utilização da CPU, da rede ou a duração de inatividade do TensorCore. Os registros capturam eventos em um momento específico. As entradas de registro são gravadas pelo seu próprio código, Google Cloud serviços, aplicativos de terceiros e a Google Cloud infraestrutura. Também é possível gerar métricas com base nos dados presentes em uma entrada de registro criando uma métrica com base em registros. Também é possível definir políticas de alerta com base em valores de métricas ou entradas de registro.
Este guia discute Google Cloud Monitoramento e mostra como:
- Conferir as métricas do Cloud TPU
- Configurar políticas de alerta de métricas do Cloud TPU
- Consultar registros do Cloud TPU
- Crie métricas com base em registros para configurar alertas e visualizar painéis.
Pré-requisitos
Este documento considera alguns conhecimentos básicos sobre Google Cloud Monitoramento. É necessário ter uma VM do Compute Engine e os recursos do Cloud TPU criados antes de começar a gerar e trabalhar com o Google Cloud Monitoramento. Consulte o Guia de início rápido do Cloud TPU para mais detalhes.
Métricas
As métricasGoogle Cloud são geradas automaticamente pelas VMs do Compute Engine e pelo ambiente de execução da Cloud TPU. As seguintes métricas são geradas pelas VMs do 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
Pode levar até 180 segundos entre o momento em que um valor de métrica é gerado e quando ele é exibido no Explorador de métricas.
Para uma lista completa de métricas geradas pelo Cloud TPU, consulte Google Cloud Métricas do Cloud TPU.
Uso da memória
A métrica memory/usage
é gerada para o recurso TPU Worker
e rastreia
a memória usada pela VM TPU em bytes. Essa métrica é amostrada a cada 60 segundos.
Contagem de bytes recebidos da rede
A métrica network/received_bytes_count
é gerada para o recurso TPU Worker
e rastreia o número de bytes cumulativos de dados que a VM do TPU recebeu
pela rede em um determinado momento.
Contagem de bytes enviados pela rede
A métrica network/sent_bytes_count
é gerada para o recurso TPU Worker
e rastreia o número de bytes cumulativos que a VM TPU enviou pela rede em um
determinado momento.
Uso da CPU
A métrica cpu/utilization
é gerada para o recurso TPU Worker
e
rastreia a utilização atual da CPU no worker da TPU, representada como uma porcentagem,
amostrada uma vez por minuto. Os valores geralmente estão entre 0,0 e 100,0, mas podem
ultrapassar 100,0.
Duração de inatividade do TensorCore
A métrica tpu/tensorcore/idle_duration
é gerada para o recurso TPU Worker
e rastreia o número de segundos em que o TensorCore de cada chip da TPU ficou
inativo. Essa métrica está disponível para cada chip em todas as TPUs em uso. Se um TensorCore
estiver em uso, o valor da duração de inatividade será redefinido para zero. Quando o TensorCore não está mais em uso, o valor da duração inativa começa a aumentar.
O gráfico a seguir mostra a métrica tpu/tensorcore/idle_duration
de uma VM TPU v2-8
com um worker. Cada worker tem quatro chips. Neste exemplo, todos os quatro ícones têm os mesmos valores para tpu/tensorcore/idle_duration
, então os gráficos são sobrepostos.
Uso do TensorCore
A métrica accelerator/tensorcore_utilization
é gerada para o recurso GCE TPU
Worker
e rastreia a porcentagem atual do TensorCore que é
utilizada. Essa métrica é calculada dividindo o número de operações do TensorCore
realizadas em um período de amostra pelo número máximo de operações
que podem ser realizadas no mesmo período. Um valor maior significa melhor
utilização. A métrica de utilização do TensorCore tem suporte para a v4 e gerações
mais recentes de TPU.
Utilização de largura de banda de memória
A métrica accelerator/memory_bandwidth_utilization
é gerada para o
recurso GCE TPU Worker
e rastreia a porcentagem atual da largura de banda
da memória do acelerador que está sendo usada. Essa métrica é calculada pela divisão da
largura de banda da memória usada durante um período de amostragem pela largura de banda máxima aceita
no mesmo período. Um valor maior significa melhor utilização. A métrica de utilização de largura de banda de memória tem suporte à v4 e às gerações mais recentes de TPU.
Ciclo de trabalho do acelerador
A métrica accelerator/duty_cycle
é gerada para o recurso GCE TPU Worker
e rastreia a porcentagem de tempo durante o período de amostra em que
o TensorCore do acelerador estava processando ativamente. Os valores estão no intervalo de 0
a 100. Um valor maior significa melhor utilização do TensorCore. Essa métrica é
informada quando uma carga de trabalho de machine learning está sendo executada na VM do TPU. A
métrica do ciclo de ativação do acelerador tem suporte para JAX
0.4.14 e mais recentes,
PyTorch
2.1 e mais recentes e
TensorFlow
2.14.0 e
mais recentes.
Total de memória do acelerador
A métrica accelerator/memory_total
é gerada para o recurso GCE TPU Worker
e rastreia a memória total do acelerador alocada em bytes.
Essa métrica é informada quando uma carga de trabalho de machine learning está sendo executada na VM
do TPU. A métrica "Accelerator Memory Total" tem suporte para JAX
0.4.14 e mais recentes,
PyTorch
2.1 e mais recentes e
TensorFlow
2.14.0 e
mais recentes.
Memória do acelerador usada
A métrica accelerator/memory_used
é gerada para o recurso GCE TPU Worker
e rastreia a memória total do acelerador usada em bytes. Essa métrica é
informada quando uma carga de trabalho de machine learning está sendo executada na VM do TPU. A métrica "Accelerator Memory Used" tem suporte para o JAX
0.4.14 e versões mais recentes, o
PyTorch
2.1 e versões mais recentes e o
TensorFlow
2.14.0 e versões mais recentes.
Como ver métricas
É possível conferir as métricas usando o Metrics Explorer no console Google Cloud .
No Metrics Explorer, clique em Selecionar uma métrica e pesquise TPU Worker
ou GCE TPU Worker
, dependendo da métrica de seu interesse.
Selecione um recurso para mostrar todas as métricas disponíveis.
Se a opção Ativo estiver ativada, só as métricas com dados de série temporal nas últimas 25 horas serão listadas. Desative a opção Ativo para listar todas as métricas.
Também é possível acessar métricas usando chamadas HTTP curl
.
Use o botão Testar na documentação projects.timeSeries.query para extrair o valor de uma métrica no período especificado.
- Preencha o nome no seguinte formato:
projects/{project-name}
. Adicione uma consulta à seção Corpo da solicitação. Confira a seguir um exemplo de consulta para extrair a métrica de duração inativa da zona especificada nos últimos cinco minutos.
fetch tpu_worker | filter zone = 'us-central2-b' | metric tpu.googleapis.com/tpu/tensorcore/idle_duration | within 5m
Clique em Executar para fazer a chamada e conferir os resultados da mensagem POST HTTP.
O documento de referência da linguagem de consulta do Monitoring tem mais informações sobre como personalizar essa consulta.
Como criar alertas
É possível criar políticas de alertas que instruem o Cloud Monitoring a enviar um alerta quando uma condição é atendida.
As etapas nesta seção mostram um exemplo de como adicionar uma política de alerta para a métrica TensorCore Idle Duration. Sempre que essa métrica exceder 24 horas, o Cloud Monitoring vai enviar um e-mail para o endereço de e-mail registrado.
- Acesse o console de monitoramento.
- No painel de navegação, clique em Alertas.
- Clique em Editar canais de notificação.
- Em E-mail, clique em Adicionar novo. Digite um endereço de e-mail, um nome de exibição e clique em Salvar.
- Na página Alertas, clique em Criar política.
- Clique em Selecionar uma métrica, selecione Duração de inatividade do Tensorcore e clique em Aplicar.
- Clique em Próxima e em Limite.
- Em Gatilho de alerta, selecione Qualquer violação de série temporal.
- Em Posição do limite, selecione Acima do limite.
- Em Valor do limite, digite
86400000
. - Clique em Próxima.
- Em Canais de notificação, selecione o canal de notificação por e-mail e clique em OK.
- Digite um nome para a política de alertas.
- Clique em Próxima e em Criar política.
Quando a duração inativa do TensorCore excede 24 horas, um e-mail é enviado para o endereço de e-mail especificado.
Logging
As entradas de registro são gravadas por serviços Google Cloud , serviços de terceiros, frameworks de ML ou seu código. É possível conferir os registros usando o Explorador de registros ou a API Logs. Para mais informações sobre a geração de registros Google Cloud , consulte Google Cloud Gerar registros.
Os registros do worker da TPU contêm informações sobre um worker específico da Cloud TPU em uma zona específica, por exemplo, a quantidade de memória disponível no worker da Cloud TPU (system_available_memory_GiB
).
Os registros de recursos auditados contêm informações sobre quando uma API específica do Cloud TPU foi chamada e quem fez a chamada. Por exemplo, é possível encontrar informações
sobre chamadas para as APIs CreateNode
, UpdateNode
e DeleteNode
.
Os frameworks de ML podem gerar registros para a saída padrão e o erro padrão. Esses registros são controlados por variáveis de ambiente e lidos pelo script de treinamento.
Seu código pode gravar registros no Google Cloud Logging. Para mais informações, consulte Gravar registros padrão e Gravar registros estruturados.
Registros de consulta Google Cloud
Quando você acessa os registros no console do Google Cloud , a página executa uma consulta padrão.
Para conferir a consulta, selecione a chave seletora Show query
. É possível
modificar a consulta padrão ou criar uma nova. Para mais informações, consulte
Criar consultas no Explorador de registros.
Registros de recursos auditados
Para conferir os registros de recursos auditados:
- Acesse a Google Cloud Análise de registros.
- Clique no menu suspenso Todos os recursos.
- Clique em Recurso auditado e em Cloud TPU.
- Escolha a API Cloud TPU de seu interesse.
- Clique em Aplicar. Os registros são exibidos nos resultados da consulta.
Clique em qualquer entrada de registro para abrir. Cada entrada de registro tem vários campos, incluindo:
- logName: o nome do registro
- protoPayload -> @type: o tipo do registro
- protoPayload -> resourceName: o nome do Cloud TPU.
- protoPayload -> methodName: o nome do método chamado (somente registros de auditoria).
- protoPayload -> request -> @type: o tipo de solicitação.
- protoPayload -> request -> node: detalhes sobre o nó do Cloud TPU.
- protoPayload -> request -> node_id: o nome da TPU.
- severity: a gravidade do registro.
Registros do worker da TPU
Para conferir os registros do worker da TPU:
- Acesse a Google Cloud Análise de registros.
- Clique no menu suspenso Todos os recursos.
- Clique em TPU Worker.
- Selecione uma zona.
- Selecione o Cloud TPU de seu interesse.
- Clique em Aplicar. Os registros são exibidos nos resultados da consulta.
Clique em qualquer entrada de registro para abrir. Cada entrada de registro tem um campo chamado
jsonPayload
. Abra jsonPayload
para conferir vários campos, incluindo:
- accelerator_type: o tipo de acelerador
- consumer_project: o projeto em que a Cloud TPU está hospedada
- evententry_timestamp: o horário em que o registro foi gerado
- system_available_memory_GiB: a memória disponível no worker do Cloud TPU (0 a 350 GiB).
Como criar métricas com base em registros
Esta seção descreve como criar métricas com base em registros usadas para configurar painéis e alertas de monitoramento. Para saber como criar métricas com base em registros de forma programática, consulte Como criar métricas com base em registros de forma programática usando a API REST do Cloud Logging.
O exemplo a seguir usa o subcampo system_available_memory_GiB para demonstrar como criar uma métrica com base em registros para monitorar a memória disponível do worker do Cloud TPU.
- Acesse a Google Cloud Análise de registros.
Na caixa de consulta, insira a consulta a seguir para extrair todas as entradas de registro que tiverem system_available_memory_GiB definido para o worker principal do Cloud TPU:
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:*
Clique em Criar métrica para abrir o Editor de métricas.
Em Tipo de métrica, escolha Distribuição.
Digite um nome, uma descrição opcional e a unidade de medida da métrica. Neste exemplo, digite "matrix_unit_utilization_percent" e "MXU utilization" nos campos Nome e Descrição, respectivamente. O filtro é preenchido com o script que você inseriu no Análise de registros.
Clique em Criar métrica.
Clique em Ver no Metrics Explorer para conferir a nova métrica. Pode levar alguns minutos para que as métricas sejam exibidas.
Como criar métricas com base em registros com a API REST do Cloud Logging
Também é possível criar métricas com base em registros usando a API Cloud Logging. Para mais informações, consulte Como criar uma métrica de distribuição.
Como criar painéis e alertas usando métricas com base em registros
Os painéis são úteis para visualizar métricas (previsão de cerca de 2 minutos de atraso). Os alertas são úteis para enviar notificações quando ocorrem erros. Para mais informações, consulte estes tópicos:
- Painéis de monitoramento e geração de registros
- Gerenciar painéis personalizados
- Criar políticas de alertas com base em métricas
Como criar painéis
Para criar um painel no Cloud Monitoring para a métrica Duração inativa do Tensorcore:
- Acesse o console de monitoramento.
- No painel de navegação, clique em Painéis.
- Clique em Criar painel e em Adicionar widget.
- Escolha o tipo de gráfico que você quer adicionar. Neste exemplo, escolha Linha.
- Digite um título para o widget.
- Clique no menu suspenso Selecionar uma métrica e digite "Duração de inatividade do Tensorcore" no campo de filtro.
- Na lista de métricas, selecione TPU Worker -> Tpu -> Duração de inatividade do Tensorcore.
- Para filtrar o conteúdo do painel, clique no menu suspenso Filtrar.
- Em Rótulos de recursos, selecione project_id.
- Escolha um comparador e digite um valor no campo Valor.
- Clique em Aplicar.