Red Hat Training

A Red Hat training course is available for RHEL 8

24.2.2. Instalación de SystemTap

Para empezar a utilizar SystemTap, instale los paquetes necesarios. Para utilizar SystemTap en más de un núcleo cuando un sistema tiene varios núcleos instalados, instale los correspondientes paquetes del núcleo necesarios para la versión del núcleo each.

Requisitos previos

Procedimiento

  1. Instale los paquetes SystemTap necesarios:

    # yum install systemtap
  2. Instale los paquetes del kernel necesarios:

    1. Utilizando stap-prep:

      # stap-prep
    2. Si stap-prep no funciona, instale manualmente los paquetes del kernel necesarios:

      # yum install kernel-debuginfo-$(uname -r) kernel-debuginfo-common-$(uname -i)-$(uname -r) kernel-devel-$(uname -r)

      $(uname -i) se sustituye automáticamente por la plataforma de hardware de su sistema y $(uname -r) se sustituye automáticamente por la versión de su kernel en ejecución.

Pasos de verificación

  • Si el núcleo que se va a sondear con SystemTap está actualmente en uso, compruebe si su instalación se ha realizado correctamente:

    # stap -v -e 'probe kernel.function(\ "vfs_read") {printf(\ "read performed\n"); exit()}'

    Un despliegue exitoso de SystemTap resulta en una salida similar a la siguiente:

    Pass 1: parsed user script and 45 library script(s) in 340usr/0sys/358real ms.
    Pass 2: analyzed script: 1 probe(s), 1 function(s), 0 embed(s), 0 global(s) in 290usr/260sys/568real ms.
    Pass 3: translated to C into "/tmp/stapiArgLX/stap_e5886fa50499994e6a87aacdc43cd392_399.c" in 490usr/430sys/938real ms.
    Pass 4: compiled C into "stap_e5886fa50499994e6a87aacdc43cd392_399.ko" in 3310usr/430sys/3714real ms.
    Pass 5: starting run. 1
    read performed 2
    Pass 5: run completed in 10usr/40sys/73real ms. 3

    Las tres últimas líneas de salida (que comienzan con Pass 5) indican que:

    1
    SystemTap creó con éxito la instrumentación para sondear el kernel y ejecutó la instrumentación.
    2
    SystemTap ha detectado el evento especificado (en este caso, una lectura VFS).
    3
    SystemTap ejecutó un manejador válido (imprimió el texto y luego lo cerró sin errores).