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 des événements de l'unité de surveillance des performances (PMU).

Cette page s'adresse 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 Google Cloud CLI pour cette tâche, installez puis initialisez gcloud CLI. Si vous avez déjà installé gcloud CLI, assurez-vous de disposer de la dernière version en exécutant la commande gcloud components update.

Conditions requises et limites

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

  • Votre cluster doit être en mode Standard.
  • Si le provisionnement automatique des nœuds est activé pour votre cluster, vous ne pouvez pas activer les événements PMU pour les pools de nœuds créés par le biais du provisionnement automatique. Si vous activez le provisionnement automatique des nœuds après avoir activé les événements PMU, les pools de nœuds existants ne sont pas concernés.
  • Les pools de nœuds du cluster doivent exécuter le type de machine C4 ou C4A.

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 Fonctionnement de l'unité de gestion de l'alimentation dans la documentation Compute Engine. Les valeurs acceptées sont les suivantes :
    • architectural : active les événements PMU architecturaux liés aux événements de cache non de dernier niveau (LLC).
    • standard : inclut les événements architecturaux et active les événements PMU de base, y compris les événements de cache L2.
    • enhanced : inclut les événements standards et permet tous les événements locaux en dehors des événements PMU du cœur de processeur et du LLC. Cette option n'est disponible que pour les VM disposant d'un nombre spécifique de processeurs virtuels. Pour en savoir plus, consultez la section Limites de 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 Limites dans la documentation Compute Engine.

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

Se connecter au cluster

Configurez kubectl pour communiquer avec le cluster :

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

Vérifier que l'unité de gestion de l'alimentation est activée

Vérifiez que la PMU est activée sur 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
    

    Enregistrez le nom de l'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é.

Étapes suivantes