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

BPF之巅:洞悉Linux系统和应用性能
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
2020-11
版次: 1
ISBN: 9787121399725
定价: 199.00
装帧: 其他
开本: 16开
纸张: 胶版纸
页数: 856页
字数: 1139千字
74人买过
  • 基于BPF的性能优化工具提供了前所未有的系统级和应用程序级的观察能力,使用这些工具可以优化性能、调试代码、增强安全性、降低成本。本书是使用这些观察工具的全面指南。本书作为全面介绍 BPF 技术的图书,从 BPF 技术的起源到未来发展方向都有涵盖,不仅全面介绍了 BPF 的编程模型,还完整介绍了两个主要的 BPF 前端编程框架 — BCC 和 bpftrace,更给出了一系列实现范例,全面展示了 BPF技术的实际能力和未来发展前景,以及使用BPF工具优化性能、修复问题、探索线上系统的内部情况。
      本书的另一个关注方向是 Linux 系统性能和应用程序性能的调优。本书全面介绍了系统性能调优的策略、工具与实践案例,不仅介绍了对应的 BPF 工具,还着重介绍了这些工具如何与 Linux 传统性能工具进行互补,这样读者可以有选择地进行使用。
      本书介绍的工具小巧精致,且包含了简单易读的源代码,这就是 BPF 技术的魅力所在 :安全、高效、快捷的系统扩展力。未来 BPF 技术在 Linux 中的应用场景会越来越多,越来越重要。希望本书能在大家学习这项技术并关注它的发展时提供一定的便利。本书是系统管理员、应用程序开发者、运维人员,以及其他IT从业者在企业内部或云上使用各种Linux发行版时都可参考的资料。 Brendan Gregg(布兰登 · 格雷格),Netflix 高级性能工程师。Brendan Gregg 是 BPF(eBPF)的主要贡献者,他帮助开发和维护了两个主要的 BPF 前端框架,开创了 BPF 用于可观测性的先河,并创建了数十种基于 BPF 的性能分析工具。他编著的畅销书有《性能之巅:洞悉系统、企业与云计算》。

    译者介绍

    孙宇聪:现任 Facebook 运维工程师经理,曾在谷歌工作多年,任谷歌高级SRE(Senior Site Reliblity Engineer),Coding.net 前技术负责人,译有《SRE:Google运维解密》《架构整洁之道》等经典畅销技术图书。

    吕宏利,资深SRE,现任职于谷歌基础架构部。之前曾负责谷歌搜索广告和内容广告系统运维工作,有多年分布式系统研发与运维经验。对运维工具平台建设、监控、应用性能跟踪及分析、数据化运维等方面有深入的研究。

    刘晓舟,毕业于北京大学计算机系,现供职于字节跳动公司系统部,任系统架构师。他在字节跳动主持构建了基于 eBPF 的大规模性能分析和网络监控诊断平台,闲暇时间也在相关开源社区提交代码。在加入字节跳动之前,他有 10 年国家部委电子政务和大数据研究经历。 第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

     
  • 内容简介:
    基于BPF的性能优化工具提供了前所未有的系统级和应用程序级的观察能力,使用这些工具可以优化性能、调试代码、增强安全性、降低成本。本书是使用这些观察工具的全面指南。本书作为全面介绍 BPF 技术的图书,从 BPF 技术的起源到未来发展方向都有涵盖,不仅全面介绍了 BPF 的编程模型,还完整介绍了两个主要的 BPF 前端编程框架 — BCC 和 bpftrace,更给出了一系列实现范例,全面展示了 BPF技术的实际能力和未来发展前景,以及使用BPF工具优化性能、修复问题、探索线上系统的内部情况。
      本书的另一个关注方向是 Linux 系统性能和应用程序性能的调优。本书全面介绍了系统性能调优的策略、工具与实践案例,不仅介绍了对应的 BPF 工具,还着重介绍了这些工具如何与 Linux 传统性能工具进行互补,这样读者可以有选择地进行使用。
      本书介绍的工具小巧精致,且包含了简单易读的源代码,这就是 BPF 技术的魅力所在 :安全、高效、快捷的系统扩展力。未来 BPF 技术在 Linux 中的应用场景会越来越多,越来越重要。希望本书能在大家学习这项技术并关注它的发展时提供一定的便利。本书是系统管理员、应用程序开发者、运维人员,以及其他IT从业者在企业内部或云上使用各种Linux发行版时都可参考的资料。
  • 作者简介:
    Brendan Gregg(布兰登 · 格雷格),Netflix 高级性能工程师。Brendan Gregg 是 BPF(eBPF)的主要贡献者,他帮助开发和维护了两个主要的 BPF 前端框架,开创了 BPF 用于可观测性的先河,并创建了数十种基于 BPF 的性能分析工具。他编著的畅销书有《性能之巅:洞悉系统、企业与云计算》。

    译者介绍

    孙宇聪:现任 Facebook 运维工程师经理,曾在谷歌工作多年,任谷歌高级SRE(Senior Site Reliblity Engineer),Coding.net 前技术负责人,译有《SRE:Google运维解密》《架构整洁之道》等经典畅销技术图书。

    吕宏利,资深SRE,现任职于谷歌基础架构部。之前曾负责谷歌搜索广告和内容广告系统运维工作,有多年分布式系统研发与运维经验。对运维工具平台建设、监控、应用性能跟踪及分析、数据化运维等方面有深入的研究。

    刘晓舟,毕业于北京大学计算机系,现供职于字节跳动公司系统部,任系统架构师。他在字节跳动主持构建了基于 eBPF 的大规模性能分析和网络监控诊断平台,闲暇时间也在相关开源社区提交代码。在加入字节跳动之前,他有 10 年国家部委电子政务和大数据研究经历。
  • 目录:
    第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

     
查看详情
相关图书 / 更多
BPF之巅:洞悉Linux系统和应用性能
BPMN2.0――业务流程建模标准导论(第二版)
阿尔魏尔 著;[德]Thomas、Allweyer(托马斯、中国航空工业集团公司第六一三研究所 译
BPF之巅:洞悉Linux系统和应用性能
BP机修理大全
祝修俊 编
BPF之巅:洞悉Linux系统和应用性能
BP Portrait Award 2013
Joanna、Sandy Nairne 著
BPF之巅:洞悉Linux系统和应用性能
BPEL Cookbook:Best Practices for SOA-based integration and composite applications development
Jeremy Bolie;Michael Cardella;Stany Blanvalet;Matjaz Juric;Sean Carey;Praveen Chandran;Yves Coene;Kevin Geminiuc
BPF之巅:洞悉Linux系统和应用性能
BPO基础理论与案例分析/21世纪高职高专规划教材·服务外包系列
严世清、李勇 编
BPF之巅:洞悉Linux系统和应用性能
BP Performance Management 3e
Axson, David A. J
BPF之巅:洞悉Linux系统和应用性能
BP神经网络视角下的高科技企业人才流失预警机制研究/转型时代的中国财经战略论丛
徐茜 著
BPF之巅:洞悉Linux系统和应用性能
BPO管理/21世纪高职高专经管类专业立体化规划教材
戴军 著
BPF之巅:洞悉Linux系统和应用性能
BPO基础案例教程
陈春干 主编
BPF之巅:洞悉Linux系统和应用性能
BPF Performance Tools(英文版):洞悉Linux系统和应用性能
[美]Brendan Gregg(布伦丹·格雷格
您可能感兴趣 / 更多
BPF之巅:洞悉Linux系统和应用性能
归属感:如何通过社群获得商业竞争优势
[美]大卫·斯平克斯(David Spinks) 著;颉腾文化 出品
BPF之巅:洞悉Linux系统和应用性能
《世界上最大的肚子》2024百班千人暑期书目学前中班名师推荐全新正版现货速发
[美]雷米·查利普(美)柏顿·萨普瑞
BPF之巅:洞悉Linux系统和应用性能
《不完美的你》2024百班千人暑期书目小学生6年级名师推荐全新正版现货速发
[美]M.埃文·沃肯斯坦 著;蔡春露 李钦 译
BPF之巅:洞悉Linux系统和应用性能
经济学通义
[美]阿门·A.阿尔钦 (美)威廉·R.艾伦 著;[美]杰里·L.乔丹 编
BPF之巅:洞悉Linux系统和应用性能
数字化领导力 数字化转型锦囊,领导力精进指南 一本书掌握数字化转型领导力之道
[美]艾萨克·萨科里克 著;王磊 译;颉腾文化 出品;邓斌
BPF之巅:洞悉Linux系统和应用性能
法哲学基本原理
[美]马克·C.墨菲
BPF之巅:洞悉Linux系统和应用性能
雪花的故事(用照片展示雪花的秘密,为你揭开冬日奇景的奥秘)
[美]马克·卡西诺[美]乔恩·尼尔森
BPF之巅:洞悉Linux系统和应用性能
杜甫传
[美]弗洛伦斯.艾思柯
BPF之巅:洞悉Linux系统和应用性能
美利坚在燃烧:20世纪60年代以来的警察暴力与黑人反抗
[美]伊丽莎白·欣顿 著 胡位钧 译
BPF之巅:洞悉Linux系统和应用性能
温柔亲启
[美]艾米莉·狄金森 著;[美]艾伦·路易斯·哈特、[美]玛莎·内尔·史密斯 编
BPF之巅:洞悉Linux系统和应用性能
儒教中国及其现代命运(三部曲)
[美]列文森 作者;[中]季剑青 译者
BPF之巅:洞悉Linux系统和应用性能
逃家小兔成长绘本系列
[美]玛格丽特.怀兹.布朗