Buscar

9.2. Monitorización de las llamadas al sistema de una aplicación con strace

download PDF

La herramienta strace permite monitorizar las llamadas al sistema (kernel) realizadas por una aplicación.

Procedimiento

  1. Identifique las llamadas del sistema a supervisar.
  2. Inicie strace y adjúntelo al programa.

    • Si el programa que desea supervisar no se está ejecutando, inicie strace y especifique el program:

      $ strace -fvttTyy -s 256 -e trace=call program
    • Si el programa ya se está ejecutando, busque su id de proceso (pid) y adjunte strace a él:

      $ ps -C program
      (...)
      $ strace -fvttTyy -s 256 -e trace=call -ppid
    • Sustituya call por las llamadas al sistema que deben mostrarse. Puede utilizar la opción -e trace=call varias veces. Si se omite, strace mostrará todos los tipos de llamadas del sistema. Consulte la página del manual strace(1) para obtener más información.
    • Si no desea rastrear ningún proceso o hilo bifurcado, omita la opción -f.
  3. La herramienta strace muestra las llamadas al sistema realizadas por la aplicación y sus detalles.

    En la mayoría de los casos, una aplicación y sus bibliotecas realizan un gran número de llamadas y la salida strace aparece inmediatamente, si no se establece un filtro para las llamadas al sistema.

  4. La herramienta strace sale cuando el programa se cierra.

    Para terminar la monitorización antes de que el programa trazado salga, pulse Ctrl C.

    • Si strace inició el programa, el programa termina junto con strace.
    • Si se adjunta strace a un programa que ya se está ejecutando, el programa termina junto con strace.
  5. Analizar la lista de llamadas al sistema realizadas por la aplicación.

    • Los problemas de acceso o disponibilidad de recursos aparecen en el registro como llamadas que devuelven errores.
    • Los valores pasados a las llamadas del sistema y los patrones de las secuencias de llamadas permiten conocer las causas del comportamiento de la aplicación.
    • Si la aplicación se bloquea, la información importante probablemente esté al final del registro.
    • La salida contiene mucha información innecesaria. Sin embargo, puede construir un filtro más preciso para las llamadas al sistema que le interesen y repetir el procedimiento.
Nota

Es ventajoso tanto ver la salida como guardarla en un archivo. Para ello, utilice el comando tee:

$ strace ... |& tee your_log_file.log

Recursos adicionales

Red Hat logoGithubRedditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

© 2024 Red Hat, Inc.