书籍详情
《官方BPF之巅:洞悉Linux系统和应用性能布兰登.格雷格自学前端编程框架Li》[33M]百度网盘|亲测有效|pdf下载
  • 官方BPF之巅:洞悉Linux系统和应用性能布兰登.格雷格自学前端编程框架Li

  • 出版社:电子工业出版社官方旗舰店
  • 热度:11876
  • 上架时间:2024-06-30 09:38:03
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍


内容介绍

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

作者介绍

Netflix 高级性能工程师 Brendan Gregg 是 BPF(eBPF)的主要贡献者,他帮助开发和维护了两个主要的 BPF 前端框架,开创了 BPF 用于可观测性的先河,并创建了数十种基于 BPF 的性能分析工具。他编著的畅销书有《性能之巅:洞悉系统、企业与云计算》。
译者介绍孙宇聪:现任 Facebook 运维工程师经理,曾在谷歌工作多年,任谷歌高级SRE(Senior Site Reliblity Engineer),Coding.net 前技术负责人,译有《SRE:Google运维解密》《架构整洁之道》等经典畅销技术图书。吕宏利,资深SRE,现任职于谷歌基础架构部。之前曾负责谷歌搜索广告和内容广告系统运维工作,有多年分布式系统研发与运维经验。对运维工具平台建设、监控、应用性能跟踪及分析、数据化运维等方面有深入的研究。刘晓舟,毕业于北京大学计算机系,现供职于字节跳动公司系统部,任系统架构师。他在字节跳动主持构建了基于 eBPF 的大规模性能分析和网络监控诊断平台,闲暇时间也在相关开源社区提交代码。在加入字节跳动之前,他有 10 年国家部委电子政务和大数据研究经历。

关联推荐

BPF性能工具将是所有管理员、开发人员、支持人员和其他IT专业人员不可或缺的资源,他们可以在任何企业或云环境中使用任何*新的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.3.1 为什么性能工具需要 BPF 技术 ......................................................... 21
2.3.2 BPF 与内核模块的对比 ......................................................................23
2.3.3 编写 BPF 程序 .....................................................................................23
2.3.4 使用 BPF 查看指令集 :bpftool ..........................................................24
2.3.5 使用 bpftrace 查看 BPF 指令集 .......................................................... 32
2.3.6 BPF API ................................................................................................ 33
2.3.7 BPF 并发控制 ......................................................................................37
2.3.8 BPF sysfs 接口 ..................................................................................... 38
2.3.9 BPF 类型格式 ......................................................................................38
2.3.10 BPF CO-RE ........................................................................................ 39
2.3.11 BPF 的局限性 ..................................................................................... 40
2.3.12 BPF 扩展阅读资料 ............................................................................40
2.4 调用栈回溯 ........................................................................................................ 41
2.4.1 基于帧指针的调用栈回溯 ................................................................... 41
2.4.2 调试信息 ............................................................................................... 42
2.4.3 *后分支记录 ....................................................................................... 43
2.4.4 ORC ...................................................................................................... 43
2.4.5 符号 ....................................................................................................... 43
2.4.6 扩展阅读 ............................................................................................... 43
2.5 火焰图 ................................................................................................................ 44
2.5.1 调用栈信息 ........................................................................................... 44
2.5.2 对调用栈信息的剖析 ........................................................................... 44
2.5.3 火焰图 ................................................................................................... 45
2.5.4 火焰图的特性 ....................................................................................... 47
2.5.5 火焰图的变体 ....................................................................................... 48
2.6 事件源 ................................................................................................................ 48
2.7 kprobes ............................................................................................................... 49
2.7.1 kprobes 是如何工作的 ......................................................................... 49
2.7.2 kprobes 接口 ......................................................................................... 51
2.7.3 BPF 和 kprobes .....................................................................................51
2.7.4 关于 kprobes 的更多内容 .................................................................... 53
2.8 uprobes ............................................................................................................... 53
2.8.1 uprobes 是如何工作的 ......................................................................... 53
2.8.2 uprobes 接口 ......................................................................................... 55
2.8.3 BPF 与 uprobes .....................................................................................55
2.8.4 uprobes 的开销和未来的工作 ............................................................. 56
2.8.5 扩展阅读 ............................................................................................... 57
2.9 跟踪点 ................................................................................................................ 57
2.9.1 如何添加跟踪点 ................................................................................... 58
2.9.2 跟踪点的工作原理 ............................................................................... 59
2.9.3 跟踪点的接口 ....................................................................................... 60
2.9.4 跟踪点和 BPF ...................................................................................... 61
2.9.5 BPF 原始跟踪点 ..................................................................................62
2.9.6 扩展阅读 ............................................................................................... 62
2.10 USDT ............................................................................................................... 62
2.10.1 添加 USDT 探针 ................................................................................ 63
2.10.2 USDT 是如何工作的 ......................................................................... 65
2.10.3 BPF 与 USDT ..................................................................................... 66
2.10.4 USDT 的更多信息 ............................................................................. 66
2.11 动态USDT ........................................................................................................ 66
2.12 性能监控计数器 .............................................................................................. 68
2.12.1 PMC 的模式 .......................................................................................68
2.12.2 PEBS ................................................................................................... 69
2.12.3 云计算 ................................................................................................. 69
2.13 perf_events ....................................................................................................... 69
2.14 小结 .................................................................................................................. 70
第3章 性能分析...........................................................................................................71
3.1 概览 .................................................................................................................... 71
3.1.1 目标 ....................................................................................................... 71
3.1.2 分析工作 ............................................................................................... 72
3.1.3 多重性能问题 ....................................................................................... 73
3.2 性能分析方法论 ................................................................................................ 73
3.2.1 业务负载画像 ....................................................................................... 74
3.2.2 下钻分析 ............................................................................................... 75
3.2.3 USE 方法论 .......................................................................................... 76
3.2.4 检查清单法 ........................................................................................... 77
3.3 Linux 60秒分析 ................................................................................................. 77
3.3.1 uptime ................................................................................................... 77
3.3.2 dmesg | tail ............................................................................................ 78
3.3.3 vmstat 1 ................................................................................................. 78
3.3.4 mpstat -P ALL 1 ....................................................................................79
3.3.5 pidstat 1 ................................................................................................. 80
3.3.6 iostat -xz 1 ............................................................................................. 80
3.3.7 free -m ................................................................................................... 82
3.3.8 sar -n DEV 1 .........................................................................................82
3.3.9 sar -n TCP,ETCP 1 ................................................................................ 83
3.3.10 top ....................................................................................................... 83
3.4 BCC工具检查清单 ............................................................................................ 84
3.4.1 execsnoop .............................................................................................. 84
3.4.2 opensnoop ............................................................................................. 85
3.4.3 ext4slower ............................................................................................. 85
3.4.4 biolatency .............................................................................................. 86
3.4.5 biosnoop ................................................................................................ 86
3.4.6 cachestat ................................................................................................ 87
3.4.7 tcpconnect .............................................................................................87
3.4.8 tcpaccept ............................................................................................... 87
3.4.9 tcpretrans ............................................................................................... 88
3.4.10 runqlat ................................................................................................. 88
3.4.11 profile .................................................................................................. 89
3.5 小结 .................................................................................................................... 90
第4章 BCC..................................................................................................................91
4.1 BCC的组件 ........................................................................................................ 92
4.2 BCC的特性 ........................................................................................................ 92
4.2.1 BCC 的内核态特性 .............................................................................. 92
4.2.2 BCC 的用户态特性 .............................................................................. 93
4.3 安装BCC ............................................................................................................ 94
4.3.1 内核要求 ............................................................................................... 94
4.3.2 Ubuntu ................................................................................................... 94
4.3.3 RHEL .................................................................................................... 95
4.3.4 其他发行版 ........................................................................................... 95
4.4 BCC的工具 ........................................................................................................ 96
4.4.1 重点工具 ............................................................................................... 96
4.4.2 工具的特点 ........................................................................................... 97
4.4.3 单一用途工具 ....................................................................................... 98
4.4.4 多用途工具 ........................................................................................... 99
4.5 funccount .......................................................................................................... 100
4.5.1 funccount 的示例 ................................................................................ 101
4.5.2 funccount 的语法 ................................................................................ 103
4.5.3 funccount 的单行程序 ............

联系我们:ebook666@outlook.com