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.