1)多位领域大佬联袂推荐,对内容和作者予以充分肯定,强烈推荐阅读本书。2)龙蜥社区操作系统及eBPF专家联合撰写,长期一线经验总结,让你少走弯路。3)一次性学透eBPF原理与Linux可观测性,让性能与安全问题无所遁形。4)系统介绍eBPF的技术生态、底层原理以及五大主流发框架,并深度剖析应用、网络、内存、I/O、调度、安全六大关键Linux可观测性实践,带你解决实践难题。
售 价:¥
纸质售价:¥74.20购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
前折页
书名页
前言
第1章 eBPF的发展与应用
1.1 eBPF概述
1.1.1 Linux的跟踪与诊断技术简介
1.1.2 eBPF的发展史
1.1.3 eBPF与cBPF的功能区别
1.1.4 eBPF与内核模块
1.1.5 eBPF的优势与劣势
1.2 eBPF应用场景
1.2.1 eBPF跟踪与性能分析
1.2.2 eBPF与可观测
1.2.3 eBPF与网络
1.2.4 eBPF与安全
1.3 eBPF基础架构
1.3.1 eBPF加载流程和相关组件
1.3.2 eBPF的JIT编译原理
1.3.3 eBPF的挂载与执行
1.4 本章小结
第2章 eBPF的特性解析
2.1 eBPF指令架构
2.1.1 cBPF指令集
2.1.2 eBPF指令集
2.1.3 使用C语言编写eBPF程序
2.1.4 使用汇编语言编写eBPF程序
2.1.5 使用字节码编写eBPF程序
2.2 eBPF系统调用
2.2.1 eBPF系统调用的函数原型
2.2.2 eBPF系统调用的类型
2.2.3 eBPF系统调用的数据结构解析
2.3 eBPF辅助函数
2.3.1 eBPF辅助函数的设计
2.3.2 eBPF辅助函数的实现
2.4 eBPF程序类型设计
2.4.1 eBPF程序类型
2.4.2 验证器接口设计
2.4.3 测试接口设计
2.4.4 卸载接口设计
2.5 跟踪诊断类eBPF程序
2.5.1 kprobe/kretprobe类程序
2.5.2 uprobe/uretprobe类程序
2.5.3 tracepoint类程序
2.5.4 perf事件类程序
2.6 网络处理类:XDP程序
2.6.1 XDP基本原理
2.6.2 XDP应用场景
2.6.3 XDP内核解析
2.7 本章小结
第3章 eBPF开发框架
3.1 libbpf
3.1.1 使用libbpf开发eBPF程序
3.1.2 BPF类型格式
3.1.3 CO-RE功能
3.2 BCC
3.2.1 环境配置
3.2.2 使用BCC开发eBPF程序
3.2.3 编译运行
3.3 bpftrace
3.3.1 环境配置
3.3.2 使用bpftrace开发eBPF程序
3.3.3 编译运行
3.4 eunomia-bpf
3.4.1 环境配置
3.4.2 使用eunomia-bpf开发eBPF程序
3.4.3 编译运行
3.5 Coolbpf
3.5.1 环境配置
3.5.2 使用Coolbpf开发eBPF程序
3.5.3 编译运行
3.6 eBPF开发框架对比
3.7 本章小结
第4章 基于eBPF的应用可观测实践
4.1 使用uprobe/USDT观测应用程序
4.1.1 uprobe:用户空间的动态追踪工具
4.1.2 USDT:用户空间的静态追踪点技术
4.2 Nginx函数延迟观测与性能分析
4.2.1 基于eBPF分析函数延迟
4.2.2 Nginx中与性能相关的关键函数
4.2.3 测试Nginx的函数延迟
4.3 Java应用的GC观测
4.3.1 GC策略简介与问题排查示例
4.3.2 通过eBPF实现GC观测
4.4 MySQL慢查询监测与排障实践
4.4.1 慢查询的常见原因
4.4.2 慢查询监测方法与示例场景
4.4.3 利用bpftrace程序追踪MySQL查询
4.5 观测SSL/TLS明文数据
4.5.1 TLS的工作原理
4.5.2 OpenSSL API工作机制分析
4.5.3 sslsniff的eBPF内核代码编写
4.5.4 sslsniff的用户态代码分析
4.5.5 编译与运行sslsniff工具
4.6 使用eBPF跟踪Go协程状态
4.6.1 跟踪Go协程状态的eBPF内核代码
4.6.2 运行eBPF程序追踪Go协程状态
4.7 本章小结
第5章 基于eBPF的网络可观测实践
5.1 内核网络协议栈
5.1.1 网络发包流程
5.1.2 网络收包流程
5.1.3 内核网络抖动问题分析
5.2 网络可观测实践
5.2.1 HTTP流量统计
5.2.2 TCP连接信息和往返时间分析
5.2.3 XDP实现可编程包处理
5.2.4 基于eBPF的流量控制实践
5.2.5 基于sockmap进行数据转发
5.2.6 基于sockops监测服务响应延迟
5.2.7 Virtio网卡队列可观测
5.3 本章小结
第6章 基于eBPF的内存可观测实践
6.1 系统内存的申请流程
6.2 内存性能瓶颈点与解决思路
6.2.1 常见的内存性能瓶颈
6.2.2 内存性能瓶颈诊断方法
6.3 实战:页面错误监控
6.3.1 什么是页面错误
6.3.2 有关页面错误的跟踪点
6.3.3 页面错误事件可观测实现方案
6.4 实战:使用cachetop分析文件缓存
6.4.1 使用常规方法分析文件缓存
6.4.2 cachetop实现原理
6.4.3 cachetop内核部分代码实现
6.4.4 cachetop用户部分代码实现
6.4.5 运行结果
6.5 实战:使用memleak跟踪内存泄漏
6.5.1 调试内存泄漏的挑战
6.5.2 memleak的实现原理
6.5.3 memleak内核部分代码实现
6.5.4 用户态程序实现
6.5.5 运行结果
6.6 本章小结
第7章 基于eBPF的I/O可观测实践
7.1 I/O子系统性能瓶颈点
7.2 I/O衡量指标
7.3 使用eBPF进行I/O流量分析
7.3.1 iofsstat的功能
7.3.2 iofsstat的实现
7.4 实战:使用eBPF分析I/O延迟
7.4.1 iolatency延迟分析功能介绍
7.4.2 iolatency延迟分析功能实现
7.4.3 其他I/O延迟分析工具介绍
7.5 实战:使用eBPF分析I/O卡顿问题
7.5.1 如何检测I/O hang
7.5.2 实现方案
7.6 统计随机/顺序磁盘的I/O请求
7.6.1 biopattern工具介绍
7.6.2 biopattern的实现原理
7.7 本章小结
第8章 基于eBPF的调度可观测实践
8.1 Linux调度子系统与eBPF的关系
8.1.1 eBPF在调度性能优化中的应用
8.1.2 调度子系统的hook点
8.2 实战:关中断检测
8.2.1 常用方案
8.2.2 方案分析
8.2.3 方案描述
8.2.4 技术实现
8.2.5 运行流程
8.2.6 工具使用
8.3 实战:统计调度延迟分布
8.3.1 调度延迟的产生
8.3.2 编译运行
8.4 实战:捕获硬中断和软中断事件
8.4.1 实现原理
8.4.2 代码实现
8.5 实战:持续性能追踪
8.5.1 性能追踪示例
8.5.2 详细实现过程
8.5.3 社区中的持续性能追踪项目
8.6 本章小结
第9章 基于eBPF的安全可观测实践
9.1 监控进程的文件访问行为
9.1.1 监控文件访问行为的实现
9.1.2 运行eBPF监控文件访问程序示例
9.2 监控进程信号发送行为
9.3 监控进程退出事件
9.4 使用eBPF进行命令审计
9.5 隐藏进程和文件信息
9.5.1 信息隐藏技术的应用场景
9.5.2 隐藏信息的内核态eBPF程序实现
9.5.3 隐藏信息的用户态程序实现
9.5.4 运行隐藏信息的eBPF程序示例
9.6 发送信号终止恶意进程
9.6.1 异常响应相关的安全场景
9.6.2 终止恶意进程的eBPF程序实现
9.7 基于LSM的安全检测防御
9.7.1 确认LSM模块是否可用
9.7.2 安全检测防御机制实现
9.8 本章小结
推荐阅读
后折页
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜