A collection of performance analysis tools for Linux using ftrace and perf_events to trace system activity with minimal dependencies.
perf-tools is a collection of command-line performance analysis scripts for Linux systems. It uses the kernel's built-in ftrace and perf_events subsystems to provide detailed observability into disk I/O, system calls, kernel functions, and network activity. The tools help developers and system administrators diagnose performance bottlenecks and anomalous behavior without requiring complex instrumentation or debug symbols.
Linux system administrators, performance engineers, and developers who need low-level observability into kernel and system behavior for debugging and optimization.
It offers a lightweight, dependency-minimal alternative to heavier profiling suites, providing immediate utility on production systems where installing debuginfo or specialized packages isn't feasible. The tools are designed by Brendan Gregg, a renowned performance expert, ensuring practical and battle-tested approaches.
Performance analysis tools based on Linux perf_events (aka perf) and ftrace
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Tools require only basic kernel features like ftrace and perf_events, with no debuginfo or complex packages needed, as highlighted in the Prerequisites section.
Covers disk I/O, system calls, kernel functions, TCP, and cache analysis through scripts like iosnoop and execsnoop, providing comprehensive insights without custom instrumentation.
Created by Brendan Gregg, a renowned performance expert, ensuring tools are battle-tested and follow the Unix philosophy of doing one thing well, with extensive examples and man pages.
Scripts such as opensnoop and killsnoop offer immediate tracing of file opens and signals, enabling live troubleshooting for anomalous system behavior.
The README explicitly states tools are 'in-development and unsupported', relying on workarounds that can be kernel-version specific and prone to breakage.
Warnings in the README note overhead can slow applications by up to 5x, with risks of kernel panics, especially on older kernels like 2.6.x.
Project describes tools as placeholders until kernel features evolve, pointing to eBPF-based alternatives like bcc for modern use, indicating potential obsolescence.