Supervisa las VMs de Cloud TPU
En esta guía, se explica cómo usar Google Cloud Monitoring para supervisar tus VMs de Cloud TPU. Google Cloud Monitoring recopila automáticamente las métricas y los registros de tu Cloud TPU y su host de Compute Engine. Estos datos se pueden usar para supervisar el estado de tus Cloud TPU y Compute Engine.
Las métricas te permiten hacer un seguimiento de una cantidad numérica a lo largo del tiempo, por ejemplo, CPU de procesamiento, de red o de inactividad de TensorCore. Los registros capturan eventos en un momento específico. Tu propio código, los servicios de Google Cloud, las aplicaciones de terceros y la infraestructura de Google Cloud escriben las entradas de registro. También puedes generar métricas a partir de los datos presentes en una entrada de registro creando un métrica basada en registros. También puedes establecer políticas de alertas basadas en métricas valores o entradas de registro.
En esta guía, se analiza Google Cloud Monitoring y se muestra cómo hacer lo siguiente:
- Consulta las métricas de Cloud TPU
- Configura políticas de alertas de métricas de Cloud TPU
- Consulta los registros de Cloud TPU
- Crea métricas basadas en registros para configurar alertas y visualización de paneles
Requisitos previos
En este documento, se presupone que tienes conocimientos básicos de Google Cloud Monitoring. Debes tener una VM de Compute Engine y Cloud TPU recursos creados antes de que puedas comenzar a generar y trabajar con Google Cloud Monitoring. Consulta la Guía de inicio rápido de Cloud TPU para obtener más detalles.
Métricas
Compute Engine genera automáticamente las métricas de Google Cloud las VMs y el entorno de ejecución de Cloud TPU. Las siguientes métricas se generan en las VMs de 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
Pueden transcurrir hasta 180 segundos entre el momento en que se genera un valor de métrica y el momento en que se muestra en el explorador de métricas.
Para obtener una lista completa de las métricas que genera Cloud TPU, consulta Métricas de Cloud TPU de Google Cloud.
Uso de memoria
La métrica memory/usage
se genera para el recurso TPU Worker
y hace un seguimiento de la memoria que usa la VM de TPU en bytes. Esta métrica se muestrea cada 60 segundos.
Recuento de bytes recibidos de red
Se genera la métrica network/received_bytes_count
para TPU Worker
.
recurso y realiza un seguimiento de la cantidad acumulada de bytes de datos que recibió la VM de TPU.
a través de la red en un momento dado.
Recuento de bytes enviados de red
La métrica network/sent_bytes_count
se genera para el recurso TPU Worker
y realiza un seguimiento de la cantidad de bytes acumulados que la VM de TPU envió a través de la red en un momento determinado.
Uso de CPU
Se genera la métrica cpu/utilization
para el recurso TPU Worker
.
rastrea el uso de CPU actual en el trabajador TPU, representado como porcentaje
se muestrean una vez por minuto. Los valores suelen estar entre 0.0 y 100.0, pero pueden superar los 100.0.
Duración de inactividad de TensorCore
La métrica tpu/tensorcore/idle_duration
se genera para el recurso TPU Worker
y realiza un seguimiento de la cantidad de segundos que el TensorCore de cada chip TPU estuvo inactivo. Esta métrica está disponible para cada chip en todas las TPU en uso. Si se está usando un TensorCore, el valor de la duración inactiva se restablece a cero. Cuando el TensorCore no funciona
mientras esté en uso, el valor de la duración de inactividad comenzará a aumentar.
En el siguiente gráfico, se muestra la métrica tpu/tensorcore/idle_duration
de una VM de TPU v2-8 que tiene un trabajador. Cada trabajador tiene cuatro chips. En este ejemplo, los cuatro chips tienen los mismos valores para tpu/tensorcore/idle_duration
, por lo que los gráficos se superponen entre sí.
Uso de TensorCore
La métrica accelerator/tensorcore_utilization
se genera para el recurso GCE TPU
Worker
y realiza un seguimiento del porcentaje actual del TensorCore que se usa. Para calcular esta métrica, se divide la cantidad de operaciones de TensorCore realizadas durante un período de muestra por la cantidad máxima de operaciones que se pueden realizar durante el mismo período. Un valor mayor significa un mejor uso. La métrica de uso de TensorCore es compatible con TPU v4 y versiones posteriores.
generaciones.
Uso de memoria y ancho de banda
La métrica accelerator/memory_bandwidth_utilization
se genera para la
Recurso GCE TPU Worker
y realiza un seguimiento del porcentaje actual del acelerador
y el ancho de banda de memoria utilizado. Para calcular esta métrica, se divide el ancho de banda de memoria usado durante un período de muestra por el ancho de banda máximo admitido durante el mismo período de muestra. Un valor más alto significa un mejor uso. La métrica Uso de memoria y ancho de banda de TPU es compatible con las generaciones v4 y posteriores de TPU.
Ciclo de trabajo del acelerador
La métrica accelerator/duty_cycle
se genera para el recurso GCE TPU Worker
y realiza un seguimiento del porcentaje de tiempo durante el período de muestra en el que el TensorCore del acelerador se procesó de forma activa. Los valores se encuentran en el rango de 0
en 100 puntos. Un valor mayor significa una mejor utilización de TensorCore. Esta métrica se informa cuando se ejecuta una carga de trabajo de aprendizaje automático en la VM de TPU. El
La métrica del ciclo de trabajo del acelerador es compatible con JAX
0.4.14 y posteriores,
PyTorch
2.1 y posteriores, y
TensorFlow
2.14.0 y
más adelante.
Memoria total del acelerador
Se genera la métrica accelerator/memory_total
para GCE TPU Worker
.
y realiza un seguimiento de la memoria total del acelerador asignada en bytes.
Esta métrica se informa cuando una carga de trabajo de aprendizaje automático se ejecuta en la TPU
y la VM. La métrica Total de memoria del acelerador es compatible con JAX
0.4.14 y posteriores,
PyTorch
2.1 y posteriores, y
TensorFlow
2.14.0 y
más adelante.
Memoria del acelerador utilizada
Se genera la métrica accelerator/memory_used
para GCE TPU Worker
.
y realiza un seguimiento de la memoria total del acelerador usada en bytes. Esta métrica se informa cuando se ejecuta una carga de trabajo de aprendizaje automático en la VM de TPU. El
La métrica Memoria usada del acelerador es compatible con JAX
0.4.14 y posteriores,
PyTorch
2.1 y posteriores, y
TensorFlow
2.14.0 y
más adelante.
Cómo ver métricas
Puedes ver las métricas con el Explorador de métricas en la consola de Google Cloud.
En el Explorador de métricas, haz clic en Seleccionar una métrica y busca TPU Worker
o GCE TPU Worker
, según la métrica que te interese.
Selecciona un recurso para ver todas sus métricas disponibles.
Si la opción Activa está habilitada, solo las métricas con datos de series temporales en los últimos 25
y los horarios de atención. Inhabilita Activa para que se muestren todas las métricas.
También puedes acceder a las métricas mediante llamadas HTTP a curl
.
Usa el botón Probar en la documentación de projects.timeSeries.query para recuperar el valor de una métrica dentro del período especificado.
- Completa el nombre con el siguiente formato:
projects/{project-name}
. Agrega una consulta a la sección Cuerpo de la solicitud. La siguiente es una consulta de muestra para recuperar la métrica de duración inactiva de la zona especificada durante los últimos cinco minutos.
fetch tpu_worker | filter zone = 'us-central2-b' | metric tpu.googleapis.com/tpu/tensorcore/idle_duration | within 5m
Haz clic en Ejecutar para realizar la llamada y ver los resultados del mensaje HTTP POST.
La referencia del lenguaje de consulta de Monitoring este documento tiene más información para personalizar esta consulta.
Crea alertas
Puedes crear políticas de alertas que le indiquen a Cloud Monitoring que envíe una alerta cuando se cumpla una condición.
En los pasos de esta sección, se muestra un ejemplo de cómo agregar una política de alertas para la métrica TensorCore Idle Duration. Cuando esta métrica supera las 24 horas, Cloud Monitoring envía un correo electrónico a la dirección de correo electrónico registrada.
- Ve a la consola de Monitoring.
- En el panel de navegación, haz clic en Alertas.
- Haz clic en Editar canales de notificaciones.
- En Correo electrónico, haz clic en Agregar nuevo. Escribe una dirección de correo electrónico, un nombre visible y haz clic en Guardar.
- En la página Alertas, haz clic en Crear política.
- Haz clic en Seleccionar una métrica y, luego, en Duración inactiva de Tensorcore y, luego, en Aplicar.
- Haz clic en Siguiente y, luego, en Umbral.
- En Activador de alertas, selecciona Cualquier serie temporal es una infracción.
- En Posición del umbral, selecciona Umbral superior.
- En Valor del umbral, escribe
86400000
. - Haz clic en Siguiente.
- En Canales de notificaciones, selecciona tu canal de notificaciones por correo electrónico y haz clic en Aceptar.
- Escribe un nombre para la política de alertas.
- Haz clic en Siguiente y, luego, en Crear política.
Cuando la duración inactiva de TensorCore supera las 24 horas, se envía un correo electrónico a la dirección de correo electrónico que especificaste.
Logging
Los servicios de Google Cloud, los servicios de terceros, los frameworks de ML o tu código escriben las entradas de registro. Puedes ver los registros con el Explorador de registros API de gcloud. Para obtener más información sobre Google Cloud Logging, consulta Google Cloud Logging.
Los registros del trabajador de TPU contienen información sobre un trabajador de Cloud TPU específico en una zona específica, por ejemplo, la cantidad de memoria disponible en el trabajador de Cloud TPU (system_available_memory_GiB
).
Los registros de recursos auditados contienen información sobre cuándo se llamó a una API de Cloud TPU específica y quién realizó la llamada. Por ejemplo, puedes encontrar información
sobre las llamadas a las APIs de CreateNode
, UpdateNode
y DeleteNode
.
Los frameworks de AA pueden generar registros de salida estándar y error estándar. Estos registros están controlados por variables de entorno y los lee tu secuencia de comandos de entrenamiento.
Tu código puede escribir registros en Google Cloud Logging. Para obtener más información, consulta Cómo escribir registros estándar y Cómo escribir registros estructurados.
Cómo consultar los registros de Google Cloud
Cuando ves registros en la consola de Google Cloud, la página realiza una consulta predeterminada.
Para ver la consulta, selecciona el interruptor de activación Show query
. Puedes modificar la consulta predeterminada o crear una nueva. Para obtener más información, consulta Compila consultas en el Explorador de registros.
Registros de recursos auditados
Para ver los registros de recursos auditados, haz lo siguiente:
- Ve al Explorador de registros de Google Cloud.
- Haz clic en el menú desplegable Todos los recursos.
- Haz clic en Recurso auditado y, luego, en Cloud TPU.
- Elige la API de Cloud TPU que te interesa.
- Haz clic en Aplicar. Los registros se muestran en los resultados de la consulta.
Haz clic en cualquier entrada de registro para expandirla. Cada entrada de registro tiene varios campos, incluidos los siguientes:
- logName: el nombre del registro
- protoPayload -> @type: Es el tipo del registro.
- protoPayload ->. resourceName: el nombre de tu Cloud TPU
- protoPayload -> methodName: Es el nombre del método llamado (solo registros de auditoría).
- protoPayload -> request -> @type: Es el tipo de solicitud.
- protoPayload ->. solicitud -> nodo: Detalles sobre el nodo de Cloud TPU
- protoPayload -> request -> node_id: Es el nombre de la TPU.
- severity: La gravedad del registro
Registros de trabajadores de TPU
Para ver los registros del trabajador de TPU, haz lo siguiente:
- Ve al Explorador de registros de Google Cloud.
- Haz clic en el menú desplegable Todos los recursos.
- Haz clic en TPU Worker.
- Selecciona una zona.
- Selecciona la Cloud TPU que te interesa.
- Haz clic en Aplicar. Los registros se muestran en los resultados de la consulta.
Haz clic en cualquier entrada de registro para expandirla. Cada entrada de registro tiene un campo llamado
jsonPayload
Expande jsonPayload
para ver varios campos, incluidos los siguientes:
- accelerator_type: Es el tipo de acelerador.
- consumer_project: Es el proyecto en el que reside la Cloud TPU.
- evententry_timestamp: La hora en la que se generó el registro
- system_available_memory_GiB: memoria disponible en el trabajador de Cloud TPU (de 0 a 350 GiB)
Crea métricas basadas en registros
En esta sección, se describe cómo crear métricas basadas en registros que se usan para configurar alertas y paneles de supervisión. Para obtener información sobre cómo crear métricas basadas en registros de forma programática, consulta Crea métricas basadas en registros de forma programática con la API de REST de Cloud Logging.
En el siguiente ejemplo, se usa el subcampo system_available_memory_GiB para demostrar cómo crear una métrica basada en registros para supervisar la memoria disponible del trabajador de Cloud TPU.
- Ve al Explorador de registros de Google Cloud.
En el cuadro de consulta, ingresa la siguiente consulta para extraer todos los datos. entradas de registro que tengan system_available_memory_GiB definido para el trabajador principal de 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:*
Haz clic en Crear métrica para mostrar el Editor de métricas.
En Tipo de métrica, elige Distribución.
Escribe un nombre, una descripción opcional y una unidad de medida para tu métrica. En este ejemplo, escribe “matrix_unit_utilization_percent” y “Uso de MXU” en los campos Nombre y Descripción, respectivamente. El filtro se prepropaga con la secuencia de comandos que ingresaste en el Explorador de registros.
Haz clic en Crear métrica.
Haz clic en Ver en el Explorador de métricas para ver tu métrica nueva. Esto podría tardar unos minutos antes de que se muestren tus métricas.
Crea métricas basadas en registros con la API de REST de Cloud Logging
También puedes crear métricas basadas en registros a través de la API de Cloud Logging. Para obtener más información, consulta Cómo crear una métrica de distribución.
Crea paneles y alertas con métricas basadas en registros
Los paneles son útiles para visualizar métricas (espera un retraso de aproximadamente 2 minutos). Las alertas son útiles para enviar notificaciones cuando se producen errores. Para obtener más información, consulta:
- Paneles de supervisión y registro
- Administrar paneles personalizados
- Crea políticas de alertas basadas en métricas
Crea paneles
Para crear un panel en Cloud Monitoring para la métrica Duración inactiva de Tensorcore, haz lo siguiente:
- Ve a la consola de Monitoring.
- En el panel de navegación, haz clic en Paneles.
- Haz clic en Crear panel y, luego, en Agregar widget.
- Elige el tipo de gráfico que deseas agregar. En este ejemplo, elige Línea.
- Escribe un título para el widget.
- Haz clic en el menú desplegable Seleccionar una métrica y escribe "Duración inactiva de Tensorcore" en el campo de filtro.
- En la lista de métricas, selecciona Trabajador de TPU -> Tpu -> Duración de la inactividad de TensorCore.
- Para filtrar el contenido del panel, haz clic en el menú desplegable Filtrar.
- En Etiquetas de recursos, selecciona project_id.
- Elige un comparador y escribe un valor en el campo Valor.
- Haz clic en Aplicar.