注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)深入理解eBPF與可觀測(cè)性

深入理解eBPF與可觀測(cè)性

深入理解eBPF與可觀測(cè)性

定 價(jià):¥99.00

作 者: 毛文安 鄭昱笙 程書意 廖肇燕
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787111774808 出版時(shí)間: 2025-03-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書由龍蜥社區(qū)操作系統(tǒng)及eBPF專家聯(lián)合撰寫,帶領(lǐng)讀者一次性學(xué)透eBPF原理與Linux可觀測(cè)性,讓性能與安全問題無所遁形,效果立竿見影。具體來說,本書系統(tǒng)介紹eBPF技術(shù)生態(tài)、特性、五大主流開發(fā)框架,并深度剖析應(yīng)用、網(wǎng)絡(luò)、內(nèi)存、I/O、調(diào)度、安全六大關(guān)鍵Linux可觀測(cè)性實(shí)踐。本書共9章,從邏輯上分為兩部分。第一部分為eBPF基礎(chǔ)(第1~3章):第1章概述eBPF技術(shù)的發(fā)展歷程和應(yīng)用場(chǎng)景;第2章深入解析eBPF的指令集、輔助函數(shù)及程序類型設(shè)計(jì)原理;第3章介紹如何使用libbpf、BCC、eunomia-bpf、Coolbpf等工具開發(fā)eBPF程序,尤其是BTF和CO-RE技術(shù)的應(yīng)用。第二部分為eBPF可觀測(cè)性實(shí)踐(第4~9章),第4章探討eBPF在用戶態(tài)應(yīng)用層面的可觀測(cè)實(shí)踐,如Java應(yīng)用的GC觀測(cè);第5章講解內(nèi)核網(wǎng)絡(luò)收發(fā)包流程及使用eBPF分析網(wǎng)絡(luò)抖動(dòng)的方法;第6章介紹內(nèi)存性能瓶頸的優(yōu)化方法,包括使用eBPF檢測(cè)內(nèi)存分配延遲和內(nèi)存泄漏;第7章分析I/O子系統(tǒng)的原理和性能瓶頸點(diǎn),并介紹使用eBPF監(jiān)測(cè)I/O延遲分布和I/O卡頓問題;第8章介紹eBPF在調(diào)度系統(tǒng)上的觀測(cè)實(shí)踐,包括長時(shí)間關(guān)中斷和持續(xù)性能追蹤等;第9章則聚焦于eBPF在系統(tǒng)安全上的實(shí)踐,如使用LSM進(jìn)行安全防御、監(jiān)控進(jìn)程的各種行為等。

作者簡(jiǎn)介

  毛文安:阿里云高級(jí)技術(shù)專家,龍蜥社區(qū)eBPF技術(shù)探索SIG(特別興趣小組)及“酷玩BPF”公眾號(hào)負(fù)責(zé)人,龍蜥社區(qū)“eBPF技術(shù)實(shí)踐白皮書”主要作者,也是系統(tǒng)智能運(yùn)維平臺(tái)SysOM以及eBPF開發(fā)功能庫Coolbpf的架構(gòu)師。具有十余年Linux操作系統(tǒng)開發(fā)、維護(hù)及性能調(diào)優(yōu)經(jīng)驗(yàn),目前專注內(nèi)核網(wǎng)絡(luò)、AI等新特性的研究與實(shí)踐。鄭昱笙:開源維護(hù)者、UCSC博士生、eunomia-bpf開源社區(qū)共同創(chuàng)辦人。主導(dǎo)開發(fā)了bpftime(用戶態(tài)eBPF運(yùn)行時(shí))等項(xiàng)目,拓展了eBPF在用戶態(tài)的應(yīng)用,目前積極探索eBPF在大模型(LLM)推理優(yōu)化等領(lǐng)域的潛在應(yīng)用。長期活躍于開源社區(qū),并多次擔(dān)任KubeCon、Linux Plumber等知名會(huì)議的演講者。程書意:阿里云開發(fā)工程師,龍蜥社區(qū)eBPF技術(shù)探索SIG核心成員,Coolbpf項(xiàng)目維護(hù)者,龍蜥社區(qū)“eBPF技術(shù)實(shí)踐白皮書”作者之一。專注于內(nèi)核網(wǎng)絡(luò)優(yōu)化與eBPF技術(shù),擅長系統(tǒng)性能調(diào)優(yōu)和故障排查,熱衷技術(shù)分享與推廣。廖肇燕:阿里云技術(shù)專家、龍蜥社區(qū)“eBPF技術(shù)實(shí)踐白皮書”作者之一。擁有十余年Linux開發(fā)運(yùn)維經(jīng)驗(yàn),專注于內(nèi)核問題深度定位與eBPF技術(shù)創(chuàng)新性應(yīng)用推廣,擅長系統(tǒng)穩(wěn)定性問題定位和性能優(yōu)化。

圖書目錄

Contents 目  錄
前言
第1章 eBPF的發(fā)展與應(yīng)用1
1.1 eBPF概述1
1.1.1 Linux的跟蹤與診斷技術(shù)簡(jiǎn)介1
1.1.2 eBPF的發(fā)展史3
1.1.3 eBPF與cBPF的功能區(qū)別4
1.1.4 eBPF與內(nèi)核模塊5
1.1.5 eBPF的優(yōu)勢(shì)與劣勢(shì)5
1.2 eBPF應(yīng)用場(chǎng)景6
1.2.1 eBPF跟蹤與性能分析7
1.2.2 eBPF與可觀測(cè)8
1.2.3 eBPF與網(wǎng)絡(luò)14
1.2.4 eBPF與安全14
1.3 eBPF基礎(chǔ)架構(gòu)16
1.3.1 eBPF加載流程和相關(guān)組件17
1.3.2 eBPF的JIT編譯原理18
1.3.3 eBPF的掛載與執(zhí)行22
1.4 本章小結(jié)22
第2章 eBPF的特性解析23
2.1 eBPF指令架構(gòu)23
2.1.1 cBPF指令集24
2.1.2 eBPF指令集25
2.1.3 使用C語言編寫eBPF程序34
2.1.4 使用匯編語言編寫eBPF程序35
2.1.5 使用字節(jié)碼編寫eBPF程序37
2.2 eBPF系統(tǒng)調(diào)用40
2.2.1 eBPF系統(tǒng)調(diào)用的函數(shù)原型40
2.2.2 eBPF系統(tǒng)調(diào)用的類型40
2.2.3 eBPF系統(tǒng)調(diào)用的數(shù)據(jù)
   結(jié)構(gòu)解析41
2.3 eBPF輔助函數(shù)43
2.3.1 eBPF輔助函數(shù)的設(shè)計(jì)43
2.3.2 eBPF輔助函數(shù)的實(shí)現(xiàn)47
2.4 eBPF程序類型設(shè)計(jì)49
2.4.1 eBPF程序類型49
2.4.2 驗(yàn)證器接口設(shè)計(jì)51
2.4.3 測(cè)試接口設(shè)計(jì)52
2.4.4 卸載接口設(shè)計(jì)53
2.5 跟蹤診斷類eBPF程序54
2.5.1 kprobe/kretprobe類程序55
2.5.2 uprobe/uretprobe類程序58
2.5.3 tracepoint類程序60
2.5.4 perf事件類程序63
2.6 網(wǎng)絡(luò)處理類:XDP程序66
2.6.1 XDP基本原理67
2.6.2 XDP應(yīng)用場(chǎng)景68
2.6.3 XDP內(nèi)核解析69
2.7 本章小結(jié)73
第3章 eBPF開發(fā)框架74
3.1 libbpf74
3.1.1 使用libbpf開發(fā)eBPF程序75
3.1.2 BPF類型格式79
3.1.3 CO-RE功能82
3.2 BCC85
3.2.1 環(huán)境配置86
3.2.2 使用BCC開發(fā)eBPF程序88
3.2.3 編譯運(yùn)行90
3.3 bpftrace90
3.3.1 環(huán)境配置91
3.3.2 使用bpftrace開發(fā)eBPF程序92
3.3.3 編譯運(yùn)行95
3.4 eunomia-bpf96
3.4.1 環(huán)境配置97
3.4.2 使用eunomia-bpf?開發(fā)
   eBPF程序98
3.4.3 編譯運(yùn)行100
3.5 Coolbpf?100
3.5.1 環(huán)境配置102
3.5.2 使用Coolbpf開發(fā)eBPF
   程序102
3.5.3 編譯運(yùn)行103
3.6 eBPF開發(fā)框架對(duì)比104
3.7 本章小結(jié)105
第4章 基于eBPF的應(yīng)用
    可觀測(cè)實(shí)踐106
4.1 使用uprobe/USDT觀測(cè)應(yīng)用程序106
4.1.1 uprobe:用戶空間的動(dòng)態(tài)
   追蹤工具106
4.1.2 USDT:用戶空間的靜態(tài)
   追蹤點(diǎn)技術(shù)108
4.2 Nginx函數(shù)延遲觀測(cè)與性能分析109
4.2.1 基于eBPF分析函數(shù)延遲110
4.2.2 Nginx中與性能相關(guān)的
   關(guān)鍵函數(shù)113
4.2.3 測(cè)試Nginx的函數(shù)延遲115
4.3 Java應(yīng)用的GC觀測(cè)116
4.3.1 GC策略簡(jiǎn)介與問題
   排查示例116
4.3.2 通過eBPF實(shí)現(xiàn)GC觀測(cè)117
4.4 MySQL慢查詢監(jiān)測(cè)與排障實(shí)踐123
4.4.1 慢查詢的常見原因124
4.4.2 慢查詢監(jiān)測(cè)方法與示例場(chǎng)景124
4.4.3 利用bpftrace程序追蹤
   MySQL查詢126
4.5 觀測(cè)SSL/TLS明文數(shù)據(jù)128
4.5.1 TLS的工作原理128
4.5.2 OpenSSL API工作機(jī)制分析129
4.5.3 sslsniff的eBPF內(nèi)核
   代碼編寫130
4.5.4 sslsniff的用戶態(tài)代碼分析135
4.5.5 編譯與運(yùn)行sslsniff工具138
4.6 使用eBPF跟蹤Go協(xié)程狀態(tài)139
4.6.1 跟蹤Go協(xié)程狀態(tài)的eBPF
   內(nèi)核代碼140
4.6.2 運(yùn)行eBPF程序追蹤Go
   協(xié)程狀態(tài)141
4.7 本章小結(jié)142
第5章 基于eBPF的網(wǎng)絡(luò)
    可觀測(cè)實(shí)踐143
5.1 內(nèi)核網(wǎng)絡(luò)協(xié)議棧143
5.1.1 網(wǎng)絡(luò)發(fā)包流程143
5.1.2 網(wǎng)絡(luò)收包流程159
5.1.3 內(nèi)核網(wǎng)絡(luò)抖動(dòng)問題分析168
5.2 網(wǎng)絡(luò)可觀測(cè)實(shí)踐172
5.2.1 HTTP流量統(tǒng)計(jì)172
5.2.2 TCP連接信息和往返
   時(shí)間分析179
5.2.3 XDP實(shí)現(xiàn)可編程包處理187
5.2.4 基于eBPF的流量控制實(shí)踐189
5.2.5 基于sockmap進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)192
5.2.6 基于sockops監(jiān)測(cè)服務(wù)
   響應(yīng)延遲205
5.2.7 Virtio網(wǎng)卡隊(duì)列可觀測(cè)213
5.3 本章小結(jié)218
第6章 基于eBPF的內(nèi)存
    可觀測(cè)實(shí)踐219
6.1 系統(tǒng)內(nèi)存的申請(qǐng)流程219
6.2 內(nèi)存性能瓶頸點(diǎn)與解決思路222
6.2.1 常見的內(nèi)存性能瓶頸222
6.2.2 內(nèi)存性能瓶頸診斷方法225
6.3 實(shí)戰(zhàn):頁面錯(cuò)誤監(jiān)控227
6.3.1 什么是頁面錯(cuò)誤227
6.3.2 有關(guān)頁面錯(cuò)誤的跟蹤點(diǎn)228
6.3.3 頁面錯(cuò)誤事件可觀測(cè)
   實(shí)現(xiàn)方案229
6.4 實(shí)戰(zhàn):使用cachetop分析
   文件緩存233
6.4.1 使用常規(guī)方法分析文件緩存233
6.4.2 cachetop實(shí)現(xiàn)原理234
6.4.3 c

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.stefanvlieger.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)