Un rastreador dinámico para Linux que aprovecha la máquina virtual BPF [Berkeley Packet Filter] del kernel junto con sondas k [kprobes] que son puntos de rastreo que se colocan en funciones del kernel para capturar eventos y puntos de rastreo para conectar sondas a puntos arbitrarios del kernel. Es una herramienta que permite monitorear y recopilar datos en tiempo real del núcleo de Linux sin necesidad de modificar el código del kernel o reiniciar el sistema. Se usa principalmente para diagnóstico, análisis de rendimiento y depuración del sistema.
# ply -T
# ply 'kprobe:vfs_read { @["reads"] = count(); }'
# ply 'kprobe:vfs_write { @[comm] = count(); }'
# ply -d 'kprobe:vfs_read { @reads[comm,pid] = count(); }'
# ply -d 'kprobe:vfs_read { @stats[comm,pid] = count(); }'
1.-
Un ejemplo
$ nano contar-reads.ply
#!/usr/local/bin/ply
kprobe:vfs_read {
@[comm] = count();
}
interval:1000 {
print(@);
clear(@);
}
$ chmod +x contar-reads.ply
# ply contar-reads.ply
Cuando se pulse ctrl-c mostrar las estadísticas
# ply -S mi_script.ply