Chapitre 43. OProfile

OProfile est un outil de contrôle de performance sur tout le système. Il utilise le matériel de contrôle de performance sur le processeur pour récupérer des informations sur le noyau et les exécutables du système, comme lorsqu'il s'agit de mémoire, le nombre de requêtes de cache L2 et le nombre d'interruptions matérielles reçues. Sur un système Red Hat Enterprise Linux, le paquetage RPM oprofile doit être installé afin d'utiliser cet outil.

De nombreux processeurs incluent du matériel de contrôle dédié à la performance. Ce matériel permet de détecter lorsque certains évènements se produisent (comme les données demandées ne se trouvant pas en cache). Le matériel prend généralement la forme d'un ou plusieurs compteurs qui sont incrémentés chaque fois qu'un évènement se produit. Lorsque la valeur du compteur "redémarre," une interruption est générée, permettant de contrôler la quantité de détails (et ainsi, de coûts) produits par le contrôle de performance.

OProfile utilise ce matériel (ou un substitut basé sur une horloge dans le cas où le matériel de contrôle de performance n'est pas présent) pour recueillir des échantillons de données associées aux performances chaque fois qu'un compteur produit une interruption. Ces échantillons sont écrits périodiquement sur disque ; à une date ultérieure, les données contenues dans ces échantillons peuvent être utilisées pour produire des rapports sur la performance au niveau du système ou des applications.

ImportantImportant
 

La prise en charge du noyau pour OProfile dans Red Hat Enterprise Linux 3 est basé sur le code du noyau de développement 2.5. Lors de références à la documentation de OProfile, des fonctions spécifiques à 2.5 s'appliquent à OProfile dans Red Hat Enterprise Linux 3, même si la version du noyau est 2.4. Il en est de même pour les fonctions de OProfile spécifiques au noyau 2.4 qui ne s'appliquent pas à Red Hat Enterprise Linux 3.

OProfile est un outil utile, mais faites attention à certaines restrictions lors de son utilisation :

Sous Red Hat Enterprise Linux, seuls les noyaux à plusieurs processeurs (SMP) ont le support de OProfile activé. Afin de déterminer quel noyau est en cours d'exécution, exécutez la commande suivante :

uname -r

Si la version du noyau renvoyée se termine par .entsmp, le noyau multiprocesseur est en cours d'exécution. Dans le cas contraire, installez-le via Red Hat Network ou depuis les CD-ROM de la distribution, même si le système n'est pas un système multiprocesseur. Le noyau multiprocesseur peut être exécuté sur un système à un seul processeur.

43.1. Aperçu des outils

Le Tableau 43-1 offre un bref aperçu sur les outils fournis avec le paquetage oprofile.

CommandeDescription
opcontrol

Configure les données recueillies. Reportez-vous à la Section 43.2 afin d'obtenir davantage d'informations.

op_help

Affiche les évènements disponibles pour le processeur du système avec une courte description pour chacun.

op_merge

Fusionne plusieurs échantillons du même exécutable. Reportez-vous à la Section 43.5.4 pour de plus amples informations.

op_timeDonne un aperçu sur tous les exécutables. Reportez-vous à la Section 43.5.1 pour de plus amples informations.
op_to_sourceCrée une source annotée pour un exécutable si l'application a été compilée avec des symboles de débogage. Reportez-vous à la Section 43.5.3 pour de plus amples informations.
oprofiled

Tourne comme un démon pour écrire périodiquement des données échantillon sur le disque.

oprofpp

Récupère les données du profil. Reportez-vous à la Section 43.5.2 pour de plus amples informations.

op_import

Convertit des fichiers de base de données échantillons de format binaire étranger en format natif du système. Utilisez cette option uniquement lors de l'analyse d'une base de données échantillon d'une architecture différente.

Tableau 43-1. Commandes de OProfile