La version 5.0 du système de traçage dynamique SystemTap a été publiée, offrant pour la plateforme Linux des outils de débogage similaires à la technologie DTrace. SystemTap permet une surveillance détaillée d'un système Linux en fonctionnement, la collecte de statistiques sur l'utilisation des applications, le profilage et le contrôle des appels système. La gestion se fait via une interface en ligne de commande et un langage de script de type C. Le système est compatible avec les noyaux Linux à partir de la version 3.10 jusqu'à 6.6-rc0.
Le développement du projet implique des entreprises telles que Red Hat, IBM, Intel, Hitachi et Oracle. Le catalogue d'exemples présente plus de 190 scripts pour divers cas d'utilisation, adaptés à la surveillance de la distribution de la mémoire, des entrées/sorties, des opérations de disque, du trafic réseau (par exemple, l'analyse du fonctionnement de NFS), du travail du planificateur de tâches, du traitement des interruptions, de l'utilisation des tampons système, de l'établissement de verrous, de l'exécution d'appels système, du traitement des signaux, etc.
Principales modifications :
- Le support de la branche du noyau 2.6.32, utilisée dans RHEL6, a été abandonné. Les tests de SystemTap sont désormais effectués avec les noyaux 3.10 (RHEL7), 4.18 (RHEL8 + CentOS Stream 8), 5.14.0 (RHEL9 + CentOS Stream 9), 6.4 (Fedora 38), 6.5 (Fedora 39) et 6.6-rc (Fedora rawhide).
- Ajout du support du processus debuginfod pour obtenir dynamiquement des informations de débogage et des métadonnées sur les fichiers exécutables installés.
- Ajout du support des données de débogage au format DWARF5, qui peuvent être utilisées dans la fonction print_ubacktrace_fileline().
- Dans le frontend (utilitaire stap) en présence de serveurs debuginfod, il est possible d'utiliser des masques lors de la définition des processus cibles, par exemple, stap -e 'probe debuginfod.process("/usr/*/curl").begin { log("hi")}.' La granularité des informations sur les processus dans la liste affichée avec l'option '-L' a été améliorée en combinaison avec plusieurs '-v'.
- Dans le backend, la performance de l'enregistrement uprobe a été améliorée et le démarrage du module noyau a été accéléré. Un système de transmission de messages entre le noyau et l'espace utilisateur plus rapide et plus fiable a été proposé.
- Des macros traitables à l'exécution ont été ajoutées : STP_TIMING_NSECS pour obtenir des informations de timing en nanosecondes et STP_FORCE_STDOUT_TTY pour redéfinir STP_STDOUT_NOT_ATTY.
Source : opennet.ru
