舉報

會員
深入理解eBPF與可觀測性
最新章節(jié):
封底
本書系統(tǒng)介紹eBPF技術(shù)生態(tài)、特性、五大主流開發(fā)框架,并深度剖析應(yīng)用、網(wǎng)絡(luò)、內(nèi)存、I/O、調(diào)度、安全六大關(guān)鍵Linux可觀測性實踐。本書共9章,從邏輯上分為兩部分。第一部分為eBPF基礎(chǔ)(第1~3章):第1章概述eBPF技術(shù)的發(fā)展歷程和應(yīng)用場景;第2章深入解析eBPF的指令集、輔助函數(shù)及程序類型設(shè)計原理;第3章介紹如何使用libbpf、BCC、eunomia-bpf、Coolbpf等工具開發(fā)eBPF程序,尤其是BTF和CO-RE技術(shù)的應(yīng)用。第二部分為eBPF可觀測性實踐(第4~9章),第4章探討eBPF在用戶態(tài)應(yīng)用層面的可觀測實踐,如Java應(yīng)用的GC觀測;第5章講解內(nèi)核網(wǎng)絡(luò)收發(fā)包流程及使用eBPF分析網(wǎng)絡(luò)抖動的方法;第6章介紹內(nèi)存性能瓶頸的優(yōu)化方法,包括使用eBPF檢測內(nèi)存分配延遲和內(nèi)存泄漏;第7章分析I/O子系統(tǒng)的原理和性能瓶頸點,并介紹使用eBPF監(jiān)測I/O延遲分布和I/O卡頓問題;第8章介紹eBPF在調(diào)度系統(tǒng)上的觀測實踐,包括長時間關(guān)中斷和持續(xù)性能追蹤等;第9章則聚焦于eBPF在系統(tǒng)安全上的實踐,如使用LSM進行安全防御、監(jiān)控進程的各種行為等。
最新章節(jié)
書友吧品牌:機械工業(yè)出版社
上架時間:2025-06-09 17:06:08
出版社:機械工業(yè)出版社
本書數(shù)字版權(quán)由機械工業(yè)出版社提供,并由其授權(quán)上海閱文信息技術(shù)有限公司制作發(fā)行
- 封底 更新時間:2025-06-09 17:12:35
- 作者簡介
- 推薦閱讀
- 9.8 本章小結(jié)
- 9.7.2 安全檢測防御機制實現(xiàn)
- 9.7.1 確認LSM模塊是否可用
- 9.7 基于LSM的安全檢測防御
- 9.6.2 終止惡意進程的eBPF程序?qū)崿F(xiàn)
- 9.6.1 異常響應(yīng)相關(guān)的安全場景
- 9.6 發(fā)送信號終止惡意進程
- 9.5.4 運行隱藏信息的eBPF程序示例
- 9.5.3 隱藏信息的用戶態(tài)程序?qū)崿F(xiàn)
- 9.5.2 隱藏信息的內(nèi)核態(tài)eBPF程序?qū)崿F(xiàn)
- 9.5.1 信息隱藏技術(shù)的應(yīng)用場景
- 9.5 隱藏進程和文件信息
- 9.4 使用eBPF進行命令審計
- 9.3 監(jiān)控進程退出事件
- 9.2 監(jiān)控進程信號發(fā)送行為
- 9.1.2 運行eBPF監(jiān)控文件訪問程序示例
- 9.1.1 監(jiān)控文件訪問行為的實現(xiàn)
- 9.1 監(jiān)控進程的文件訪問行為
- 第9章 基于eBPF的安全可觀測實踐
- 8.6 本章小結(jié)
- 8.5.3 社區(qū)中的持續(xù)性能追蹤項目
- 8.5.2 詳細實現(xiàn)過程
- 8.5.1 性能追蹤示例
- 8.5 實戰(zhàn):持續(xù)性能追蹤
- 8.4.2 代碼實現(xiàn)
- 8.4.1 實現(xiàn)原理
- 8.4 實戰(zhàn):捕獲硬中斷和軟中斷事件
- 8.3.2 編譯運行
- 8.3.1 調(diào)度延遲的產(chǎn)生
- 8.3 實戰(zhàn):統(tǒng)計調(diào)度延遲分布
- 8.2.6 工具使用
- 8.2.5 運行流程
- 8.2.4 技術(shù)實現(xiàn)
- 8.2.3 方案描述
- 8.2.2 方案分析
- 8.2.1 常用方案
- 8.2 實戰(zhàn):關(guān)中斷檢測
- 8.1.2 調(diào)度子系統(tǒng)的hook點
- 8.1.1 eBPF在調(diào)度性能優(yōu)化中的應(yīng)用
- 8.1 Linux調(diào)度子系統(tǒng)與eBPF的關(guān)系
- 第8章 基于eBPF的調(diào)度可觀測實踐
- 7.7 本章小結(jié)
- 7.6.2 biopattern的實現(xiàn)原理
- 7.6.1 biopattern工具介紹
- 7.6 統(tǒng)計隨機/順序磁盤的I/O請求
- 7.5.2 實現(xiàn)方案
- 7.5.1 如何檢測I/O hang
- 7.5 實戰(zhàn):使用eBPF分析I/O卡頓問題
- 7.4.3 其他I/O延遲分析工具介紹
- 7.4.2 iolatency延遲分析功能實現(xiàn)
- 7.4.1 iolatency延遲分析功能介紹
- 7.4 實戰(zhàn):使用eBPF分析I/O延遲
- 7.3.2 iofsstat的實現(xiàn)
- 7.3.1 iofsstat的功能
- 7.3 使用eBPF進行I/O流量分析
- 7.2 I/O衡量指標
- 7.1 I/O子系統(tǒng)性能瓶頸點
- 第7章 基于eBPF的I/O可觀測實踐
- 6.6 本章小結(jié)
- 6.5.5 運行結(jié)果
- 6.5.4 用戶態(tài)程序?qū)崿F(xiàn)
- 6.5.3 memleak內(nèi)核部分代碼實現(xiàn)
- 6.5.2 memleak的實現(xiàn)原理
- 6.5.1 調(diào)試內(nèi)存泄漏的挑戰(zhàn)
- 6.5 實戰(zhàn):使用memleak跟蹤內(nèi)存泄漏
- 6.4.5 運行結(jié)果
- 6.4.4 cachetop用戶部分代碼實現(xiàn)
- 6.4.3 cachetop內(nèi)核部分代碼實現(xiàn)
- 6.4.2 cachetop實現(xiàn)原理
- 6.4.1 使用常規(guī)方法分析文件緩存
- 6.4 實戰(zhàn):使用cachetop分析文件緩存
- 6.3.3 頁面錯誤事件可觀測實現(xiàn)方案
- 6.3.2 有關(guān)頁面錯誤的跟蹤點
- 6.3.1 什么是頁面錯誤
- 6.3 實戰(zhàn):頁面錯誤監(jiān)控
- 6.2.2 內(nèi)存性能瓶頸診斷方法
- 6.2.1 常見的內(nèi)存性能瓶頸
- 6.2 內(nèi)存性能瓶頸點與解決思路
- 6.1 系統(tǒng)內(nèi)存的申請流程
- 第6章 基于eBPF的內(nèi)存可觀測實踐
- 5.3 本章小結(jié)
- 5.2.7 Virtio網(wǎng)卡隊列可觀測
- 5.2.6 基于sockops監(jiān)測服務(wù)響應(yīng)延遲
- 5.2.5 基于sockmap進行數(shù)據(jù)轉(zhuǎn)發(fā)
- 5.2.4 基于eBPF的流量控制實踐
- 5.2.3 XDP實現(xiàn)可編程包處理
- 5.2.2 TCP連接信息和往返時間分析
- 5.2.1 HTTP流量統(tǒng)計
- 5.2 網(wǎng)絡(luò)可觀測實踐
- 5.1.3 內(nèi)核網(wǎng)絡(luò)抖動問題分析
- 5.1.2 網(wǎng)絡(luò)收包流程
- 5.1.1 網(wǎng)絡(luò)發(fā)包流程
- 5.1 內(nèi)核網(wǎng)絡(luò)協(xié)議棧
- 第5章 基于eBPF的網(wǎng)絡(luò)可觀測實踐
- 4.7 本章小結(jié)
- 4.6.2 運行eBPF程序追蹤Go協(xié)程狀態(tài)
- 4.6.1 跟蹤Go協(xié)程狀態(tài)的eBPF內(nèi)核代碼
- 4.6 使用eBPF跟蹤Go協(xié)程狀態(tài)
- 4.5.5 編譯與運行sslsniff工具
- 4.5.4 sslsniff的用戶態(tài)代碼分析
- 4.5.3 sslsniff的eBPF內(nèi)核代碼編寫
- 4.5.2 OpenSSL API工作機制分析
- 4.5.1 TLS的工作原理
- 4.5 觀測SSL/TLS明文數(shù)據(jù)
- 4.4.3 利用bpftrace程序追蹤MySQL查詢
- 4.4.2 慢查詢監(jiān)測方法與示例場景
- 4.4.1 慢查詢的常見原因
- 4.4 MySQL慢查詢監(jiān)測與排障實踐
- 4.3.2 通過eBPF實現(xiàn)GC觀測
- 4.3.1 GC策略簡介與問題排查示例
- 4.3 Java應(yīng)用的GC觀測
- 4.2.3 測試Nginx的函數(shù)延遲
- 4.2.2 Nginx中與性能相關(guān)的關(guān)鍵函數(shù)
- 4.2.1 基于eBPF分析函數(shù)延遲
- 4.2 Nginx函數(shù)延遲觀測與性能分析
- 4.1.2 USDT:用戶空間的靜態(tài)追蹤點技術(shù)
- 4.1.1 uprobe:用戶空間的動態(tài)追蹤工具
- 4.1 使用uprobe/USDT觀測應(yīng)用程序
- 第4章 基于eBPF的應(yīng)用可觀測實踐
- 3.7 本章小結(jié)
- 3.6 eBPF開發(fā)框架對比
- 3.5.3 編譯運行
- 3.5.2 使用Coolbpf開發(fā)eBPF程序
- 3.5.1 環(huán)境配置
- 3.5 Coolbpf
- 3.4.3 編譯運行
- 3.4.2 使用eunomia-bpf開發(fā)eBPF程序
- 3.4.1 環(huán)境配置
- 3.4 eunomia-bpf
- 3.3.3 編譯運行
- 3.3.2 使用bpftrace開發(fā)eBPF程序
- 3.3.1 環(huán)境配置
- 3.3 bpftrace
- 3.2.3 編譯運行
- 3.2.2 使用BCC開發(fā)eBPF程序
- 3.2.1 環(huán)境配置
- 3.2 BCC
- 3.1.3 CO-RE功能
- 3.1.2 BPF類型格式
- 3.1.1 使用libbpf開發(fā)eBPF程序
- 3.1 libbpf
- 第3章 eBPF開發(fā)框架
- 2.7 本章小結(jié)
- 2.6.3 XDP內(nèi)核解析
- 2.6.2 XDP應(yīng)用場景
- 2.6.1 XDP基本原理
- 2.6 網(wǎng)絡(luò)處理類:XDP程序
- 2.5.4 perf事件類程序
- 2.5.3 tracepoint類程序
- 2.5.2 uprobe/uretprobe類程序
- 2.5.1 kprobe/kretprobe類程序
- 2.5 跟蹤診斷類eBPF程序
- 2.4.4 卸載接口設(shè)計
- 2.4.3 測試接口設(shè)計
- 2.4.2 驗證器接口設(shè)計
- 2.4.1 eBPF程序類型
- 2.4 eBPF程序類型設(shè)計
- 2.3.2 eBPF輔助函數(shù)的實現(xiàn)
- 2.3.1 eBPF輔助函數(shù)的設(shè)計
- 2.3 eBPF輔助函數(shù)
- 2.2.3 eBPF系統(tǒng)調(diào)用的數(shù)據(jù)結(jié)構(gòu)解析
- 2.2.2 eBPF系統(tǒng)調(diào)用的類型
- 2.2.1 eBPF系統(tǒng)調(diào)用的函數(shù)原型
- 2.2 eBPF系統(tǒng)調(diào)用
- 2.1.5 使用字節(jié)碼編寫eBPF程序
- 2.1.4 使用匯編語言編寫eBPF程序
- 2.1.3 使用C語言編寫eBPF程序
- 2.1.2 eBPF指令集
- 2.1.1 cBPF指令集
- 2.1 eBPF指令架構(gòu)
- 第2章 eBPF的特性解析
- 1.4 本章小結(jié)
- 1.3.3 eBPF的掛載與執(zhí)行
- 1.3.2 eBPF的JIT編譯原理
- 1.3.1 eBPF加載流程和相關(guān)組件
- 1.3 eBPF基礎(chǔ)架構(gòu)
- 1.2.4 eBPF與安全
- 1.2.3 eBPF與網(wǎng)絡(luò)
- 1.2.2 eBPF與可觀測
- 1.2.1 eBPF跟蹤與性能分析
- 1.2 eBPF應(yīng)用場景
- 1.1.5 eBPF的優(yōu)勢與劣勢
- 1.1.4 eBPF與內(nèi)核模塊
- 1.1.3 eBPF與cBPF的功能區(qū)別
- 1.1.2 eBPF的發(fā)展史
- 1.1.1 Linux的跟蹤與診斷技術(shù)簡介
- 1.1 eBPF概述
- 第1章 eBPF的發(fā)展與應(yīng)用
- 前言
- 內(nèi)容簡介
- 版權(quán)信息
- 封面
- 封面
- 版權(quán)信息
- 內(nèi)容簡介
- 前言
- 第1章 eBPF的發(fā)展與應(yīng)用
- 1.1 eBPF概述
- 1.1.1 Linux的跟蹤與診斷技術(shù)簡介
- 1.1.2 eBPF的發(fā)展史
- 1.1.3 eBPF與cBPF的功能區(qū)別
- 1.1.4 eBPF與內(nèi)核模塊
- 1.1.5 eBPF的優(yōu)勢與劣勢
- 1.2 eBPF應(yīng)用場景
- 1.2.1 eBPF跟蹤與性能分析
- 1.2.2 eBPF與可觀測
- 1.2.3 eBPF與網(wǎng)絡(luò)
- 1.2.4 eBPF與安全
- 1.3 eBPF基礎(chǔ)架構(gòu)
- 1.3.1 eBPF加載流程和相關(guān)組件
- 1.3.2 eBPF的JIT編譯原理
- 1.3.3 eBPF的掛載與執(zhí)行
- 1.4 本章小結(jié)
- 第2章 eBPF的特性解析
- 2.1 eBPF指令架構(gòu)
- 2.1.1 cBPF指令集
- 2.1.2 eBPF指令集
- 2.1.3 使用C語言編寫eBPF程序
- 2.1.4 使用匯編語言編寫eBPF程序
- 2.1.5 使用字節(jié)碼編寫eBPF程序
- 2.2 eBPF系統(tǒng)調(diào)用
- 2.2.1 eBPF系統(tǒng)調(diào)用的函數(shù)原型
- 2.2.2 eBPF系統(tǒng)調(diào)用的類型
- 2.2.3 eBPF系統(tǒng)調(diào)用的數(shù)據(jù)結(jié)構(gòu)解析
- 2.3 eBPF輔助函數(shù)
- 2.3.1 eBPF輔助函數(shù)的設(shè)計
- 2.3.2 eBPF輔助函數(shù)的實現(xiàn)
- 2.4 eBPF程序類型設(shè)計
- 2.4.1 eBPF程序類型
- 2.4.2 驗證器接口設(shè)計
- 2.4.3 測試接口設(shè)計
- 2.4.4 卸載接口設(shè)計
- 2.5 跟蹤診斷類eBPF程序
- 2.5.1 kprobe/kretprobe類程序
- 2.5.2 uprobe/uretprobe類程序
- 2.5.3 tracepoint類程序
- 2.5.4 perf事件類程序
- 2.6 網(wǎng)絡(luò)處理類:XDP程序
- 2.6.1 XDP基本原理
- 2.6.2 XDP應(yīng)用場景
- 2.6.3 XDP內(nèi)核解析
- 2.7 本章小結(jié)
- 第3章 eBPF開發(fā)框架
- 3.1 libbpf
- 3.1.1 使用libbpf開發(fā)eBPF程序
- 3.1.2 BPF類型格式
- 3.1.3 CO-RE功能
- 3.2 BCC
- 3.2.1 環(huán)境配置
- 3.2.2 使用BCC開發(fā)eBPF程序
- 3.2.3 編譯運行
- 3.3 bpftrace
- 3.3.1 環(huán)境配置
- 3.3.2 使用bpftrace開發(fā)eBPF程序
- 3.3.3 編譯運行
- 3.4 eunomia-bpf
- 3.4.1 環(huán)境配置
- 3.4.2 使用eunomia-bpf開發(fā)eBPF程序
- 3.4.3 編譯運行
- 3.5 Coolbpf
- 3.5.1 環(huán)境配置
- 3.5.2 使用Coolbpf開發(fā)eBPF程序
- 3.5.3 編譯運行
- 3.6 eBPF開發(fā)框架對比
- 3.7 本章小結(jié)
- 第4章 基于eBPF的應(yīng)用可觀測實踐
- 4.1 使用uprobe/USDT觀測應(yīng)用程序
- 4.1.1 uprobe:用戶空間的動態(tài)追蹤工具
- 4.1.2 USDT:用戶空間的靜態(tài)追蹤點技術(shù)
- 4.2 Nginx函數(shù)延遲觀測與性能分析
- 4.2.1 基于eBPF分析函數(shù)延遲
- 4.2.2 Nginx中與性能相關(guān)的關(guān)鍵函數(shù)
- 4.2.3 測試Nginx的函數(shù)延遲
- 4.3 Java應(yīng)用的GC觀測
- 4.3.1 GC策略簡介與問題排查示例
- 4.3.2 通過eBPF實現(xiàn)GC觀測
- 4.4 MySQL慢查詢監(jiān)測與排障實踐
- 4.4.1 慢查詢的常見原因
- 4.4.2 慢查詢監(jiān)測方法與示例場景
- 4.4.3 利用bpftrace程序追蹤MySQL查詢
- 4.5 觀測SSL/TLS明文數(shù)據(jù)
- 4.5.1 TLS的工作原理
- 4.5.2 OpenSSL API工作機制分析
- 4.5.3 sslsniff的eBPF內(nèi)核代碼編寫
- 4.5.4 sslsniff的用戶態(tài)代碼分析
- 4.5.5 編譯與運行sslsniff工具
- 4.6 使用eBPF跟蹤Go協(xié)程狀態(tài)
- 4.6.1 跟蹤Go協(xié)程狀態(tài)的eBPF內(nèi)核代碼
- 4.6.2 運行eBPF程序追蹤Go協(xié)程狀態(tài)
- 4.7 本章小結(jié)
- 第5章 基于eBPF的網(wǎng)絡(luò)可觀測實踐
- 5.1 內(nèi)核網(wǎng)絡(luò)協(xié)議棧
- 5.1.1 網(wǎng)絡(luò)發(fā)包流程
- 5.1.2 網(wǎng)絡(luò)收包流程
- 5.1.3 內(nèi)核網(wǎng)絡(luò)抖動問題分析
- 5.2 網(wǎng)絡(luò)可觀測實踐
- 5.2.1 HTTP流量統(tǒng)計
- 5.2.2 TCP連接信息和往返時間分析
- 5.2.3 XDP實現(xiàn)可編程包處理
- 5.2.4 基于eBPF的流量控制實踐
- 5.2.5 基于sockmap進行數(shù)據(jù)轉(zhuǎn)發(fā)
- 5.2.6 基于sockops監(jiān)測服務(wù)響應(yīng)延遲
- 5.2.7 Virtio網(wǎng)卡隊列可觀測
- 5.3 本章小結(jié)
- 第6章 基于eBPF的內(nèi)存可觀測實踐
- 6.1 系統(tǒng)內(nèi)存的申請流程
- 6.2 內(nèi)存性能瓶頸點與解決思路
- 6.2.1 常見的內(nèi)存性能瓶頸
- 6.2.2 內(nèi)存性能瓶頸診斷方法
- 6.3 實戰(zhàn):頁面錯誤監(jiān)控
- 6.3.1 什么是頁面錯誤
- 6.3.2 有關(guān)頁面錯誤的跟蹤點
- 6.3.3 頁面錯誤事件可觀測實現(xiàn)方案
- 6.4 實戰(zhàn):使用cachetop分析文件緩存
- 6.4.1 使用常規(guī)方法分析文件緩存
- 6.4.2 cachetop實現(xiàn)原理
- 6.4.3 cachetop內(nèi)核部分代碼實現(xiàn)
- 6.4.4 cachetop用戶部分代碼實現(xiàn)
- 6.4.5 運行結(jié)果
- 6.5 實戰(zhàn):使用memleak跟蹤內(nèi)存泄漏
- 6.5.1 調(diào)試內(nèi)存泄漏的挑戰(zhàn)
- 6.5.2 memleak的實現(xiàn)原理
- 6.5.3 memleak內(nèi)核部分代碼實現(xiàn)
- 6.5.4 用戶態(tài)程序?qū)崿F(xiàn)
- 6.5.5 運行結(jié)果
- 6.6 本章小結(jié)
- 第7章 基于eBPF的I/O可觀測實踐
- 7.1 I/O子系統(tǒng)性能瓶頸點
- 7.2 I/O衡量指標
- 7.3 使用eBPF進行I/O流量分析
- 7.3.1 iofsstat的功能
- 7.3.2 iofsstat的實現(xiàn)
- 7.4 實戰(zhàn):使用eBPF分析I/O延遲
- 7.4.1 iolatency延遲分析功能介紹
- 7.4.2 iolatency延遲分析功能實現(xiàn)
- 7.4.3 其他I/O延遲分析工具介紹
- 7.5 實戰(zhàn):使用eBPF分析I/O卡頓問題
- 7.5.1 如何檢測I/O hang
- 7.5.2 實現(xiàn)方案
- 7.6 統(tǒng)計隨機/順序磁盤的I/O請求
- 7.6.1 biopattern工具介紹
- 7.6.2 biopattern的實現(xiàn)原理
- 7.7 本章小結(jié)
- 第8章 基于eBPF的調(diào)度可觀測實踐
- 8.1 Linux調(diào)度子系統(tǒng)與eBPF的關(guān)系
- 8.1.1 eBPF在調(diào)度性能優(yōu)化中的應(yīng)用
- 8.1.2 調(diào)度子系統(tǒng)的hook點
- 8.2 實戰(zhàn):關(guān)中斷檢測
- 8.2.1 常用方案
- 8.2.2 方案分析
- 8.2.3 方案描述
- 8.2.4 技術(shù)實現(xiàn)
- 8.2.5 運行流程
- 8.2.6 工具使用
- 8.3 實戰(zhàn):統(tǒng)計調(diào)度延遲分布
- 8.3.1 調(diào)度延遲的產(chǎn)生
- 8.3.2 編譯運行
- 8.4 實戰(zhàn):捕獲硬中斷和軟中斷事件
- 8.4.1 實現(xiàn)原理
- 8.4.2 代碼實現(xiàn)
- 8.5 實戰(zhàn):持續(xù)性能追蹤
- 8.5.1 性能追蹤示例
- 8.5.2 詳細實現(xiàn)過程
- 8.5.3 社區(qū)中的持續(xù)性能追蹤項目
- 8.6 本章小結(jié)
- 第9章 基于eBPF的安全可觀測實踐
- 9.1 監(jiān)控進程的文件訪問行為
- 9.1.1 監(jiān)控文件訪問行為的實現(xiàn)
- 9.1.2 運行eBPF監(jiān)控文件訪問程序示例
- 9.2 監(jiān)控進程信號發(fā)送行為
- 9.3 監(jiān)控進程退出事件
- 9.4 使用eBPF進行命令審計
- 9.5 隱藏進程和文件信息
- 9.5.1 信息隱藏技術(shù)的應(yīng)用場景
- 9.5.2 隱藏信息的內(nèi)核態(tài)eBPF程序?qū)崿F(xiàn)
- 9.5.3 隱藏信息的用戶態(tài)程序?qū)崿F(xiàn)
- 9.5.4 運行隱藏信息的eBPF程序示例
- 9.6 發(fā)送信號終止惡意進程
- 9.6.1 異常響應(yīng)相關(guān)的安全場景
- 9.6.2 終止惡意進程的eBPF程序?qū)崿F(xiàn)
- 9.7 基于LSM的安全檢測防御
- 9.7.1 確認LSM模塊是否可用
- 9.7.2 安全檢測防御機制實現(xiàn)
- 9.8 本章小結(jié)
- 推薦閱讀
- 作者簡介
- 封底 更新時間:2025-06-09 17:12:35