Inicio > Gestión de paquetes y sistema > perf

perf: Herramienta de análisis de rendimiento de Linux

perf es una potente herramienta de monitorización y análisis de rendimiento integrada en el kernel de Linux. Se utiliza para rastrear diversos eventos de hardware y software, como el uso de la CPU, fallos de caché y llamadas al sistema, para identificar y optimizar cuellos de botella de rendimiento en aplicaciones y sistemas. Opera a nivel de kernel, proporcionando datos de rendimiento muy detallados y precisos.

Descripción general

perf es una herramienta esencial para que los desarrolladores y administradores de sistemas diagnostiquen y optimicen problemas de rendimiento. Ofrece amplias capacidades de análisis de rendimiento, como la recopilación de estadísticas, el registro de eventos y la generación de informes, a través de varios subcomandos.

Funciones principales

  • Perfilado de CPU (uso de CPU, análisis de pila de llamadas)
  • Monitorización de eventos de hardware (fallos de caché, fallos de predicción de ramas, etc.)
  • Monitorización de eventos de software (eventos de planificación, fallos de página, etc.)
  • Seguimiento y análisis de llamadas al sistema
  • Trazado dinámico (kprobes, uprobes)

Opciones principales (subcomandos)

perf realiza funciones a través de varios subcomandos. Cada subcomando tiene sus propias opciones.

perf stat: Recopilación de estadísticas

perf record: Registro de datos de rendimiento

perf report: Análisis de datos registrados

perf list: Lista de eventos disponibles

Comando generado:

Combina los comandos.

Descripción:

`perf` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Ejemplos de uso

Varios ejemplos de cómo utilizar el comando perf.

Ver estadísticas de ejecución del comando ls

perf stat ls

Comprueba las estadísticas básicas de rendimiento, como ciclos de CPU, recuento de instrucciones y fallos de caché, mientras se ejecuta el comando ls.

Monitorizar un proceso específico durante 5 segundos

perf stat -p 1234 sleep 5

Monitoriza las estadísticas de rendimiento de un proceso con PID 1234 durante 5 segundos. (Reemplace con el PID real)

Registrar gráfico de llamadas durante la ejecución de la aplicación

perf record -g ./my_app

Registra datos de rendimiento, incluida la información de la pila de llamadas de funciones, durante la ejecución de my_app. Los datos registrados se guardan en el archivo perf.data.

Analizar datos registrados

perf report

Analiza interactivamente el archivo perf.data generado por perf record para visualizar visualmente los cuellos de botella de rendimiento.

Ver la lista de eventos de hardware disponibles

perf list hw

Consulta la lista de todos los eventos de rendimiento de hardware que perf puede monitorizar en el sistema actual.

Instalación

perf puede no estar instalado por defecto en la mayoría de las distribuciones de Linux. Puede instalarlo utilizando los siguientes comandos.

Debian/Ubuntu

sudo apt update
sudo apt install linux-tools-common linux-tools-$(uname -r)

Comandos para instalar perf en sistemas basados en Debian o Ubuntu. Debe instalar el paquete linux-tools correspondiente a su versión del kernel.

CentOS/RHEL/Fedora

sudo yum install perf
# o sudo dnf install perf (Fedora)

Comandos para instalar perf en sistemas basados en CentOS, RHEL o Fedora.

Consejos y precauciones

Consejos útiles y precauciones al usar perf.

Permisos de root

La mayoría de los comandos perf requieren permisos de root (sudo) ya que recopilan datos de rendimiento de todo el sistema.

  • Si recibe un error de 'Operation not permitted' al ejecutar un comando perf, intente usar sudo.

Carga de símbolos del kernel

Si los nombres de las funciones se muestran como 'unknown' en perf report, necesita cargar los símbolos del kernel. Esto se puede lograr instalando los paquetes 'kernel-debuginfo' o 'kernel-devel'.

  • CentOS/RHEL: `sudo debuginfo-install kernel`
  • Ubuntu/Debian: `sudo apt install linux-image-$(uname -r)-dbg`

Sobrecarga

perf recopila datos muy detallados, por lo que puede causar una ligera sobrecarga en el sistema, especialmente cuando se utiliza `perf record` con una alta frecuencia de muestreo. Úselo con precaución en entornos de producción.

  • En sistemas sensibles al rendimiento, comience con una frecuencia de muestreo baja (opción -F) para minimizar la sobrecarga.

Uso de perf top

`perf top` es un subcomando útil que muestra las funciones que consumen más CPU en tiempo real. Es adecuado para la monitorización básica del rendimiento.

  • Puede usar `perf top` para identificar rápidamente las funciones que consumen la mayor parte del tiempo de CPU en el sistema actual.

Comandos de la misma categoría