Rechercher

21.2. Utilisation de certains outils bcc pour l'analyse des performances

download PDF

Utilisez certains programmes prédéfinis de la bibliothèque BPF Compiler Collection (BCC) pour analyser efficacement et en toute sécurité les performances du système au cas par cas. L'ensemble des programmes pré-créés de la bibliothèque BCC peut servir d'exemple pour la création de programmes supplémentaires.

Conditions préalables

Utilisation de execsnoop pour examiner les processus du système

  1. Exécutez le programme execsnoop dans un terminal :

    # /usr/share/bcc/tools/execsnoop
  2. Dans un autre terminal, par exemple :

    $ ls /usr/share/bcc/tools/doc/

    Ce qui précède crée un processus éphémère de la commande ls.

  3. Le terminal exécutant execsnoop affiche une sortie similaire à la suivante :

    PCOMM	PID    PPID   RET ARGS
    ls   	8382   8287     0 /usr/bin/ls --color=auto /usr/share/bcc/tools/doc/
    ...

    Le programme execsnoop imprime une ligne de sortie pour chaque nouveau processus, ce qui consomme des ressources système. Il détecte même les processus de programmes qui s'exécutent très brièvement, tels que ls, et que la plupart des outils de surveillance n'enregistreraient pas.

    Le site execsnoop affiche les champs suivants :

    • PCOMM - Le nom du processus parent. (ls)
    • PID - L'ID du processus. (8382)
    • PPID - L'ID du processus parent. (8287)
    • RET - La valeur de retour de l'appel système exec() (0), qui charge le code du programme dans de nouveaux processus.
    • ARGS - Emplacement du programme lancé avec les arguments.

Pour plus de détails, d'exemples et d'options concernant execsnoop, consultez le fichier /usr/share/bcc/tools/doc/execsnoop_example.txt.

Pour plus d'informations sur exec(), voir les pages du manuel exec(3).

Utiliser opensnoop pour savoir quels fichiers une commande ouvre

  1. Exécutez le programme opensnoop dans un terminal :

    # /usr/share/bcc/tools/opensnoop -n uname

    Ce qui précède imprime la sortie des fichiers qui ne sont ouverts que par le processus de la commande uname.

  2. Dans un autre terminal, entrez :

    $ uname

    La commande ci-dessus ouvre certains fichiers, qui sont capturés à l'étape suivante.

  3. Le terminal exécutant opensnoop affiche une sortie similaire à la suivante :

    PID    COMM 	FD ERR PATH
    8596   uname 	3  0   /etc/ld.so.cache
    8596   uname 	3  0   /lib64/libc.so.6
    8596   uname 	3  0   /usr/lib/locale/locale-archive
    ...

    Le programme opensnoop surveille l'appel système open() sur l'ensemble du système et imprime une ligne de sortie pour chaque fichier que uname a essayé d'ouvrir en cours de route.

    Le site opensnoop affiche les champs suivants :

    • PID - L'ID du processus. (8596)
    • COMM - Le nom du processus. (uname)
    • FD - Le descripteur de fichier - une valeur que open() renvoie pour faire référence au fichier ouvert. (3)
    • ERR - Erreurs éventuelles.
    • PATH - Emplacement des fichiers que open() a tenté d'ouvrir.

      Si une commande tente de lire un fichier inexistant, la colonne FD renvoie -1 et la colonne ERR imprime une valeur correspondant à l'erreur en question. Par conséquent, opensnoop peut vous aider à identifier une application qui ne se comporte pas correctement.

Pour plus de détails, d'exemples et d'options concernant opensnoop, consultez le fichier /usr/share/bcc/tools/doc/opensnoop_example.txt.

Pour plus d'informations sur open(), voir les pages du manuel open(2).

Utilisation de biotop pour examiner les opérations d'E/S sur le disque

  1. Exécutez le programme biotop dans un terminal :

    # /usr/share/bcc/tools/biotop 30

    Cette commande vous permet de surveiller les principaux processus qui effectuent des opérations d'entrée/sortie sur le disque. L'argument garantit que la commande produira un résumé de 30 secondes.

    Note

    Si aucun argument n'est fourni, l'écran de sortie est rafraîchi par défaut toutes les 1 secondes.

  2. Dans un autre terminal, entrez, par exemple, :

    # dd if=/dev/vda of=/dev/zero

    La commande ci-dessus lit le contenu du disque dur local et écrit la sortie dans le fichier /dev/zero. Cette étape génère un certain trafic d'E/S pour illustrer biotop.

  3. Le terminal exécutant biotop affiche une sortie similaire à la suivante :

    PID    COMM             D MAJ MIN DISK       I/O  Kbytes     AVGms
    9568   dd               R 252 0   vda      16294 14440636.0  3.69
    48     kswapd0          W 252 0   vda       1763 120696.0    1.65
    7571   gnome-shell      R 252 0   vda        834 83612.0     0.33
    1891   gnome-shell      R 252 0   vda       1379 19792.0     0.15
    7515   Xorg             R 252 0   vda        280  9940.0     0.28
    7579   llvmpipe-1       R 252 0   vda        228  6928.0     0.19
    9515   gnome-control-c  R 252 0   vda         62  6444.0     0.43
    8112   gnome-terminal-  R 252 0   vda         67  2572.0     1.54
    7807   gnome-software   R 252 0   vda         31  2336.0     0.73
    9578   awk              R 252 0   vda         17  2228.0     0.66
    7578   llvmpipe-0       R 252 0   vda        156  2204.0     0.07
    9581   pgrep            R 252 0   vda         58  1748.0     0.42
    7531   InputThread      R 252 0   vda         30  1200.0     0.48
    7504   gdbus            R 252 0   vda          3  1164.0     0.30
    1983   llvmpipe-1       R 252 0   vda         39   724.0     0.08
    1982   llvmpipe-0       R 252 0   vda         36   652.0     0.06
    ...

    Le site biotop affiche les champs suivants :

    • PID - L'ID du processus. (9568)
    • COMM - Le nom du processus. (dd)
    • DISK - Le disque effectuant les opérations de lecture. (vda)
    • I/O - Nombre d'opérations de lecture effectuées. (16294)
    • Kbytes - Le nombre de Kbytes atteint par les opérations de lecture. (14,440,636)
    • AVGms - Le temps d'E/S moyen des opérations de lecture. (3.69)

Pour plus de détails, d'exemples et d'options concernant biotop, consultez le fichier /usr/share/bcc/tools/doc/biotop_example.txt.

Pour plus d'informations sur dd, voir les pages du manuel dd(1).

Utilisation de xfsslower pour révéler les lenteurs inattendues du système de fichiers

  1. Exécutez le programme xfsslower dans un terminal :

    # /usr/share/bcc/tools/xfsslower 1

    La commande ci-dessus mesure le temps que le système de fichiers XFS passe à effectuer des opérations de lecture, d'écriture, d'ouverture ou de synchronisation (fsync). L'argument 1 garantit que le programme n'affiche que les opérations qui sont plus lentes que 1 ms.

    Note

    En l'absence d'arguments, xfsslower affiche par défaut les opérations plus lentes que 10 ms.

  2. Dans un autre terminal, entrez, par exemple, ce qui suit :

    $ vim text

    La commande ci-dessus crée un fichier texte dans l'éditeur vim afin d'initier certaines interactions avec le système de fichiers XFS.

  3. Le terminal qui exécute xfsslower affiche quelque chose de similaire après avoir sauvegardé le fichier de l'étape précédente :

    TIME     COMM           PID    T BYTES   OFF_KB   LAT(ms) FILENAME
    13:07:14 b'bash'        4754   R 256     0           7.11 b'vim'
    13:07:14 b'vim'         4754   R 832     0           4.03 b'libgpm.so.2.1.0'
    13:07:14 b'vim'         4754   R 32      20          1.04 b'libgpm.so.2.1.0'
    13:07:14 b'vim'         4754   R 1982    0           2.30 b'vimrc'
    13:07:14 b'vim'         4754   R 1393    0           2.52 b'getscriptPlugin.vim'
    13:07:45 b'vim'         4754   S 0       0           6.71 b'text'
    13:07:45 b'pool'        2588   R 16      0           5.58 b'text'
    ...

    Chaque ligne ci-dessus représente une opération dans le système de fichiers qui a pris plus de temps qu'un certain seuil. xfsslower est capable d'exposer les problèmes éventuels du système de fichiers, qui peuvent prendre la forme d'opérations inopinément lentes.

    Le site xfsslower affiche les champs suivants :

    • COMM - Le nom du processus. (b’bash')
    • T - Le type d'opération. (R)

      • Rtête
      • Write
      • Sync
    • OFF_KB - Le décalage du fichier en Ko. (0)
    • FILENAME - Le fichier en cours de lecture, d'écriture ou de synchronisation.

Pour plus de détails, d'exemples et d'options concernant xfsslower, consultez le fichier /usr/share/bcc/tools/doc/xfsslower_example.txt.

Pour plus d'informations sur fsync, voir les pages du manuel fsync(2).

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.