Monitorar VMs do Cloud TPU
Neste guia, explicamos como usar o Google Cloud Monitoring. para monitorar as VMs do Cloud TPU. Monitoramento do Google Cloud coleta automaticamente métricas e registros do Cloud TPU e o host do Compute Engine. Esses dados podem ser usados para monitorar a integridade da Cloud TPU e do Compute Engine.
as métricas permitem acompanhar uma quantidade numérica ao longo do tempo, por exemplo, CPU utilização, uso de rede ou 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, pelos serviços do Google Cloud, por aplicativos de terceiros e pela infraestrutura do Google Cloud. Também é possível gerar métricas com base nos dados de uma entrada de registro. Para isso, crie uma métrica com base em registros. Você também pode definir políticas de alertas com base em métricas ou entradas de registro.
Neste guia, discutimos o Google Cloud Monitoring e mostramos como:
- Ver 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
Para acompanhar este documento, é preciso ter conhecimento básico sobre o Google Cloud Monitoring. É 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 Monitoramento do Google Cloud. Consulte o Guia de início rápido do Cloud TPU para mais detalhes.
Métrica
As métricas do Google Cloud são geradas automaticamente pelo Compute Engine e o ambiente de execução do Cloud TPU. As métricas a seguir são geradas pelo 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 Métricas do Cloud TPU do Google Cloud.
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 na rede
A métrica network/received_bytes_count
é gerada para o TPU Worker
e rastreia o número de bytes cumulativos de dados que a VM da TPU recebeu
na rede em um momento específico.
Contagem de bytes enviados da 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 da TPU enviou pela rede a um
em um determinado momento.
Utilização de 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 da 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 da inatividade será redefinido como 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
para uma versão v2-8
VM da TPU 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 está
utilizadas. Essa métrica é calculada dividindo o número de
operações realizadas em um período de amostra pelo número máximo de operações
que podem ser realizadas no mesmo período de amostra. Um valor maior significa melhor
utilização. A métrica de utilização do TensorCore é compatível com a v4 e com a TPU mais recente
gerações.
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 uma melhor utilização. A métrica de utilização de largura de banda de memória tem suporte à v4 e a gerações mais recentes de TPU.
Ciclo de trabalho do acelerador
A métrica accelerator/duty_cycle
é gerada para o GCE TPU Worker
recurso e rastreia a porcentagem de tempo durante o período da amostra durante o qual
o acelerador TensorCore 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. O
A métrica do ciclo de trabalho do acelerador é compatível com JAX
0.4.14 e superior,
PyTorch
2.1 e mais recentes e
TensorFlow
2.14.0 e
mais tarde.
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
TPU. A métrica "Accelerator Memory Total" tem suporte para JAX
0.4.14 e versões mais recentes,
PyTorch
2.1 e versões mais recentes e
TensorFlow
2.14.0 e
versões mais recentes.
Memória do acelerador usada
A métrica accelerator/memory_used
é gerada para o 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,
PyTorch
2.1 e versões mais recentes e
TensorFlow
2.14.0 e versões mais recentes.
Como ver métricas
Visualize as métricas usando o Metrics Explorer no console do Google Cloud.
No Metrics Explorer, clique em Selecionar uma métrica e pesquise TPU Worker
.
ou GCE TPU Worker
, dependendo da métrica em que você tem interesse.
Selecione um recurso para exibir todas as métricas disponíveis para ele.
Se Ativo estiver habilitado, somente as métricas com dados de série temporal nos últimos 25
e os horários de funcionamento são listados. Desative a opção Ativo para listar todas as métricas.
Também é possível acessar as 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 Execute para fazer a chamada e conferir os resultados do POST HTTP. mensagem.
A 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 Next e em Threshold.
- 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 seu 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.
Geração de registros
As entradas de registro são gravadas por serviços do Google Cloud, serviços de terceiros, frameworks de ML ou seu código. Para acessar os registros, use a Análise de registros ou API. Para mais informações sobre a geração de registros do Google Cloud, consulte Google Cloud Logging.
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 um
um Cloud TPU específico
API foi chamada e quem fez a chamada. Por exemplo, é possível encontrar informações
sobre chamadas para as APIs CreateNode
, UpdateNode
e DeleteNode
.
Frameworks de ML podem gerar registros para saída e erro padrão. Esses são controlados por variáveis de ambiente e lidos pelo seu script.
Seu código pode gravar registros no Google Cloud Logging. Para mais informações, consulte Gravar registros padrão e Gravar registros estruturados.
Consultar registros do 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 Show query
. É possível
modificar a consulta padrão ou criar uma nova. Para mais informações, consulte
Criar consultas na Análise de registros.
Registros de recursos auditados
Para conferir os registros de recursos auditados:
- Acesse a Análise de registros do Google Cloud.
- Clique no menu suspenso Todos os recursos.
- Clique em Recurso auditado e depois em Cloud TPU.
- Escolha a API Cloud TPU do seu interesse.
- Clique em Aplicar. Os registros são exibidos nos resultados da consulta.
Clique em qualquer entrada de registro para expandi-la. 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 -> solicitação -> @type: o tipo de solicitação
- protoPayload -> request -> node: detalhes sobre o nó do Cloud TPU.
- protoPayload -> solicitação -> 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 Análise de registros do Google Cloud.
- Clique no menu suspenso Todos os recursos.
- Clique em Trabalhador da TPU.
- 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 expandi-la. 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 o Cloud TPU fica.
- evententry_timestamp: a hora em que o registro foi gerado.
- system_available_memory_GiB: a memória disponível no worker do Cloud TPU (0 ~ 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 o Explorador de registros do Google Cloud.
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 exibir o Editor de métricas.
Em Tipo de métrica, escolha Distribuição.
Digite um nome, uma descrição opcional e uma unidade de medida para sua métrica. Para este exemplo, digite "matrix_unit_utilization_percent" e "Utilização de MXU" no campo Nome, e Descrição, respectivamente. O filtro é pré-preenchido com o script que você digitou no Análise de registros.
Clique em Criar métrica.
Clique em Ver no Metrics Explorer para conferir a nova métrica. Isso pode levar alguns minutos antes que as métricas sejam exibidas.
Como criar métricas com base em registros usando 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 duração de inatividade do Tensorcore métrica:
- Acesse o console do Monitoring.
- 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 Worker da TPU -> 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.