Tprof
| 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.