eBPF.top · Head First eBPF

专题 / Tracing & Observability

🔍 追踪与可观测

kprobe、tracepoint、uprobe、bpftrace、Ftrace 与性能分析 · 共 24 篇

2026 3 篇

BPF

一次可挂上四百多个系统调用:tracing_multi 进 Linux 7.2

想给每一个系统调用都挂上延时统计时,过去常见两条路:要么写几百份几乎一样的 BPF 程序,要么退回 kprobe 多重挂接——安装灵活,但热路径往往更贵。Jiri Olsa 推动的 tracing_multi 改变了这件事:一条程序、 …

BPF

跨发行版 eBPF 程序:兼容性负担与工程对策

写一个能在本机加载的 eBPF 程序并不难;难的是让它在多发行版、多架构、多内核版本上长期可用。2026 年 6 月,开发者 kxxt 以开源工具 tracexec 的 eBPF 后端为样本,系统整理了维护负担与工程对策。下文按问题域、案例 …

2025 5 篇

BPF

基于 BPF 任务迭代器实现零侵入性能分析工具 xstack

本文针对零侵入主动性能数据探测工具 xstack 的构建、使用、原理和源码实现进行了整体介绍,在高版本内核中如有类似场景的需求,可直接使用或定制,该工具代码相对简单清晰,也可作为我们学习编写 eBPF 工具的参考样例。

BPF

Linux 内核中的 eBPF 之旅:可观测性、安全性与网络

如你构建系统或运维集群时,频繁遇到代理 (agent)、iptables 或内核模块的各种限制,那么 eBPF 正是你一直在寻找的更安全、更快、更具动态性的技术选择。eBPF 允许你在 Linux 内核中运行小型且经安全验证的程序,实现运 …

BPFMCP

使用 eBPF 监控 MCP 流量

本文我会从 MCP 重要性,使用 eBPF 监控 MCP 原因,MCPSpy 建议版本实现,以及存在的限制方面进行介绍。未来的章节将探讨例如通过 TLS 检查基于 HTTPS 的加密 MCP 通信等其他功能。首先,让我们先从 MCP …

BPFRust

Rust 系列 03:深入理解 Kprobes 与 Kretprobes

虽然与 XDP 或 Tracepoints 等其他 eBPF 程序类型相比,Kprobes 和 Kretprobes 通常具有更高的开销,但它们的多功能性使其变得不可或缺。它们几乎可以附加到任何内核函数,从而能够深入了解系统行为 — 这也是 …

2024 2 篇

BPF

使用 eBPF 追踪进程 capabilities 变化

当想要追踪进程的权能是如何变化,如何传递的时候,传统工具几乎没有办法做到。已知权能的修改一定是通过系统调用触发的,无论是 execve 执行别的程序,还是 setuid 切换用户的时候,毕竟 linux 中应用层与内核的交互几乎都是系统调 …

2022 4 篇

ebpfdebug

eBPF+Ftrace 合璧剑指:no space left on device?

最近在生产环境中遇到了几次创建容器过程中遇到 no space left on device 的报错,但是经过排查磁盘使用空间和 inode 使用量都有大量的剩余。那么这个报错究竟是怎么导致的呢,我们如何快速定位到问题产生的根源呢? 本文是 …

foundationsystem

问题排查利器:Linux 原生跟踪工具 Ftrace 必知必会

如果你只是需要快速使用工具来进行问题排查,包括但不限于函数调用栈跟踪、函数调用子函数流程、函数返回结果,那么推荐你直接使用 Brendan Gregg 封装的 perf-tools工具即可,本文尝试从手工操作 Ftrace 跟踪工具的方式展 …

BPF

eBPF 与 Go,超能力组合(含视频)

本文主要对 eBPF 程序跟踪 Go 程序的函数调用、Go 函数调用参数等方面进行介绍, 而且还基于 bpf_probe_write_user 函数对跟踪 Go 语言函数进行修改的样例。本文涉及的完整环境搭建,请参环境准备篇。

2021 10 篇

BPFoffensivesecurity

【BPF 攻防系列-1】【译】开战!!!

在近几年来,eBPF 在 Linux 社区和之外得到了越来越多的关注。eBPF 在攻击场景中的使用也逐渐引起大家的关注。因此,我决定从红队的角度进入深入探讨,以让大家对此有个整体的认识,以下系列文章则是对于这个历程的分享。

networkBPF

基于 eBPF 的网络监测实践

公有云网络问题,是一个老生常谈的事情了。今天主要简单说明下,在内网环境下去分析 & 定位这个问题。也并不是一开始就需要 eBPF 加持的,可以从简单的基础工具到监控配合去相关比较快速的定位问题,解决问题。 …

BPFfoundationebpf-overview

【译】eBPF 概述:第 5 部分:跟踪用户进程

到目前为止,我们故意避免深入讨论用户空间跟踪,因为它值得特别对待,因此我们在第 5 部分中专门讨论。首先,我们将讨论为什么使用,然后我们将 eBPF 用户跟踪分为静态和动态两类分别讨论。

systemfoundation

来来,让我看看你究竟在干什么?

本文介绍了 pstack 打印程序运行堆栈,golang 中如何输出 goroutine 堆栈和如何使用 sysrq 输出系统运行的线程堆栈;同时对于函数级别的调用栈和子函数调用工具也给出了介绍

BPFfoundation

【BPF入门系列-9】文件打开记录结果跟踪篇

本文在使用 perf_event 跟踪 sys_open 的基础上,使用 kretprobe 机制实现了函数结果返回值的跟踪。由于入口与出口跟踪是两种机制,需要在两个函数中实现。 …