accueil > Gestion des paquets et du système > perf

perf : outil d'analyse de performance sous Linux

perf est un outil puissant de surveillance et d'analyse des performances intégré au noyau Linux. Il est utilisé pour suivre divers événements matériels et logiciels tels que l'utilisation du CPU, les échecs de cache, les appels système, afin d'identifier et d'optimiser les goulots d'étranglement de performance des applications et du système. Il fonctionne au niveau du noyau, fournissant des données de performance très détaillées et précises.

Aperçu

perf est un outil essentiel pour les développeurs et les administrateurs système afin de diagnostiquer et d'optimiser les problèmes de performance. Grâce à diverses sous-commandes, il offre des fonctionnalités d'analyse de performance étendues telles que la collecte de statistiques, l'enregistrement d'événements et la génération de rapports.

Fonctionnalités principales

  • Profilage du CPU (utilisation du CPU, analyse de la pile d'appels)
  • Surveillance des événements matériels (échecs de cache, échecs de prédiction de branchement, etc.)
  • Surveillance des événements logiciels (événements de planification, fautes de page, etc.)
  • Suivi et analyse des appels système
  • Traçage dynamique (kprobes, uprobes)

Options principales (sous-commandes)

perf exécute ses fonctions via diverses sous-commandes. Chaque sous-commande a ses propres options.

perf stat : collecte de statistiques

perf record : enregistrement des données de performance

perf report : analyse des données enregistrées

perf list : liste des événements disponibles

Commande générée :

Essayez de combiner les commandes.

Description:

`perf` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Exemples d'utilisation

Divers exemples d'utilisation de la commande perf.

Afficher les statistiques d'exécution de la commande ls

perf stat ls

Vérifie les statistiques de performance de base telles que les cycles CPU, le nombre d'instructions et les échecs de cache pendant l'exécution de la commande ls.

Surveiller un processus spécifique pendant 5 secondes

perf stat -p 1234 sleep 5

Surveille les statistiques de performance d'un processus avec le PID 1234 pendant 5 secondes. (Remplacez par le PID réel)

Enregistrer le graphe d'appels lors de l'exécution d'une application

perf record -g ./my_app

Enregistre les données de performance, y compris les informations de la pile d'appels de fonctions, lors de l'exécution de my_app. Les données enregistrées sont stockées dans le fichier perf.data.

Analyser les données enregistrées

perf report

Analyse interactivement le fichier perf.data généré par perf record pour visualiser les goulots d'étranglement de performance.

Afficher la liste des événements matériels disponibles

perf list hw

Vérifie la liste de tous les événements de performance matériels que perf peut surveiller sur le système actuel.

Installation

perf n'est peut-être pas installé par défaut sur la plupart des distributions Linux. Vous pouvez l'installer en utilisant les commandes suivantes.

Debian/Ubuntu

sudo apt update
sudo apt install linux-tools-common linux-tools-$(uname -r)

Commande pour installer perf sur les systèmes basés sur Debian ou Ubuntu. Vous devez installer le paquet linux-tools correspondant à votre version du noyau.

CentOS/RHEL/Fedora

sudo yum install perf
# Ou sudo dnf install perf (Fedora)

Commande pour installer perf sur les systèmes basés sur CentOS, RHEL ou Fedora.

Conseils et précautions

Conseils utiles et points à considérer lors de l'utilisation de perf.

Privilèges root

La plupart des commandes perf nécessitent des privilèges root (sudo) car elles collectent des données de performance globales du système.

  • Si vous recevez une erreur 'Operation not permitted' lors de l'exécution d'une commande perf, essayez d'utiliser sudo.

Chargement des symboles du noyau

Si les noms de fonctions s'affichent comme 'unknown' dans perf report, vous devez charger les symboles du noyau. Cela est possible en installant les paquets 'kernel-debuginfo' ou 'kernel-devel'.

  • CentOS/RHEL : `sudo debuginfo-install kernel`
  • Ubuntu/Debian : `sudo apt install linux-image-$(uname -r)-dbg`

Surcharge

perf collecte des données très détaillées, il peut donc introduire une légère surcharge sur le système, en particulier lors de l'utilisation de perf record avec une fréquence d'échantillonnage élevée. Il doit être utilisé avec prudence dans les environnements de production.

  • Sur les systèmes sensibles aux performances, commencez avec une fréquence d'échantillonnage faible (-F option) pour minimiser la surcharge.

Utilisation de perf top

`perf top` est une sous-commande utile qui affiche les fonctions consommant le plus de CPU en temps réel. Elle est adaptée à la surveillance simple des performances.

  • Utilisez `perf top` pour identifier rapidement les fonctions qui consomment le plus de temps CPU sur votre système.

Commandes de la même catégorie