BPF Performance Tools
书籍定位
BPF Performance Tools 是 Linux 性能分析领域的里程碑著作,作者 Brendan Gregg 是动态追踪技术的世界级专家,现任 Netflix 高级性能架构师。本书详细讲解了 BPF(Berkeley Packet Filter,又称 eBPF)技术在系统性能监控和调优中的应用,提供了上百个可直接使用的分析工具和脚本。BPF 被誉为 Linux 未来的观测技术标准,正在彻底改变系统性能分析的方式。
核心内容
全书系统讲解 BPF 技术栈在性能分析中的完整应用体系:
第一部分:技术基础
- BPF 技术演进历史:从最初的数据包过滤到通用内核虚拟机
- BPF 架构原理:验证器、JIT 编译器、映射(Maps)、程序类型
- BCC(BPF Compiler Collection)工具集安装与使用
- bpftrace 高级追踪语言语法与实践
- 内核追踪点(Tracepoints)、kprobes、uprobes 探测技术
- USDT(用户级静态定义追踪点)应用
- BPF 程序的开发、编译、调试完整流程
第二部分:性能分析全景
- CPU 性能:CPU 调度分析、Off-CPU 分析、火焰图(Flame Graph)生成与解读、运行队列延迟、上下文切换分析、中断处理耗时
- 内存性能:页面分配跟踪、缺页异常分析、Slab 分配器统计、内存泄漏检测、匿名页与文件页分析
- 文件系统 I/O:VFS 层追踪、ext4/XFS/Btrfs 等文件系统操作分析、缓存命中率统计、I/O 延迟分析
- 磁盘 I/O:块层 I/O 追踪、设备驱动层分析、I/O 调度器行为观察
- 网络性能:TCP/IP 协议栈全链路追踪、套接字层分析、连接排队延迟、数据包处理耗时
- 应用程序分析:库调用追踪、系统调用分析、热点函数定位、用户态代码路径延时
第三部分:高级主题与实战
- 容器化环境的性能观测:cgroup 统计、命名空间隔离下的追踪
- 生产环境的 BPF 工具部署策略与安全考量
- 自定义 BPF 工具的开发方法与最佳实践
- 性能分析方法论:USE 方法、延迟热图、off-CPU 分析等
- 常见性能问题的排查思路与案例分析
- BPF 工具生态:bpftool、libbpf、BTF(BPF Type Format)等
适用读者
本书特别适合以下人群:
- Linux 系统管理员和 SRE 工程师
- 性能分析工程师和系统调优专家
- 内核开发者和底层系统程序员
- 云计算和容器技术从业者
- 需要排查生产环境性能问题的后端工程师
- 对操作系统底层机制感兴趣的计算机科学研究者
价值亮点
本书在性能分析领域的独特价值:
- 作者权威:Brendan Gregg 是性能分析领域公认的顶级专家,火焰图发明者,Netflix 一线实战经验
- 工具丰富:提供上百个可直接运行的 BPF 脚本和一行命令,复制粘贴即可解决真实问题
- 深度原创:大量内容来自作者在 Netflix、Oracle 等公司的一线实战经验总结
- 体系化:建立了完整的 Linux 性能分析方法论,不仅给工具更给思路
- 技术前沿:BPF 是目前 Linux 生态最热门的技术方向之一,代表了未来观测技术的标准
- 即学即用:书中工具无需特殊内核补丁,现代主流发行版均可直接运行
- 图文并茂:大量火焰图、热图等可视化分析结果,直观展示性能瓶颈
阅读建议
建议先熟悉 Linux 基本命令和系统概念再阅读本书。从 bcc 和 bpftrace 工具入门,先学会使用现成工具分析真实系统,再逐步深入工具开发。第2章的 Linux 性能分析基础和第3章的性能观测方法是全书的方法论核心,建议精读。火焰图部分要反复练习,掌握解读方法。每学一个工具就在自己的服务器上实际运行,观察真实系统的性能特征。本书不要求读者必须懂内核编程,但有 C 语言和操作系统基础会理解更深入。