搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
深入理解eBPF与可观测性/Linux\Unix技术丛书
0.00     定价 ¥ 99.00
图书来源: 浙江图书馆(由浙江新华配书)
此书还可采购15本,持证读者免费借回家
  • 配送范围:
    浙江省内
  • ISBN:
    9787111774808
  • 作      者:
    作者:毛文安//郑昱笙//程书意//廖肇燕|责编:高婧雅
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2025-03-01
收藏
畅销推荐
内容介绍
本书由龙蜥社区操作系统及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进行安全防御、监控进程的各种行为等。
展开
目录
前言
第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.
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证