万本电子书0元读

万本电子书0元读

顶部广告

深入理解eBPF与可观测性电子书

1)多位领域大佬联袂推荐,对内容和作者予以充分肯定,强烈推荐阅读本书。2)龙蜥社区操作系统及eBPF专家联合撰写,长期一线经验总结,让你少走弯路。3)一次性学透eBPF原理与Linux可观测性,让性能与安全问题无所遁形。4)系统介绍eBPF的技术生态、底层原理以及五大主流发框架,并深度剖析应用、网络、内存、I/O、调度、安全六大关键Linux可观测性实践,带你解决实践难题。

售       价:¥

纸质售价:¥74.20购买纸书

3人正在读 | 0人评论 6.5

作       者:毛文安,郑昱笙,程书意,廖肇燕

出  版  社:机械工业出版社

出版时间:2025-03-05

字       数:19.0万

所属分类: 科技 > 计算机/网络 > 计算机理论与教程

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书由龙蜥社区操作系统及eBPF专家联合撰写,带领读者一次性学透eBPF原理与Linux可观测性,让性能与安全问题无所遁形,效果立竿见影。具体来说,本书系统介绍eBPF技术生态、特性、五大主流发框架,并深度剖析应用、网络、内存、I/O、调度、安全六大关键Linux可观测性实践。本书共9章,从逻辑上分为两部分。第一部分为eBPF基础(第1~3章):第1章概述eBPF技术的发展历程和应用场景;第2章深解析eBPF的指令集、辅助函数及程序类型设计原理;第3章介绍如何使用libbpf、BCC、eunomia-bpf、Coolbpf等工具发eBPF程序,尤其是BTF和CO-RE技术的应用。第二部分为eBPF可观测性实践(第4~9章),第4章探讨eBPF在用户态应用层面的可观测实践,如Java应用的GC观测;第5章讲解内核网络收发包流程及使用eBPF分析网络抖动的方法;第6章介绍内存性能瓶颈的优化方法,包括使用eBPF检测内存分配延迟和内存泄漏;第7章分析I/O子系统的原理和性能瓶颈,并介绍使用eBPF监测I/O延迟分布和I/O卡顿问题;第8章介绍eBPF在调度系统上的观测实践,包括长时间关中断和持续性能追踪等;第9章则聚焦于eBPF在系统安全上的实践,如使用LSM行安全防御、监控程的各种行为等。<br/>【推荐语】<br/>1)多位领域大佬联袂推荐,对内容和作者予以充分肯定,强烈推荐阅读本书。2)龙蜥社区操作系统及eBPF专家联合撰写,长期一线经验总结,让你少走弯路。3)一次性学透eBPF原理与Linux可观测性,让性能与安全问题无所遁形。4)系统介绍eBPF的技术生态、底层原理以及五大主流发框架,并深度剖析应用、网络、内存、I/O、调度、安全六大关键Linux可观测性实践,带你解决实践难题。<br/>【作者】<br/>毛文安:阿里云高级技术专家,龙蜥社区eBPF技术探索SIG(特别兴趣小组)及“酷玩BPF”公众号负责人,龙蜥社区“eBPF技术实践白皮书”主要作者,也是系统智能运维平台SysOM以及eBPF发功能库Coolbpf的架构师。具有十余年Linux操作系统发、维护及性能调优经验,目前专注内核网络、AI等新特性的研究与实践。 郑昱笙:源维护者、UCSC博士生、eunomia-bpf源社区共同创办人。主导发了bpftime(用户态eBPF运行时)等项目,拓展了eBPF在用户态的应用,目前积极探索eBPF在大模型(LLM)推理优化等领域的潜在应用。长期活跃于源社区,并多次担任KubeCon、Linux Plumber等知名会议的演讲者。 程书意:阿里云发工程师,龙蜥社区eBPF技术探索SIG核心成员,Coolbpf项目维护者,龙蜥社区“eBPF技术实践白皮书”作者之一。专注于内核网络优化与eBPF技术,擅长系统性能调优和故障排查,热衷技术分享与推广。 廖肇燕:阿里云技术专家、龙蜥社区“eBPF技术实践白皮书”作者之一。拥有十余年Linux发运维经验,专注于内核问题深度定位与eBPF技术创新性应用推广,擅长系统稳定性问题定位和性能优化。<br/>
目录展开

前折页

书名页

前言

第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 本章小结

推荐阅读

后折页

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部