Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. JVM
  3. perf-tools

perf-tools

GPL-2.0Shellv1.0

A collection of performance analysis tools for Linux using ftrace and perf_events to trace system activity with minimal dependencies.

GitHubGitHub
10.5k stars1.7k forks0 contributors

What is perf-tools?

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.

Target Audience

Linux system administrators, performance engineers, and developers who need low-level observability into kernel and system behavior for debugging and optimization.

Value Proposition

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.

Overview

Performance analysis tools based on Linux perf_events (aka perf) and ftrace

Use Cases

Best For

  • Diagnosing slow disk I/O latency and identifying problematic processes
  • Monitoring unexpected process executions or file opens in real-time
  • Profiling kernel function call frequency and latency for driver development
  • Investigating TCP retransmission issues and network stack problems
  • Analyzing page cache efficiency and memory subsystem behavior
  • Dynamic tracing of kernel or user-space functions without recompilation

Not Ideal For

  • Production environments where kernel stability and minimal overhead are non-negotiable
  • Teams needing long-term, vendor-supported performance monitoring solutions
  • Users on Linux kernels older than 3.2 (e.g., CentOS 6.x) due to risk of panics and bugs
  • Developers preferring graphical interfaces or integrated APM suites over command-line scripts

Pros & Cons

Pros

Minimal Installation Dependencies

Tools require only basic kernel features like ftrace and perf_events, with no debuginfo or complex packages needed, as highlighted in the Prerequisites section.

Broad System Observability

Covers disk I/O, system calls, kernel functions, TCP, and cache analysis through scripts like iosnoop and execsnoop, providing comprehensive insights without custom instrumentation.

Expert-Driven Practical Design

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.

Real-Time Diagnostics Capability

Scripts such as opensnoop and killsnoop offer immediate tracing of file opens and signals, enabling live troubleshooting for anomalous system behavior.

Cons

Unsupported and Brittle Implementation

The README explicitly states tools are 'in-development and unsupported', relying on workarounds that can be kernel-version specific and prone to breakage.

High Overhead and Stability Risks

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.

Limited Future Viability

Project describes tools as placeholders until kernel features evolve, pointing to eBPF-based alternatives like bcc for modern use, indicating potential obsolescence.

Frequently Asked Questions

Quick Stats

Stars10,470
Forks1,669
Contributors0
Open Issues40
Last commit2 years ago
CreatedSince 2014

Tags

#system-tracing#debugging-tools#command-line-tools#observability#system-monitoring

Built With

a
awk
L
Linux
S
Shell Script

Included in

JVM2.2k
Auto-fetched 11 hours ago

Related Projects

bccbcc

BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more

Stars22,657
Forks4,075
Last commit12 days ago
likwidlikwid

Performance monitoring and benchmarking suite

Stars1,940
Forks272
Last commit22 hours ago
iopingioping

simple disk I/0 latency measuring tool

Stars986
Forks80
Last commit8 months ago
jinfojinfo

Prints configuration information for a given process

Stars0
Forks0
Last commit
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub