Tprof

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Profilage CPU (kernel/user/interruptions)
Commande tprof
Contexte AIX — diagnostic de performance approfondi, au-delà du monitoring temps réel de Topas
Voir aussi Topas (vue quotidienne) · Perf (équivalent Linux)

tprof est l'outil de profilage CPU fin d'AIX : il mesure comment le temps processeur se répartit entre code noyau, code utilisateur, bibliothèques partagées et gestionnaires d'interruption, globalement ou par process/fonction. C'est l'outil auquel Topas renvoie pour aller plus loin qu'une simple vue temps réel — l'équivalent Linux le plus proche dans cet esprit est Perf (perf record/perf report).

Profiler tout le système sur une durée donnée

Pour profiler l'ensemble du système pendant une fenêtre de temps fixe, on fait porter le profilage sur une commande de temporisation (typiquement sleep) passée en argument de -x : tprof profile tout ce qui s'exécute sur la machine pendant la durée de cette commande.

tprof -x sleep 30        # profile tout le système pendant 30 secondes
tprof -u -x sleep 30     # idem, en ajoutant le détail par fonction en mode utilisateur

Profiler un process précis

Pour cibler un process particulier plutôt que l'ensemble du système, on filtre par nom de process avec -p, toujours combiné à une commande de temporisation pour borner la durée de capture :

tprof -p nomprocess -x sleep 30   # profile uniquement "nomprocess" pendant 30 secondes

Le nom passé à -p doit correspondre au nom du process tel qu'il apparaît dans les outils système (ps/Topas) — utile pour isoler une appli qui consomme anormalement de CPU sans bruit du reste du système (à vérifier selon la version d'AIX).

Lire le rapport généré

tprof écrit un rapport (à vérifier : nom de fichier exact, souvent de la forme __prof.all) qui ventile les tics CPU collectés par process, avec une répartition du temps en colonnes Kernel (code noyau), User (code applicatif), Shared (bibliothèques partagées) et Other — plus une ligne wait représentant le temps idle de la machine sur la fenêtre de capture. Avec -u, ce rapport descend au niveau fonction et affiche un profil par routine appelante, ce qui permet de repérer précisément quelle portion de code consomme le CPU plutôt que de rester au niveau process.

Une part anormalement élevée de temps Kernel pointe vers des appels système coûteux (I/O, gestion mémoire) plutôt que vers le code applicatif lui-même, tandis qu'une part élevée en interruptions oriente vers du matériel ou des pilotes plutôt que vers l'application profilée.

Voir aussi

  • Topas — vue temps réel quotidienne, qui renvoie déjà vers tprof pour un diagnostic plus poussé
  • Perf — équivalent Linux (perf record/perf report) pour la même démarche de profilage CPU fin