En esta página se explica cómo analizar el rendimiento de la CPU de los nodos de tu clúster de Google Kubernetes Engine (GKE) mediante eventos de la unidad de monitorización del rendimiento (PMU).
Esta página está dirigida a administradores de clústeres que tienen cargas de trabajo sensibles al rendimiento y quieren examinar la ejecución de la CPU de sus cargas de trabajo en sus nodos de GKE durante el desarrollo, la depuración, las pruebas de rendimiento y la monitorización continua.
Antes de empezar
Antes de empezar, asegúrate de que has realizado las siguientes tareas:
- Habilita la API de Google Kubernetes Engine. Habilitar la API de Google Kubernetes Engine
- Si quieres usar Google Cloud CLI para esta tarea, instálala y, a continuación, inicialízala. Si ya has instalado la gcloud CLI, obtén la versión más reciente ejecutando
gcloud components update
.
Requisitos y limitaciones
Cuando habilite eventos de PMU, tenga en cuenta los siguientes requisitos y limitaciones:
- El clúster debe estar en modo Estándar.
- Si tu clúster tiene habilitado el aprovisionamiento automático de nodos, no se podrán habilitar los eventos de PMU en los grupos de nodos creados mediante el aprovisionamiento automático. Si habilitas el aprovisionamiento automático de nodos después de habilitar los eventos de PMU, los grupos de nodos que ya tengas no se verán afectados.
- Los grupos de nodos de clúster deben ejecutar una serie de máquinas que admita PMU. Para obtener más información sobre los tipos de máquinas admitidos, consulta la tabla de limitaciones de PMU.
Crear un clúster de GKE
Crea un clúster con los 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
Haz los cambios siguientes:
CLUSTER_NAME
: el nombre del nuevo clúster.COMPUTE_LOCATION
: la ubicación de Compute Engine del nuevo clúster.PMU_LEVEL
: el tipo de eventos de PMU que se van a recoger. 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 de arquitectura relacionados con eventos de caché que no son de último nivel (LLC).standard
: incluye eventos de arquitectura y habilita eventos PMU principales, incluidos los eventos de caché de nivel 2.enhanced
: incluye eventos estándar y habilita cualquier evento local fuera de los eventos de PMU del núcleo de la CPU y de la LLC. Esta opción solo está disponible en las VMs que tienen un número específico de vCPUs. Para obtener más información, consulta la sección Limitaciones de la documentación de Compute Engine.
MACHINE_TYPE
: el tipo de máquina de Compute Engine de tus nodos. Para ver una lista de los tipos de máquinas admitidos, consulta las limitaciones en la documentación de Compute Engine.
También puedes crear un nuevo grupo de nodos para un clúster que ya tengas con el comando
gcloud container node-pools create
.
Conéctate al clúster
Configura kubectl
para que se comunique con el clúster:
gcloud container clusters get-credentials CLUSTER_NAME \
--location=COMPUTE_LOCATION
Verificar que la PMU esté habilitada
Comprueba que los nodos de tu clúster tengan habilitada la PMU examinando los mensajes del kernel.
Obtén una lista de los nodos del clúster:
kubectl get nodes
El resultado debería ser similar al siguiente:
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
Anota el nombre de uno de los nodos.
Obtén la ubicación de Compute Engine del nodo:
gcloud compute instances list --filter=NODE_NAME
Sustituye
NODE_NAME
por el nombre de un nodo del paso anterior.El resultado debería ser similar al siguiente:
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
Anota el nombre del
ZONE
de Compute Engine. En este ejemplo, esus-central1-c
.Usa SSH para conectarte al nodo del clúster:
gcloud compute ssh NODE_NAME \ --zone=COMPUTE_ZONE
Sustituye
COMPUTE_ZONE
por el nombre de la zona de Compute Engine del paso anterior.Examina los mensajes del kernel:
sudo dmesg |grep -A10 -i "Performance"
El resultado debería ser similar al siguiente:
[ 0.307634] Performance Events: generic architected perfmon, full- width counters, Intel PMU driver. # Several lines omitted
Esta salida indica que el controlador PMU se ha inicializado.
Siguientes pasos
- Consulta cómo elegir una plataforma de CPU mínima.