Cómo analizar el rendimiento de la CPU con la PMU


En esta página, se muestra cómo analizar el rendimiento de la CPU de los nodos de tu clúster de Google Kubernetes Engine (GKE) con eventos de la unidad de supervisión del rendimiento (PMU).

Esta página está dirigida a los administradores de clústeres que tienen cargas de trabajo sensibles al rendimiento y desean examinar la ejecución de la CPU de sus cargas de trabajo en sus nodos de GKE durante el desarrollo, la depuración, la evaluación comparativa y la supervisión continua.

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta gcloud components update para obtener la versión más reciente.

Requisitos y limitaciones

Cuando habilites los eventos de PMU, ten en cuenta los siguientes requisitos y limitaciones:

  • Tu clúster debe estar en modo estándar.
  • Si tu clúster tiene habilitado el aprovisionamiento automático de nodos, los grupos de nodos creados a través del aprovisionamiento automático no pueden habilitar eventos de PMU. Si habilitas el aprovisionamiento automático de nodos después de habilitar los eventos de PMU, los grupos de nodos existentes no se verán afectados.
  • Los grupos de nodos del clúster deben ejecutar el tipo de máquina C4 o C4A.

Crea un clúster de GKE

Crea un clúster con eventos de PMU habilitados para el grupo de nodos predeterminado:

gcloud container clusters create CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --performance-monitoring-unit=PMU_LEVEL \
    --machine-type=MACHINE_TYPE

Reemplaza lo siguiente:

  • CLUSTER_NAME el nombre del clúster nuevo.
  • COMPUTE_LOCATION: la ubicación de Compute Engine para el clúster nuevo.
  • PMU_LEVEL: Es el tipo de eventos de PMU que se recopilarán. Para obtener más información, consulta Cómo funciona la PMU en la documentación de Compute Engine. Los valores admitidos son los siguientes:
    • architectural: Habilita los eventos de PMU arquitectónicos relacionados con eventos de caché que no son de último nivel (LLC).
    • standard: Incluye eventos de arquitectura y habilita eventos de PMU principales, incluidos los eventos de caché de L2.
    • enhanced: Incluye eventos estándar y habilita cualquier evento local fuera de los eventos de PMU de LLC y del núcleo de CPU. Esta opción solo está disponible con VMs que tienen una cantidad específica de vCPUs. Para obtener más información, consulta Limitaciones en la documentación de Compute Engine.
  • MACHINE_TYPE: Es el tipo de máquina de Compute Engine para tus nodos. Para obtener una lista de los tipos de máquinas compatibles, consulta las limitaciones en la documentación de Compute Engine.

También puedes crear un grupo de nodos nuevo para un clúster existente con el comando gcloud container node-pools create.

Conéctate al clúster

Configura kubectl para comunicarse con el clúster:

gcloud container clusters get-credentials CLUSTER_NAME \
    --location=COMPUTE_LOCATION

Verifica que la PMU esté habilitada

Para verificar que los nodos del clúster tengan habilitada la PMU, examina los mensajes del kernel.

  1. Obtén una lista de nodos en el clúster:

    kubectl get nodes
    

    El resultado es similar a este:

    NAME                                  STATUS   ROLES    AGE     VERSION
    gke-c1-default-pool-44be3e13-prr1     Ready    <none>   5d23h   v1.27.13-gke.1070000
    gke-c1-default-pool-7abc4a17-9dlg     Ready    <none>   2d21h   v1.27.13-gke.1070000
    gke-c1-default-pool-ed969ef6-4gzp     Ready    <none>   5d      v1.27.13-gke.1070000
    

    Registra el nombre de uno de los nodos.

  2. Obtén la ubicación de Compute Engine del nodo:

    gcloud compute instances list --filter=NODE_NAME
    

    Reemplaza NODE_NAME por el nombre de un nodo del paso anterior.

    El resultado es similar a este:

    NAME                               ZONE           MACHINE_TYPE  PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
    gke-c1-default-pool-44be3e13-prr1  us-central1-c  c4-standard-4     true         10.128.0.67  34.170.44.164  RUNNING
    

    Registra el nombre del ZONE de Compute Engine. En este ejemplo, es us-central1-c.

  3. Usa SSH para conectarte al nodo del clúster:

    gcloud compute ssh NODE_NAME \
        --zone=COMPUTE_ZONE
    

    Reemplaza COMPUTE_ZONE por el nombre de la zona de Compute Engine del paso anterior.

  4. Examina los mensajes del kernel:

    sudo dmesg |grep -A10 -i "Performance"
    

    El resultado es similar a este:

    [    0.307634] Performance Events: generic architected perfmon, full-
    width counters, Intel PMU driver.
    # Several lines omitted
    

    Este resultado indica que se inicializó el controlador de PMU.

¿Qué sigue?