GNU/Linux >> Tutoriales Linux >  >> Linux

Perf de Linux:cómo usar el comando y el generador de perfiles

Introducción

La herramienta perf de Linux es una utilidad de línea de comandos liviana para generar perfiles y monitorear el rendimiento de la CPU en sistemas Linux. Aunque la herramienta es simple, proporciona información detallada que ayuda a analizar las CPU.

El comando contiene muchos subcomandos para recopilar, rastrear y analizar datos de eventos de la CPU.

Esta guía demuestra la herramienta Perf a través de ejemplos.

Requisitos previos

  • Acceso a la terminal.
  • Acceso a root o un usuario con privilegios sudo.
  • Un editor de texto, como nano o Vi/Vim.

Cómo instalar perf

El programa perf no viene preinstalado en los sistemas Linux. La instalación difiere según la distribución de Linux:

  • Ubuntu/Debian
sudo apt install linux-tools-$(uname -r) linux-tools-generic
  • RHEL/CentOS
sudo yum install perf
  • Fedora
sudo dnf install perf

Verifique la instalación con:

perf --version

La salida imprime el número de versión, lo que indica que la instalación fue exitosa.

Permitir a los usuarios regulares usar perf

El perf el comando, de forma predeterminada, requiere sudo privilegios Para permitir que los usuarios regulares usen perf , haga lo siguiente:

1. Cambie al usuario root:

sudo su -

2. Introduzca el siguiente comando:

echo 0 > /proc/sys/kernel/perf_event_paranoid

El comando permite a los usuarios regulares usar la utilidad perf en la sesión actual.

3. Vuelva al usuario normal con:

exit

Para conservar los cambios, haga lo siguiente:

1. Edite el sysctl archivo de configuración:

sudo nano /etc/sysctl.conf

2. Agregue lo siguiente al archivo:

kernel.perf_event_paranoid = 0

3. Guarde los cambios y salga de nano.

Sintaxis del comando perf de Linux

El perf la sintaxis del comando es:

perf <options> subcommand <options/arguments>

La herramienta perf funciona como git. Actúa como una interfaz para varios subcomandos y diferentes actividades. Ejecutar el comando sin opciones ni argumentos muestra la lista de subcomandos disponibles.

Subcomandos de rendimiento de Linux

A continuación se muestra una tabla que describe perf comúnmente utilizados subcomandos:

Subcomando Descripción
annotate Lee datos de rendimiento y muestra el código anotado.
list Enumera todos los eventos medibles.
stat Recopila estadísticas de rendimiento.
record Graba muestras en perf.data .
report Lee datos de rendimiento y muestra el perfil.
script Lee datos de rendimiento y muestra la salida de rastreo.
top Herramienta de creación de perfiles.

Los subcomandos tienen opciones adicionales. Para mostrar opciones para subcomandos individuales, ejecute:

perf <subcommand> -h

El resultado muestra una breve ventana de ayuda para el subcomando específico.

Ejemplos de comandos perf de Linux

Para probar el perf comando, estamos usando la pequeña instancia BMC s0.d1 de phoenixNAP que ejecuta Ubuntu 18.04.

Nota: Para otros casos de uso de la instancia pequeña de BMC, consulte algunas de nuestras guías:

  • Configuración de un cortafuegos en una instancia de BMC s0.d1.small
  • Cómo configurar un balanceador de carga en un servidor BMC s0.d1.small
  • Configuración de un entorno Sandbox en una instancia de BMC S.0

Al perfilar una CPU con el perf comando, el flujo de trabajo típico es usar:

1. perf list para buscar eventos.

2. perf stat para contar los eventos.

3. perf record para escribir eventos en un archivo.

4. perf report para navegar por el archivo grabado.

5. perf script para volcar eventos después del procesamiento.

Los resultados difieren según el sistema y los recursos disponibles localmente.

1. Lista de los eventos disponibles

Enumere todos los eventos medibles usando perf con el list subcomando:

sudo perf list

La salida enumera todos los eventos admitidos, independientemente del tipo. Sin sudo , el comando muestra una lista más corta. Cuando haga referencia a eventos en otros subcomandos, use el -e etiqueta seguida del nombre del evento de la primera columna.

Agregue el parámetro de filtro después del comando para limitar la lista por nombre de evento (primera columna) o tipo de evento (segunda columna). Por ejemplo, muestre solo eventos de hardware con:

sudo perf list hardware

O alternativamente:

sudo perf list hw

La salida muestra el resultado filtrado en función del parámetro o parámetros proporcionados.

2. Ver el perfil del sistema en tiempo real de la CPU

Para ver el perfil de la CPU en tiempo real, use el top subcomando:

sudo perf top

El comando muestra funciones de muestra en tiempo real, similar al comando superior de Linux. La salida imprime las siguientes tres columnas en orden de izquierda a derecha:

1. Uso de CPU vinculado a una función expresada en porcentajes.

2. La biblioteca o programa que está usando la función.

3. El símbolo y el nombre de la función, donde [k] es el espacio del kernel y [.] es espacio de usuario.

Por defecto, perf top supervisa todas las CPU en línea. Las opciones adicionales permiten:

  • Supervisión de todas las CPU (incluidas las inactivas) (-a ).
  • Supervisión de CPU específicas (-C ).
  • Controlar la frecuencia de muestreo (-F ).

Para mostrar opciones adicionales durante el modo de navegación, presione h .

Para salir del generador de perfiles y volver a la terminal, presione q .

3. Ver estadísticas de rendimiento de la CPU con perf

Para mostrar las estadísticas de rendimiento de la CPU para todos los eventos estándar de software y hardware de toda la CPU, ejecute:

sudo perf stat -a sleep 5

El resultado muestra un informe detallado de todo el sistema recopilado durante cinco segundos. Sin sleep 5 , el sistema mide hasta la terminación con CTRL +C .

4. Ver el rendimiento de la CPU para un comando

Para verificar las estadísticas de rendimiento de la CPU para un comando específico, ejecute:

sudo perf stat <command>

Por ejemplo, busque el ls comando con:

sudo perf stat ls

El tiempo total que tarda un comando se muestra como tiempo transcurrido al final de la salida.

5. Ver el rendimiento de la CPU para un proceso

Adjunte estadísticas de rendimiento de la CPU a un proceso en ejecución específico utilizando el -p etiqueta y proporcionando el ID del proceso (PID):

sudo perf -p <PID> sleep 5

La salida recopila y muestra estadísticas de rendimiento para el proceso dado.

6. Contar llamadas al sistema de eventos por tipo

Para contar las llamadas al sistema del kernel de Linux por tipo, ejecute:

sudo perf stat -e 'syscalls:sys_enter_*' -a sleep 5

Después de cinco segundos, la salida muestra todas las llamadas de todo el sistema y su recuento.

7. Grabar ciclos de CPU

Los ciclos de CPU son un evento de hardware. Para registrar ciclos de CPU, use el record subcomando y proporcione el nombre del evento con el -e etiqueta:

sudo perf record -e cycles sleep 10

La grabación guarda los datos en un perf.data expediente. La salida imprime el tamaño del archivo y cuántas muestras de datos contiene.

8. Ver resultados de rendimiento

Para ver los resultados de rendimiento de perf.data archivo, ejecute:

sudo perf report

El comando ayuda a leer los perf.data archivo, que muestra todos los eventos y estadísticas recopilados. Para salir del visor, presiona CTRL +C .

9. Modificar formato de salida de muestra

Para ver la salida de muestra en formato de salida estándar, ejecute:

sudo perf report --stdio

Las modificaciones adicionales incluyen mostrar el número de muestra para cada evento (-n ) y mostrar columnas específicas (--sort <column name> ). Por ejemplo:

sudo perf report -n --sort comm,symbol --stdio

La salida agrega una columna para el número de muestra y la información de comando y símbolo.

10. Mostrar salida de seguimiento

Usa el script subcomando para enumerar todos los eventos de perf.dat una. Por ejemplo:

sudo perf script

La salida imprime los perf.data detalles en orden de tiempo. Usa el script subcomando como datos de posprocesamiento.

11. Mostrar encabezado de seguimiento

Para mostrar todos los eventos de perf.data con información de encabezado de seguimiento adicional, ejecute:

sudo perf script --header

El resultado muestra la información del encabezado del archivo, como cuándo comenzó el seguimiento, cuánto duró, la información de la CPU y el comando que obtuvo los datos. La lista de eventos se encuentra después de la información del encabezado.

12. Volcar datos sin procesar

Para volcar datos sin procesar como hexadecimal desde perf.data archivo, use el -D opción:

sudo perf script -D

El resultado es la información de seguimiento de eventos sin procesar en formato ASCII. La opción es útil para la depuración de eventos.

13. Anotar datos

Para anotar datos y desensamblar más, use el annotate subcomando:

sudo perf annotate --stdio -v

Los -v La opción proporciona una salida detallada. El resultado muestra el código fuente y el desmontaje de los eventos.

Conclusión

Después de leer los ejemplos de esta guía, conoce los conceptos básicos del uso de Linux perf comando y algunos de los principales subcomandos. Utilice el comando man para ver la documentación completa de la herramienta de análisis de rendimiento y los subcomandos.


Linux
  1. Cómo usar el comando de historial en Linux

  2. Cómo crear un alias y usar el comando Alias ​​en Linux

  3. Cómo usar el comando id en Linux

  4. Cómo instalar y usar el comando ping en Linux

  5. Cómo usar el comando "pantalla" en Linux

Cómo usar el comando fd en el sistema Linux

¿Cómo usar el comando wget en Linux?

¿Cómo usar el comando xargs en Linux?

Cómo instalar y usar el comando Ack en Linux

Cómo usar el comando RPM en Linux

Cómo usar el comando which en Linux