Analyser les performances du processeur à l'aide de la PMU

Cette page vous explique comment analyser les performances du processeur des nœuds de votre cluster Google Kubernetes Engine (GKE) à l'aide d'événements de l' unité de surveillance des performances (PMU).

Cette page est destinée aux administrateurs de cluster qui ont des charges de travail sensibles aux performances et qui souhaitent examiner l'exécution du processeur de leurs charges de travail sur leurs nœuds GKE lors du développement, du débogage, de l'analyse comparative et de la surveillance continue.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

  • Activez l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Si vous souhaitez utiliser la Google Cloud CLI pour cette tâche, installez et initialisez la gcloud CLI. Si vous avez déjà installé la gcloud CLI, obtenez la dernière version en exécutant la commande gcloud components update. Il est possible que les versions antérieures de la gcloud CLI ne permettent pas d'exécuter les commandes de ce document.

Conditions requises et limites

Lorsque vous activez les événements PMU, tenez compte des conditions requises et des limites suivantes :

Créer un cluster GKE

Créez un cluster avec les événements PMU activés pour le pool de nœuds par défaut :

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

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du nouveau cluster
  • COMPUTE_LOCATION : emplacement Compute Engine du nouveau cluster
  • PMU_LEVEL : type d'événements PMU à collecter Pour en savoir plus, consultez la section Fonctionnement de la PMU dans la documentation Compute Engine. Les valeurs compatibles sont les suivantes :
    • architectural: active les événements PMU architecturaux liés aux événements de cache de niveau non-dernier (LLC).
    • standard: inclut les événements architecturaux et active les événements PMU principaux, y compris les événements de cache L2.
    • enhanced: inclut les événements standards et active tous les événements locaux en dehors du cœur du processeur et les événements PMU LLC. Cette option n'est disponible qu'avec les VM disposant d'un nombre spécifique de processeurs virtuels. Pour en savoir plus, consultez la section Limites dans la documentation Compute Engine.
  • MACHINE_TYPE: type de machine Compute Engine pour vos nœuds Pour obtenir la liste des types de machines compatibles, consultez la section Séries de machines et plates-formes de processeur compatibles dans la documentation Compute Engine.

Vous pouvez également créer un pool de nœuds pour un cluster existant à l'aide de la gcloud container node-pools create commande.

Se connecter au cluster

Configurez kubectl pour communiquer avec le cluster :

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

Vérifier que la PMU est activée

Vérifiez que la PMU est activée pour les nœuds de votre cluster en examinant les messages du noyau.

  1. Obtenez la liste des nœuds du cluster :

    kubectl get nodes
    

    Le résultat ressemble à ce qui suit :

    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
    

    Notez le nom de l'un des nœuds.

  2. Obtenez l'emplacement Compute Engine du nœud :

    gcloud compute instances list --filter=NODE_NAME
    

    Remplacez NODE_NAME par le nom d'un nœud de l'étape précédente.

    Le résultat ressemble à ce qui suit :

    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
    

    Notez le nom de la ZONE Compute Engine. Dans cet exemple, il s'agit de us-central1-c.

  3. Utilisez SSH pour vous connecter au nœud de cluster :

    gcloud compute ssh NODE_NAME \
        --zone=COMPUTE_ZONE
    

    Remplacez COMPUTE_ZONE par le nom de la zone Compute Engine de l'étape précédente.

  4. Examinez les messages du noyau :

    sudo dmesg |grep -A10 -i "Performance"
    

    Le résultat ressemble à ce qui suit :

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

    Ce résultat indique que le pilote PMU est initialisé.

Étape suivante