← All Series

SERIES // 9 ARTICLES · COMPLETE

Linux Performance —
Brendan Gregg's maps, walked in full.

Brendan Gregg's performance diagrams are the field's most-shared cheat sheets — dozens of tools pinned to a map of the system. This series turns each diagram into a detailed chapter: every box explained, every tool given a purpose, in plain language with copy-paste commands. The arc follows real performance work — find the bottleneck (observe), check the config (static), measure the ceiling (benchmark), turn the knobs (tune), remember the past (sar) — then go deep on tracing itself: ftrace perf-tools, BCC, bpftrace, and the full BPF Performance Tools catalogue. All nine maps, complete.

9articles
57kwords
289min read
9 / 9complete

1

Observability Tools — every box on the map

The famous observability diagram walked layer by layer: apps & syscalls, the file/VFS stack, the full network stack, CPU & scheduler, virtual memory, the block/disk path, hardware counters — plus the USE method and a 60-second triage sweep.

intermediate 38 min
2

Static Performance Tools — the config that bounds your ceiling

Inspect configuration at rest, no load needed. Wrong RAID mode, a NIC negotiated down, half-populated memory, a powersave governor — none look 'busy' yet each caps you. Every config inspector from ldd to dmidecode to lscpu.

intermediate 30 min
3

Benchmark Tools — measuring the ceiling on purpose

A load generator per layer — fio, iperf, sysbench, lmbench, wrk, MLPerf. What each stresses, the right way to run it, the three traps that turn benchmarks into lies, and why you always pair a benchmark with observability.

intermediate 32 min
4

Tuning Tools — the knobs and where they live

Now change things. A knob per layer — nice/taskset/numactl, ionice/blockdev, sysctl/tc/ethtool, tune2fs, ulimit, stap/kpatch. What each changes, the safe way to apply it, and the iron rule: one change, measure, keep or revert.

advanced 31 min
5

sar — the one tool that remembers last night

Historical observability: sar records counters to disk so you can troubleshoot a 3am slowdown at 9am. One tool, every subsystem by flag — CPU, memory, disk, network — live or replayed from history with -f. Plus collection and sadf export.

intermediate 28 min
6

perf-tools — tracing with what's already in the kernel

Before eBPF: powerful tracing using only built-in ftrace and perf_events — no compiler, no packages. The survival kit for old/locked-down kernels. execsnoop, iosnoop, tcpretrans, and the ftrace power-trio funccount/funcgraph/kprobe.

advanced 28 min
7

bcc/BPF Tracing Tools — the full eBPF toolbox

Dozens of ready-made eBPF tools organised by subsystem: filesystem, per-FS latency, block I/O, language runtimes (ugc, mysqld_qslower), syscalls, CPU & scheduler, memory, the deep TCP stack, and the multi-tool builders.

advanced 36 min
8

bpftrace — the one-liner language for tracing anything

Write your own eBPF tracing in one line. The whole language — probes, filters, actions, built-ins, and @ maps + hist() for cheap in-kernel aggregation — plus the shipped .bt tools. Read and write bpftrace, not just run it.

advanced 32 min
9

BPF Performance Tools — the definitive catalogue (finale)

~150 tools from Gregg's book, proving eBPF reaches every corner — file internals, SCSI/NVMe latency, per-socket ops, typed page faults, hypervisor exits. The new depth plus the methodology that ties all nine chapters together.

advanced 34 min