Comment vérifier si les compteurs de performance du noyau sont actifs sous Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous apprendrez à vérifier si les compteurs de performance du noyau sont actifs sous Linux. Vous découvrirez comment utiliser la commande perf stat pour mesurer les compteurs de performance lors de l'exécution d'une commande, vérifier la configuration des compteurs de performance dans le système de fichiers /sys/kernel, et inspecter les journaux du noyau à l'aide de dmesg pour trouver des messages liés aux compteurs de performance. Cette expérience pratique vous permettra d'acquérir les compétences nécessaires pour diagnostiquer et comprendre l'état de la surveillance des performances sur votre système Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux/BasicSystemCommandsGroup -.-> linux/sleep("Execution Delaying") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") subgraph Lab Skills linux/sleep -.-> lab-558797{{"Comment vérifier si les compteurs de performance du noyau sont actifs sous Linux"}} linux/ls -.-> lab-558797{{"Comment vérifier si les compteurs de performance du noyau sont actifs sous Linux"}} linux/cat -.-> lab-558797{{"Comment vérifier si les compteurs de performance du noyau sont actifs sous Linux"}} linux/cd -.-> lab-558797{{"Comment vérifier si les compteurs de performance du noyau sont actifs sous Linux"}} linux/grep -.-> lab-558797{{"Comment vérifier si les compteurs de performance du noyau sont actifs sous Linux"}} end

Vérifier les compteurs avec perf stat

Dans cette étape, vous apprendrez à utiliser la commande perf stat pour mesurer les compteurs de performance. Les compteurs de performance sont des registres matériels spéciaux qui comptent des événements spécifiques se produisant au sein du processeur (CPU), tels que le nombre d'instructions exécutées, les manques de cache ou les prédictions de branchement.

L'outil perf est un puissant utilitaire en ligne de commande pour l'analyse des performances sous Linux. perf stat est utilisé pour exécuter une commande et collecter les statistiques des compteurs de performance lors de l'exécution de cette commande.

Commençons par exécuter une commande simple et en observons les compteurs de performance. Nous utiliserons la commande ls, qui liste le contenu d'un répertoire.

Ouvrez le terminal si vous ne l'avez pas déjà fait. Vous pouvez trouver l'icône Xfce Terminal sur le côté gauche de votre bureau.

Maintenant, tapez la commande suivante et appuyez sur Entrée :

perf stat ls

Vous devriez voir une sortie similaire à celle-ci :

 Performance counter stats for 'ls':

          <placeholder>      task-clock (msec)         ##    <placeholder> CPUs utilized
          <placeholder>      context-switches          ##    <placeholder> /sec
          <placeholder>      cpu-migrations            ##    <placeholder> /sec
          <placeholder>      page-faults               ##    <placeholder> /sec
          <placeholder>      cycles                    ##    <placeholder> GHz
          <placeholder>      instructions              ##    <placeholder>  insns per cycle
          <placeholder>      branches                  ##    <placeholder> % of all instructions
          <placeholder>      branch-misses             ##    <placeholder> % of all branches

          <placeholder> msec task-clock                ##    <placeholder> CPUs utilized

Les nombres exacts et les événements peuvent varier en fonction du système et de l'exécution spécifique, mais vous devriez voir une liste d'événements de performance et de leurs compteurs lors de l'exécution de la commande ls.

Certains événements courants que vous pourriez voir incluent :

  • task-clock : Le temps total pendant lequel la tâche a été exécutée sur un processeur.
  • cycles : Le nombre de cycles de processeur utilisés.
  • instructions : Le nombre d'instructions exécutées.
  • branch-misses : Le nombre de fois où une prédiction de branchement a été incorrecte.

Comprendre ces compteurs peut vous aider à identifier les goulots d'étranglement de performance dans votre code ou votre système.

Vous pouvez également exécuter perf stat sur une commande plus complexe ou même sur un script pour en analyser les performances.

Par exemple, essayons d'exécuter perf stat sur une simple commande sleep :

perf stat sleep 1

Cela mesurera les compteurs de performance pendant que le système est en pause pendant 1 seconde. La sortie affichera les compteurs pour le processus sleep.

Expérimentez en exécutant perf stat sur différentes commandes pour voir comment les compteurs changent.

Cliquez sur Continuer pour passer à l'étape suivante.

Vérifier la configuration des compteurs dans /sys/kernel

Dans cette étape, vous allez découvrir comment les configurations des compteurs de performance sont exposées dans le système de fichiers /sys du noyau Linux. Le système de fichiers /sys fournit une interface vers les structures de données du noyau, vous permettant d'inspecter et parfois de modifier les paramètres du noyau.

Les paramètres des compteurs de performance, tels que l'accès des utilisateurs non privilégiés aux événements bruts des compteurs de performance, sont souvent contrôlés via des fichiers dans /sys/kernel/perf_event.

Naviguons jusqu'au répertoire approprié et inspectons un fichier de configuration.

Tout d'abord, utilisez la commande cd pour changer votre répertoire actuel en /sys/kernel/perf_event. N'oubliez pas que votre répertoire par défaut est ~/project, vous devez donc utiliser le chemin absolu.

Tapez la commande suivante et appuyez sur Entrée :

cd /sys/kernel/perf_event

Maintenant, vous êtes dans le répertoire /sys/kernel/perf_event. Vous pouvez utiliser la commande ls pour voir les fichiers dans ce répertoire :

ls

Vous devriez voir une liste de fichiers, qui peut inclure :

kptr_restrict  perf_event_paranoid  sysfs_deprecated

Le fichier qui nous intéresse est perf_event_paranoid. Ce fichier contrôle le niveau d'accès que les utilisateurs non privilégiés ont aux événements de performance. Une valeur plus basse signifie moins de restrictions (plus d'accès), et une valeur plus élevée signifie plus de restrictions (moins d'accès).

Voyons le contenu de ce fichier en utilisant la commande cat :

cat perf_event_paranoid

La sortie sera un seul nombre, généralement compris entre -1 et 2.

<number>

Voici ce que signifient généralement les différentes valeurs :

  • -1 : Autorise tous les utilisateurs à utiliser toutes les fonctionnalités de perf.
  • 0 : Autorise tous les utilisateurs à utiliser perf pour les mesures par processus et par CPU.
  • 1 : N'autorise que les utilisateurs privilégiés (comme root) à utiliser perf pour les mesures par processus et par CPU.
  • 2 : N'autorise que les utilisateurs privilégiés à utiliser perf pour les mesures par processus.

La valeur par défaut est souvent 2 pour des raisons de sécurité, empêchant les utilisateurs non privilégiés d'utiliser potentiellement les compteurs de performance pour obtenir des informations sur d'autres processus.

Comprendre ce fichier vous aide à voir comment le système est configuré en matière d'accès à la surveillance des performances.

Cliquez sur Continuer pour passer à l'étape suivante.

Inspecter les journaux des compteurs avec dmesg

Dans cette étape, vous apprendrez à utiliser la commande dmesg pour afficher les messages du noyau, qui peuvent parfois inclure des informations liées aux compteurs de performance ou aux événements perf. dmesg est une commande qui affiche les messages du tampon circulaire du noyau. Ces messages sont générés par le noyau lors du démarrage et pendant le fonctionnement du système et peuvent contenir des informations précieuses pour le débogage et l'analyse du système.

Alors que perf lui-même affiche généralement les statistiques directement dans le terminal, l'interaction du noyau avec le matériel de surveillance des performances ou tout problème lié peut être enregistré dans le tampon circulaire du noyau.

Pour afficher les messages du noyau, utilisez la commande dmesg :

dmesg

Cela affichera potentiellement une grande quantité de texte dans votre terminal, montrant tous les messages du tampon circulaire du noyau.

Pour trouver des messages spécifiquement liés à perf ou aux compteurs de performance, vous pouvez rediriger la sortie de dmesg vers la commande grep. grep est un outil puissant pour rechercher du texte en utilisant des motifs.

Recherchons des messages contenant le mot "perf" :

dmesg | grep perf

Cette commande effectue les opérations suivantes :

  • dmesg : Affiche les messages du noyau.
  • | : C'est un tuyau (pipe) qui envoie la sortie de la commande de gauche en tant qu'entrée à la commande de droite.
  • grep perf : Recherche dans l'entrée les lignes contenant le mot "perf".

Vous pourriez voir une sortie similaire à celle-ci (ou rien, selon les événements récents du noyau) :

[<placeholder>] perf: interrupt took too long (<placeholder> > <placeholder> ms), lowering kernel.perf_event_paranoid to <placeholder>

Ce message d'exemple indique qu'une interruption de performance a pris trop de temps, et le noyau a automatiquement ajusté le paramètre perf_event_paranoid (que nous avons vu à l'étape précédente) à une valeur moins restrictive pour éventuellement résoudre le problème.

Vous pouvez également rechercher d'autres termes liés, comme "performance" ou "counter" :

dmesg | grep performance
dmesg | grep counter

L'inspection de la sortie de dmesg peut être utile pour diagnostiquer les problèmes liés à la surveillance des performances ou comprendre comment le noyau interagit avec le matériel des compteurs de performance.

Cliquez sur Continuer pour terminer ce laboratoire.

Résumé

Dans ce laboratoire, vous avez appris à vérifier si les compteurs de performance du noyau sont actifs sous Linux. Vous avez commencé par utiliser la commande perf stat pour mesurer les compteurs de performance d'une commande simple comme ls, en observant la sortie des différents événements de performance et leurs compteurs. Cela a démontré la fonctionnalité de base de l'outil perf pour l'analyse des performances.

Le laboratoire vous a ensuite guidé à travers la vérification de la configuration des compteurs de performance dans le système de fichiers /sys/kernel et l'inspection des journaux liés aux compteurs dans la sortie de dmesg. Ces étapes ont fourni des méthodes pour confirmer le support du système et l'état actif des compteurs de performance du noyau, offrant des moyens alternatifs d'évaluer leur disponibilité en dehors de la commande perf stat.