洞悉linux系统与应用性能,BPF之巅:洞悉Linux系统和应用性能

第1章 引 言1

1.1 BPF和eBPF是什么 1

1.2 跟踪、嗅探、采样、剖析和可观测性分别是什么 2

1.3 BCC、bpftrace和IO Visor 3

1.4 初识BCC:快速上手 4

1.5 BPF跟踪的能见度 7

1.6 动态插桩:kprobes和uprobes 8

1.7 静态插桩:tracepoint和USDT 9

1.8 初识bpftrace:跟踪open() 10

1.9 再回到BCC:跟踪open() 13

1.10 小结 15

第2章 技术背景16

2.1 图释BPF 16

2.2 BPF 17

2.3 扩展版BPF 18

2.4 调用栈回溯 41

2.5 火焰图 44

2.6 事件源 48

2.7 kprobes 49

2.8 uprobes 53

2.9 跟踪点 57

2.10 USDT 62

2.11 动态USDT 66

2.12 性能监控计数器 68

2.13 perf_events 69

2.14 小结 70

第3章 性能分析71

3.1 概览 71

3.2 性能分析方法论 73

3.3 Linux 60秒分析 77

3.4 BCC工具检查清单 84

3.5 小结 90

第4章 BCC91

4.1 BCC的组件 92

4.2 BCC的特性 92

4.3 安装BCC 94

4.4 BCC的工具 96

4.5 funccount 100

4.6 stackcount 105

4.7 trace 110

4.8 argdist 117

4.9 工具文档 121

4.10 开发BCC工具 126

4.11 BCC的内部实现 127

4.12 BCC的调试 128

4.13 小结 136

第5章 bpftrace137

5.1 bpftrace的组件 138

5.2 bpftrace的特性 139

5.3 bpftrace的安装 141

5.4 bpftrace工具 143

5.5 bpftrace单行程序 145

5.6 bpftrace的文档 146

5.7 bpftrace编程 146

5.8 bpftrace的帮助信息 155

5.9 bpftrace的探针类型 157

5.10 bpftrace的控制流 163

5.11 bpftrace的运算符 164

5.12 bpftrace的变量 165

5.13 bpftrace的函数 170

5.14 bpftrace映射表的操作函数 177

5.15 bpftrace的下一步工作 183

5.16 bpftrace的内部运作 185

5.17 bpftrace的调试 186

5.18 小结 190

第6章 CPU.191

6.1 背景知识 192

6.2 传统工具 197

6.3 BPF工具 210

6.4 BPF单行程序 251

6.5 可选练习 253

6.6 小结 254

第7章 内存.255

7.1 背景知识 256

7.2 传统工具 263

7.3 BPF工具 269

7.4 BPF单行程序 288

7.5 可选练习 289

7.6 小结 290

第8章 文件系统291

8.1 背景知识 292

8.2 传统工具 296

8.3 BPF工具 302

8.4 BPF单行程序 353

8.5 可选练习 359

8.6 小结 360

第9章 磁盘I/O361

9.1 背景知识 362

9.2 传统工具 367

9.3 BPF工具 372

9.4 BPF单行程序 406

9.5 可选练习 409

9.6 小结 410

第10章 网络411

10.1 背景知识 412

10.2 传统工具 422

10.3 BPF工具 433

10.4 BPF单行程序 507

10.5 可选练习 513

10.6 小结 515

第11章 安全516

11.1 背景知识 516

11.2 BPF工具 523

11.3 BPF单行程序 542

11.4 小结 544

第12章 编程语言.545

12.1 背景知识 545

12.2 C 551

12.3 Java 560

12.4 bash shell 601

12.5 其他语言 614

12.6 小结 619

第13章 应用程序.620

13.1 背景知识 621

13.2 BPF工具 625

13.3 BPF单行程序 662

13.4 BPF单行程序示范 664

13.5 小结 664

第14章 内核665

14.1 背景知识 666

14.2 分析策略 669

14.3 传统工具 670

14.4 BPF工具 675

14.5 BPF单行程序 697

14.6 BPF单行程序示范 699

14.7 挑战 700

14.8 小结 700

第15章 容器701

15.1 背景知识 701

15.1.1 BPF 的分析能力 703

15.1.2 挑战 703

15.1.3 分析策略 706

15.2 传统工具 706

15.2.1 从主机上分析 706

15.2.2 在容器内分析 707

15.2.3 systemd-cgtop 707

15.2.4 kubectl top 708

15.2.5 docker stats 708

15.2.6 /sys/fs/cgroups 709

15.2.7 perf 709

15.3 BPF工具 710

15.4 BPF单行程序 717

15.5 可选练习 717

15.6 小结 718

第16章 虚拟机管理器719

16.1 背景知识 719

16.2 传统工具 722

16.3 访客系统的BPF工具 723

16.4 宿主机BPF工具 732

16.5 小结 737

第17章 其他BPF性能工具738

17.1 Vector和Performance Co-Pilot(PCP) 738

17.2 Grafana和Performance Co-Pilot 747

17.3 Cloudflare eBPF Prometheus Exporter(配合Grafana) 750

17.4 kubectl-trace 752

17.5 其他工具 755

17.6 小结 755

第18章 建议、技巧和常见问题. 756

18.1 典型事件的频率和额外开销 756

18.2 以49Hz或99Hz为采样频率 760

18.3 黄猪和灰鼠 760

18.4 开发目标软件 762

18.5 学习系统调用 763

18.6 保持简单 764

18.7 事件缺失 764

18.8 调用栈缺失 766

18.9 打印时符号缺失(函数名称) 767

18.10 跟踪时函数缺失 768

18.11 反馈回路 769

18.12 被丢掉的事件 769

附录A bpftrace单行程序770

附录B bpftrace备忘单775

附录C BCC工具的开发778

附录D C.BPF. 793

附录E BPF指令812

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "Linux Observability with BPF" 是一本关于使用BPF(Berkeley Packet Filter)来增强Linux可观测性的PDF书籍。BPF是一种能够在内核空间运行的虚拟机,它可以通过动态编程来对内核进行扩展和控制。这本书通过BPF来提供了一种全新的方法来监控和调试Linux系统。 这本书首先介绍了BPF的原理和基本概念,包括如何编写BPF程序和如何将其加载到内核中。然后,它详细介绍了各种用于增强Linux可观测性的BPF工具和技术,如BCC(BPF Compiler Collection)、BPF_trace、BPF_perf_event和BPF_ringbuf等。 通过使用这些工具和技术,读者可以了解和追踪系统的各种事件和性能指标,如系统调用、网络流量、硬件事件、存储和文件系统等。这些工具还可以用于实时监控和调试,以及进行深度分析和故障排查。 此外,这本书还介绍了如何使用BPF来实现安全监控和防御措施,并介绍了一些用于性能优化和资源管理的技术。它还包含了一些实际案例和场景,以帮助读者更好地理解和应用BPF和相关工具。 总的来说,"Linux Observability with BPF" 是一本深入介绍和探索如何使用BPF来增强Linux可观测性的实用指南。它为读者提供了丰富的工具和技术,帮助他们更好地理解和优化Linux系统性能、安全性和可靠性。 ### 回答2: "Linux Observability with BPF"是一本关于使用BPF(Berkely Packet Filter)在Linux上进行可观察性工作的PDF书籍。BPF是一个强大的工具,可以在内核空间进行数据收集、分析和操作,以提供更好的系统可观察性和性能调优。 这本书以非常详细的方式介绍了BPF的概念、原理和使用方法。它涵盖了BPFLinux系统中的各个方面,包括BPF程序的编写、加载和追踪,以及如何使用BPF来监控系统的各个组件,如网络、文件系统性能指标等。 通过阅读这本书,读者可以学到如何使用BPF来解决实际的系统问题。例如,可以使用BPF来监控网络流量,检测和过滤恶意流量,或者分析系统性能瓶颈并进行优化。 此外,这本书还介绍了各种BPF工具和框架,如BCC(BPF Compiler Collection)和bpftool,以及如何使用这些工具来简化BPF的开发和调试过程。 总的来说,"Linux Observability with BPF"是一本对于想要深入了解和使用BPF来提升Linux系统可观察性和性能的读者非常有价值的书籍。它提供了详细而全面的指导,使读者能够充分发挥BPF的潜力,并应用于实际的系统管理和优化中。无论是初学者还是有经验的系统管理员,都可以从中获得很多实用的知识和技巧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值