explaingit

detailyang/bcc

Analysis updated 2026-08-14 · repo last pushed 2024-08-21

2CAudience · ops devopsComplexity · 4/5StaleSetup · moderate

TLDR

BCC is a Linux toolkit for deep system-level performance tracing using eBPF. It ships with dozens of ready-to-use tools to monitor disk I/O, network connections, memory, and kernel activity in real time without slowing your system.

Mindmap

mindmap
  root((repo))
    What it does
      Deep system tracing
      Real-time kernel observation
      Ready-to-use tools
    Tech stack
      C
      Python
      eBPF
      Linux kernel
    Use cases
      Trace TCP connections
      Disk I/O histograms
      Memory leak detection
      Database query tracing
    Audience
      Systems engineers
      Site reliability engineers
      Production infrastructure teams
    Requirements
      Linux kernel 4.1+
      Root privileges
    Key features
      Customizable tracing
      Sandbox-safe programs
      Syscall-level detail

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Trace every TCP connection your server makes to find networking issues.

USE CASE 2

Generate a histogram of disk read sizes to see if your workload uses small or large transfers.

USE CASE 3

Detect memory leaks in a running process without restarting it.

USE CASE 4

Find slow MySQL or PostgreSQL queries by tracing database activity in real time.

What is it built with?

CPythoneBPFLinux kernel

How does it compare?

detailyang/bccalexsjones/whisper-clialisharafiiii/sauron-eye
Stars222
LanguageCCC
Last pushed2024-08-212015-09-12
MaintenanceStaleDormant
Setup difficultymoderatemoderatehard
Complexity4/53/55/5
Audienceops devopsdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Linux kernel 4.1+ and root privileges, many features need an even newer kernel.

No license information was provided in the explanation, so the usage terms are unknown.

In plain English

BCC is a toolkit that lets you watch what's happening inside a Linux system at a very deep level, not just what your applications are doing, but what the operating system itself is doing with disk reads, network connections, memory, process scheduling, and more. It's built around a Linux feature called eBPF, which lets you run small, sandboxed programs inside the kernel that can observe activity in real time without crashing or slowing the system down. The collection ships with dozens of ready-to-use tools. For example, you can trace every TCP connection your server makes, see a histogram of how long disk reads take, detect memory leaks in a running process, find slow MySQL or PostgreSQL queries, watch for short-lived files, or trace which processes are triggering out-of-memory kills. One included tool watches disk I/O and prints a histogram showing how many reads fell into each size bucket, so you can immediately see whether your workload is dominated by small or large transfers. Everything you trace can be customized or extended. The main audience is systems engineers, site reliability engineers, and developers running production Linux infrastructure who need to diagnose performance problems or understand system behavior that standard monitoring tools can't surface. If you're debugging why a server is slow and top or htop aren't giving you enough detail, these tools can tell you exactly which syscalls are slow, which kernel functions are hot, or where packets are getting dropped. BCC makes eBPF programs approachable by letting you write the kernel-side instrumentation in C and the user-facing logic in Python. The key tradeoff is that it only works on Linux kernel 4.1 and above, and many features require an even newer kernel. You also need root privileges, since these tools operate at the kernel level. That's inherent to what they do, you're inspecting the deepest layers of the operating system.

Copy-paste prompts

Prompt 1
Help me install BCC on my Ubuntu server and run the biolatency tool to see a histogram of disk read latencies.
Prompt 2
I need to trace TCP connections on my Linux server using BCC. Show me how to use the tcptracer tool and interpret its output.
Prompt 3
My server is running slow and top is not helping. Walk me through using BCC tools to find which syscalls or kernel functions are slow.
Prompt 4
Set up BCC to detect memory leaks in a running Python process on my production Linux server.
Prompt 5
Help me use BCC to find which processes are triggering out-of-memory kills on my Linux machine.

Frequently asked questions

What is bcc?

BCC is a Linux toolkit for deep system-level performance tracing using eBPF. It ships with dozens of ready-to-use tools to monitor disk I/O, network connections, memory, and kernel activity in real time without slowing your system.

What language is bcc written in?

Mainly C. The stack also includes C, Python, eBPF.

Is bcc actively maintained?

Stale — no commits in 1-2 years (last push 2024-08-21).

What license does bcc use?

No license information was provided in the explanation, so the usage terms are unknown.

How hard is bcc to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is bcc for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.