perf
Herramientas de análisis de rendimiento. Su flujo típico es elegir qué evento medir, recoger datos y luego analizarlos.
$ perf --list-cmds
listado de subcomandos
$ perf --list-opts
ver las opciones
$ perf list
ver todos los eventos sobre los que se puede medir
# perf list stat
mostrar todos los eventos strace
# perf list sw
lista de eventos predefinidos de software
# perf list block
eventos de disco
# perf list sched
eventos scheduler
# perf stat ls -ld /etc
medir un comando: tiempo de ejecución, número de instrucciones ejecutadas, ciclos de CPU, fallos de página, context switches, etc
# perf stat ip a
lo mismo del comando ip
# perf stat -p <PID> sleep 5
medir un proceso en ejecución por el PID durante 5 segundos
# perf stat -e cycles,instructions,cache-misses fastfetch
medir sólo algunos eventos del comando fastfetch
# perf record ip
perfilar la ejecución de un programa
# perf record -a sleep 5
perfilar todo el sistema durante 5 s
# perf record -F 99 -a -- sleep 10
aumentar frecuencia de muestreo
# perf record -e cycles:u neowofetch
perfilar sólo user-space de un programa
# perf report
mostrar los ciclos de todo el sistema
# perf bench mem all
todos los tests de memoria
# perf top
ver los hotspots de CPU de todo el sistema. Parecido a top pero por función/símbolo, no por proceso
# perf top -a
ver todos los CPUs
# perf top -e cpu-clock
enfocarse en un evento concreto
# perf top -p 2798
limitar a un pid
# perf top -e syscalls:sys_enter_*
ver syscalls en tiempo real
# perf sched record sleep 10
registrar la actividad del scheduler durante 10 s
# perf sched latency
mostrar un resumen de latencias
# perf trace free -m
trazar syscalls de un comando
# perf trace ls -ld /etc
lo mismo
# perf trace -p <PID>
trazar syscalls de un PID
Nota.- Para averigurar el PID de un proceso: pgrep firefox.