登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

2023年02月出版新書

『簡體書』BPF Performance Tools(英文版):洞悉Linux系统和应用性能

書城自編碼: 3592095
分類: 簡體書→大陸圖書→計算機/網絡操作系統/系統開發
作者: [美]Brendan,Gregg[布伦丹·格雷格]
國際書號(ISBN): 9787121386947
出版社: 电子工业出版社
出版日期: 2020-12-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:NT$ 1314

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
明朝270年:明朝的外交博弈和权力游戏
《 明朝270年:明朝的外交博弈和权力游戏 》

售價:NT$ 325.0
禅之道(畅销全球60余年的一代经典,揭示禅对现代人的解脱意义)
《 禅之道(畅销全球60余年的一代经典,揭示禅对现代人的解脱意义) 》

售價:NT$ 386.0
改变历史的意大利豪门 : 传奇家族美第奇
《 改变历史的意大利豪门 : 传奇家族美第奇 》

售價:NT$ 420.0
Procreate插画手绘从新手到高手
《 Procreate插画手绘从新手到高手 》

售價:NT$ 493.0
山河不足重,重在遇知己
《 山河不足重,重在遇知己 》

售價:NT$ 252.0
独自走过悲喜
《 独自走过悲喜 》

售價:NT$ 381.0
永不停步:玛格丽特·阿特伍德传
《 永不停步:玛格丽特·阿特伍德传 》

售價:NT$ 442.0
假努力:方向不对,一切白费
《 假努力:方向不对,一切白费 》

售價:NT$ 335.0

建議一齊購買:

+

NT$ 594
《 BS项目开发效率手册 Foxtable+Layui+Excel 》
+

NT$ 594
《 C/C++算法从菜鸟到达人 》
+

NT$ 703
《 C++案例趣学 信息学竞赛丛书 》
+

NT$ 690
《 鸿蒙操作系统开发入门经典 》
+

NT$ 435
《 H5+跨平台移动应用实战开发 》
+

NT$ 594
《 Maya 2018完全实战技术手册 》
編輯推薦:
作为BPF技术的开拓者和专家,Brendan Gregg在本书中不仅展示了超过150个可以立即使用的分析工具和调试工具,对这些工具的应用场景进行了分析,还提供了开发自定义工具的分步指南。在本书中,读者可学习到如何分析CPU、内存、存储设备、文件系统、网络、编程语言、应用程序、容器、虚拟机管理器、安全及内核。Gregg带领读者由浅入深地了解从基础工具到进阶工具的使用,帮助读者收集更有用、更深入的技术信息,可以用来优化几乎任何类型的Linux系统和应用程序。
內容簡介:
本书作为全面介绍 BPF 技术的图书,从 BPF 技术的起源到未来发展方向都有涵盖,不仅系统介绍了 BPF 的编程模型,还完整介绍了两个主要的 BPF 前端编程框架BCC 和 bpftrace,更给出了一系列实现范例,生动展示了 BPF 技术的实际能力和未来发展前景。本书的另一个关注方向是 Linux 系统性能和应用程序性能的调优,内容涉及系统性能调优的策略、工具与实践案例,不仅介绍了对应的 BPF 工具,还着重介绍了这些工具如何与 Linux 传统性能工具配合使用,这样读者可以选择*方案。本书介绍的工具小巧精致,并提供了简单易读的源代码,它们充分展现了 BPF 技术的魅力 :安全、高效、快捷的系统扩展力。未来 BPF 技术在 Linux 中的应用场景会越来越多、越来越重要。希望本书能在大家学习 BPF 技术并关注它的发展时提供帮助。
關於作者:
Brendan Gregg 是Joyent公司的首席性能工程师,通过软件栈分析性能和扩展。在Sun Microsystem公司(之后为Oracle)作为首席性能和内核工程师期间,他的工作包括开发ZFS L2ARC,这是一个利用闪速存储器提升性能的文件系统。他还开发了许许多多的性能工具,部分工具收录在Mac OS X和Oracle Solaris 11的发行版中。他最近从事的工作覆盖针对Linux和illumos内核分析的性能可视化。他还是《DTrace》(Prentice Hall出版社,2011年)和《Solaris Performance and Tools》的两书合著者。
Netflix 资深性能工程师 Brendan Gregg 是 BPF(eBPF)的主要贡献者,他帮助开发和维护了两个主要的 BPF 前端编程框架,开创了 BPF 用于可观测性的先河,并创建了数十种基于 BPF 的性能分析工具。他还编著有畅销书《性能之巅 :洞悉系统、企业与云计算》。
目錄
Part I: Technologies
1 Introduction 1
1.1 What Are BPF and eBPF? 1
1.2 What Are Tracing, Snooping, Sampling, Profiling, and
Observability? 2
1.3 What Are BCC, bpftrace, and IO Visor? 3
1.4 A First Look at BCC: Quick Wins 4
1.5 BPF Tracing Visibility 6
1.6 Dynamic Instrumentation: kprobes and uprobes 8
1.7 Static Instrumentation: Tracepoints and USDT 9
1.8 A First Look at bpftrace: Tracing open 10
1.9 Back to BCC: Tracing open 12
1.10 Summary 14
2 Technology Background 15
2.1 BPF Illustrated 15
2.2 BPF 16
2.3 Extended BPF eBPF 17
2.3.1 Why Performance Tools Need BPF 19
2.3.2 BPF Versus Kernel Modules 21
2.3.3 Writing BPF Programs 22
2.3.4 Viewing BPF Instructions: bpftool 23
2.3.5 Viewing BPF Instructions: bpftrace 30
2.3.6 BPF API 31
2.3.7 BPF Concurrency Controls 35
2.3.8 BPF sysfs Interface 36
2.3.9 BPF Type Format BTF 37
2.3.10 BPF CO-RE 37
2.3.11 BPF Limitations 38
2.3.12 BPF Additional Reading 38
2.4 Stack Trace Walking 39
2.4.1 Frame Pointer?CBased Stacks 39
2.4.2 debuginfo 40
2.4.3 Last Branch Record LBR 40
2.4.4 ORC 40
2.4.5 Symbols 41
2.4.6 More Reading 41
2.5 Flame Graphs 41
2.5.1 Stack Trace 41
2.5.2 Profiling Stack Traces 41
2.5.3 Flame Graph 42
2.5.4 Flame Graph Features 44
2.5.5 Variations 44
2.6 Event Sources 45
2.7 kprobes 46
2.7.1 How kprobes Work 46
2.7.2 kprobes Interfaces 47
2.7.3 BPF and kprobes 48
2.7.4 kprobes Additional Reading 49
2.8 uprobes 49
2.8.1 How uprobes Work 49
2.8.2 Uprobes Interfaces 51
2.8.3 BPF and uprobes 51
2.8.4 uprobes Overhead and Future Work 52
2.8.5 uprobes Additional Reading 52
2.9 Tracepoints 53
2.9.1 Adding Tracepoint Instrumentation 53
2.9.2 How Tracepoints Work 55
2.9.3 Tracepoint Interfaces 56
2.9.4 Tracepoints and BPF 56
2.9.5 BPF Raw Tracepoints 57
2.9.6 Additional Reading 58
2.10 USDT 58
2.10.1 Adding USDT Instrumentation 58
2.10.2 How USDT Works 60
2.10.3 BPF and USDT 61
2.10.4 USDT Additional Reading 61
2.11 Dynamic USDT 61
2.12 PMCs 63
2.12.1 PMC Modes 63
2.12.2 PEBS 64
2.12.3 Cloud Computing 64
2.13 perf_events 64
2.14 Summary 65
3 Performance Analysis 67
3.1 Overview 67
3.1.1 Goals 68
3.1.2 Activities 68
3.1.3 Mulitple Performance Issues 69
3.2 Performance Methodologies 69
3.2.1 Workload Characterization 70
3.2.2 Drill-Down Analysis 71
3.2.3 USE Method 72
3.2.4 Checklists 72
3.3 Linux 60-Second Analysis 73
3.3.1 uptime 73
3.3.2 dmesg | tail 74
3.3.3 vmstat 1 74
3.3.4 mpstat -P ALL 1 75
3.3.5 pidstat 1 75
3.3.6 iostat -xz 1 76
3.3.7 free -m 77
3.3.8 sar -n DEV 1 77
3.3.9 sar -n TCP,ETCP 1 78
3.3.10 top 78
3.4 BCC Tool Checklist 79
3.4.1 execsnoop 80
3.4.2 opensnoop 80
3.4.3 ext4slower 80
3.4.4 biolatency 81
3.4.5 biosnoop 81
3.4.6 cachestat 82
3.4.7 tcpconnect 82
3.4.8 tcpaccept 82
3.4.9 tcpretrans 83
3.4.10 runqlat 83
3.4.11 profile 84
3.5 Summary 84
4 BCC 85
4.1 BCC Components 86
4.2 BCC Features 86
4.2.1 Kernel-Level Features 87
4.2.2 BCC User-Level Features 87
4.3 BCC Installation 88
4.3.1 Kernel Requirements 88
4.3.2 Ubuntu 88
4.3.3 RHEL 89
4.3.4 Other Distributions 89
4.4 BCC Tools 89
4.4.1 Highlighted Tools 90
4.4.2 Tool Characteristics 91
4.4.3 Single-Purpose Tools 91
4.4.4 Multi-Purpose Tools 93
4.5 funccount 94
4.5.1 funccount Examples 94
4.5.2 funccount Syntax 97
4.5.3 funccount One-Liners 97
4.5.4 funccount Usage 98
4.6 stackcount 99
4.6.1 stackcount Example 99
4.6.2 stackcount Flame Graphs 100
4.6.3 stackcount Broken Stack Traces 101
4.6.4 stackcount Syntax 102
4.6.5 stackcount One-Liners 102
4.6.6 stackcount Usage 103
4.7 trace 104
4.7.1 trace Example 104
4.7.2 trace Syntax 105
4.7.3 trace One-Liners 106
4.7.4 trace Structs 107
4.7.5 trace Debugging File Descriptor Leaks 107
4.7.6 trace Usage 109
4.8 argdist 110
4.8.1 argdist Syntax 111
4.8.2 argdist One-Liners 112
4.8.3 argdist Usage 113
4.9 Tool Documentation 114
4.9.1 Man Page: opensnoop 115
4.9.2 Examples File: opensnoop 118
4.10 Developing BCC Tools 119
4.11 BCC Internals 120
4.12 BCC Debugging 121
4.12.1 printf Debugging 122
4.12.2 BCC Debug Output 124
4.12.3 BCC Debug Flag 125
4.12.4 bpflist 126
4.12.5 bpftool 127
4.12.6 dmesg 127
4.12.7 Resetting Events 127
4.13 Summary 128
5 bpftrace 129
5.1 bpftrace Components 130
5.2 bpftrace Features 131
5.2.1 bpftrace Event Sources 131
5.2.2 bpftrace Actions 131
5.2.3 bpftrace General Features 132
5.2.4 bpftrace Compared to Other Observability Tools 132
5.3 bpftrace Installation 133
5.3.1 Kernel Requirements 133
5.3.2 Ubuntu 134
5.3.3 Fedora 134
5.3.4 Post-Build Steps 134
5.3.5 Other Distributions 135
5.4 bpftrace Tools 135
5.4.1 Highlighted Tools 136
5.4.2 Tool Characteristics 136
5.4.3 Tool Execution 137
5.5 bpftrace One-Liners 137
5.6 bpftrace Documentation 138
5.7 bpftrace Programming 138
5.7.1 Usage 139
5.7.2 Program Structure 140
5.7.3 Comments 140
5.7.4 Probe Format 141
5.7.5 Probe Wildcards 141
5.7.6 Filters 142
5.7.7 Actions 142
5.7.8 Hello, World! 142
5.7.9 Functions 143
5.7.10 Variables 143
5.7.11 Map Functions 144
5.7.12 Timing vfs_read 145
5.8 bpftrace Usage 147
5.9 bpftrace Probe Types 148
5.9.1 tracepoint 148
5.9.2 usdt 150
5.9.3 kprobe and kretprobe 151
5.9.4 uprobe and uretprobe 151
5.9.5 software and hardware 152
5.9.6 profile and interval 153
5.10 bpftrace Flow Control 154
5.10.1 Filter 154
5.10.2 Ternary Operators 154
5.10.3 If Statements 155
5.10.4 Unrolled Loops 155
5.11 bpftrace Operators 155
5.12 bpftrace Variables 156
5.12.1 Built-in Variables 156
5.12.2 Built-ins: pid, comm, and uid 157
5.12.3 Built-ins: kstack and ustack 157
5.12.4 Built-ins: Positional Parameters 159
5.12.5 Scratch 160
5.12.6 Maps 160
5.13 bpftrace Functions 161
5.13.1 printf 162
5.13.2 join 163
5.13.3 str 163
5.13.4 kstack and ustack 164
5.13.5 ksym and usym 165
5.13.6 kaddr and uaddr 166
5.13.7 system 166
5.13.8 exit 167
5.14 bpftrace Map Functions 167
5.14.1 count 168
5.14.2 sum, avg, min, and max 169
5.14.3 hist 170
5.14.4 lhist 171
5.14.5 delete 171
5.14.6 clear and zero 172
5.14.7 print 172
5.15 bpftrace Future Work 173
5.15.1 Explicit Address Modes 173
5.15.2 Other Additions 174
5.15.3 ply 175
5.16 bpftrace Internals 175
5.17 bpftrace Debugging 176
5.17.1 printf Debugging 177
5.17.2 Debug Mode 177
5.17.3 Verbose Mode 179
5.18 Summary 180
Part II: Using BPF Tools
6 CPUs 181
6.1 Background 181
6.1.1 CPU Fundamentals 182
6.1.2 BPF Capabilities 184
6.1.3 Strategy 185
6.2 Traditional Tools 186
6.2.1 Kernel Statistics 187
6.2.2 Hardware Statistics 189
6.2.3 Hardware Sampling 192
6.2.4 Timed Sampling 192
6.2.5 Event Statistics and Tracing 196
6.3 BPF Tools 198
6.3.1 execsnoop 200
6.3.2 exitsnoop 202
6.3.3 runqlat 203
6.3.4 runqlen 207
6.3.5 runqslower 210
6.3.6 cpudist 211
6.3.7 cpufreq 212
6.3.8 profile 215
6.3.9 offcputime 219
6.3.10 syscount 224
6.3.11 argdist and trace 226
6.3.12 funccount 229
6.3.13 softirqs 231
6.3.14 hardirqs 232
6.3.15 smpcalls 233
6.3.16 llcstat 237
6.3.17 Other Tools 238
6.4 BPF One-Liners 238
6.4.1 BCC 238
6.4.2 bpftrace 239
6.5
內容試閱

程序员常常说他们煎了一个补丁(cook a patch)而不是实现了一个补丁(implement a patch)。我从学生时代起就着迷于编程。为了写出好的代码,程序员需要最好的食材。虽然各种不同的编程语言提供了不同的组件,也就是食材,但是对 Linux 内核编程来说,除了内核代码本身,就没有其他选择了。
2012 年,我需要增加一组内核特性,但是我需要的食材并不存在。我完全可以选择在内核中添加一些新的专用代码,这样几年之后还能使用。但是,我决定创建一种普适的食材,这样在有经验的程序员手中,它既可以成为内核中二层的网桥,也可以成为三层的网络路由器。
我有一些重要的要求 :普适的食材必须和使用者的编程技能无关,可以被安全使用。一个怀着恶意或者经验不足的开发者不应该具备通过它制作病毒的能力。普适的食材不应该允许这种情况的发生。
在内核中已经存在一个叫作 BPF(Berkeley Packet Filter,伯克利数据包过滤器)的食材具备类似的特性 :一个最小化的指令集,可以在数据被 tcpdump 这样的应用处理之前进行过滤。我借用它的名字称呼这个新的食材为eBPF,这里 e 代表扩展版(extended)。
几年之后,eBPF 和经典 BPF 的差距已经消失了。我的普适的食材已经完全替代了原来的 BPF。很多知名的公司基于它建造了庞大的系统,来向包括你和我在内的数十亿用户提供服务。它具有的安全性原则允许许多厨师成长为世界级大厨。
第一个 BPF大厨就是 Brendan Gregg。他敏锐地发现,除了应用于网络和安全领域,BPF 亦可作为性能分析、监视和可观测性的工具。不过创造这些工具然后再对它们的性能进行解释,对实践和知识的要求是很高的。
我衷心希望本书能够成为读者最心爱的菜谱,在这里你可以向厨神学习如何在Linux 厨房中使用 BPF。
Alexei Starovoitov 2019 年 8 月于美国华盛顿州西雅图市

前 言

扩展版 BPF 的使用案例 :真疯狂啊。
Alexei Starovoitov,新 BPF 的创建者,2015 年 2 月
2014 年 7 月,Alexei Starovoitov 到访了 Net?ix 公司位于美国加州 Los Gatos 的办公室,对他开发的一项有趣的技术进行研讨 :扩展版的伯克利数据包过滤器(简写为eBPF 或者 BPF)。BPF 是一项用于改进包过滤的冷门技术,此时 Alexei 已经有了对其在包过滤之外的领域进行扩展的远见卓识。Alexei 和另外一名网络工程师 Daniel Borkmann 合作,将 BPF 改写为一个通用的虚拟机,可以运行高级的网络程序和其他程序。这是一个令人惊叹的想法。有一种使用场景令我十分感兴趣,那就是可以将 BPF 用在开发性能分析的工具上,我看到了 BPF 能够提供我所需要的可编程能力。于是我们做了一个约定: 如果 Alexei 能够将 BPF 与数据包之外的东西相连接,我将使用它来开发性能分析工具。
BPF 现在已经可以挂载到任何事件源上,它也成为系统工程领域一项热门的新技术, 拥有众多活跃的贡献者。到目前为止,我已经开发并公开了超过 70 个 BPF 性能分析工具, 它们在全球范围内得到广泛使用,并且在 Net?ix、Facebook 等公司中进入服务器的默认安装软件列表。我还专门为本书单独开发了许多工具,同时也引入不少其他人贡献的工具。很荣幸能够在这本书中为大家分享这些实用的工具,这样你就可以使用它们进行性能分析、故障定位以及其他种种工作。
作为一名性能工程师,我常沉迷于使用各种工具之中。系统中的盲点是性能瓶颈和软件 bug 的藏身之处。我早先在工作中使用过 DTrace 技术,在 2011 年我编写了 DTrace : Dynamic Tracing in Oracle Solaris,Mac OS X,and FreeBSD 一书(由 Prentice Hall 出版,以下简称为DTrace 一书),在那本书中分享了我为这些操作系统开发的工具。现在能够分享 Linux 下的类似工具甚至可以做得更多、看到更多我感到十分兴奋。
为什么你需要BPF性能工具
BPF 性能工具可以帮助你改进性能、降低开销、解决软件问题,从而使系统和应用的效益最大化。它们能比传统性能工具分析得更多,并允许你向生产环境中的系统随意提出问题,并且能够立刻得到答案。
关于本书
本书是关于应用在可观测性和性能分析领域的 BPF 工具的,但是这些工具也有其他用途 :软件故障排查、安全分析等。学习 BPF 时,最困难的部分不在于写代码 :你可以在一天的时间内学会编写接口程序。困难之处在于如何应用:在数以千计的可用事件中, 你能够从中得到什么信息?本书会帮助你回答这些问题,通过给出性能分析的一些必要的背景,然后使用 BPF 性能工具对许多不同的软硬件目标进行分析,并附上 Net?ix 服务器上的样例输出。
BPF 的可观测性是一种超能力,不过这仅仅是因为它扩展了我们对系统和应用的可观测能力,而非重复这种能力。为了高效地使用 BPF,你需要理解什么时候使用传统的性能分析工具,包括 iostat1 和 perf1,什么时候使用 BPF 工具。本书也会介绍传统的工具,对于解决某些性能问题它们可能已经够用了,当不能解决时,它们也会提供有用的上下文和线索,指导进一步使用 BPF 工具。
本书中的许多章节包含了学习目标,告知读者哪些是学习要点。本书中的材料也用在 Net?ix 关于使用 BPF 分析的内部课程中,有些章节还包含了可选的练习。
本书中的许多 BPF 工具来自 BCC 和 bpftrace 的代码仓库,这两个项目是 Linux 基金会下的 IO Visor 项目。它们是开源的,可以自由使用,不仅可以从项目的网站上下载, 而且很多 Linux 发行版中已经包含了它们。我也为本书新写了一些 bpftrace 工具,并在本书中提供了它们的源代码。
这些工具并不是为了演示各种 BPF 功能而随意创建的,创建它们是为了在生产环境中使用。我使用这些工具解决的生产问题超出了当前分析工具集的能力。
对于用 bpftrace 编写的工具,本书已经提供了源代码。如果你希望修改或开发新的bpftrace 工具,则可以从第 5 章中学习 bpftrace 语言,也可以从本书的许多源代码清单中学习。这些源代码有助于说明每个工具的功能以及它们所检测的事件 :就像包含可以运行的伪代码一样。
BCC 和 bpftrace 前端编程框架已经趋于成熟,但是将来的变更可能会导致本书中包含的某些源代码需停用并更新。如果工具来源于 BCC 或 bpftrace,请检查那些存储库中的更新版本。如果工具来源于本书,请访问本书的网站(参见链接 11)。最重要的不是知晓某个工具有效,而是你了解该工具并让它能够工作。 BPF 跟踪最困难的部分是要知道用它来做什么,甚至损坏的工具也会是有用想法的来源之一。
新工具
为了提供一整套全面的分析工具,并且出于可用于代码示例的目的,本书共开发了80 多种新工具。其中许多如图 P-1 所示。 在此图中,先前存在的工具以黑色文本显示, 为该书创建的新工具则以灰色显示。本书同时涵盖了既有工具和新工具,尽管后面的许多图都没有使用灰色 黑色方案来区分它们。
关于图形界面(GUI)
一些 BCC 工具已经成为测量工具 GUI 的数据来源提供时间序列数据来绘制折线图,提供调用栈来绘制火焰图,或者提供秒粒度的直方图来绘制热力图等。我预期未来会有更多的人通过 GUI 使用这些 BPF 工具,而非直接使用这些工具本身。无论你最终如何使用,它们都可以提供丰富的信息。本书介绍了这些工具提供的指标,如何解读指标,以及你如何自己动手创建新工具。
关于 Linux 版本
在本书中介绍了许多 Linux 技术,通常带有内核版本号和出现的年份。有时,我也指明了该技术的开发人员,以便你可以辨识出原始作者撰写的支持材料。
扩展版 BPF 已被部分地添加到 Linux 中。第一部分在 2014 年的 Linux 3.18 中添加, 此后在 Linux 4.x 和 5.x 系列中添加了更多内容。为了具有足够的功能来运行本书中介绍的 BPF 工具,建议使用 Linux 4.9 或更高版本。本书中的示例运行在 Linux 4.9 到 5.3 内核之上。
已经开始将扩展版 BPF 引入其他内核,并且本书的未来版本可能不仅仅涉及 Linux。
本书不包含的内容
BPF 的应用范围很广,BPF 性能工具的许多用例本书并未涉及,其中包括用于软件定义网络、防火墙、容器安全和设备驱动程序。
本书聚焦于使用 bpftrace 和 BCC 工具,以及开发新的 bpftrace 工具,但不涉及开发新的 BCC 工具。 BCC 源代码通常很长,无法在书中直接包含,但是附录 C 中提供了一些示例作为可选内容供读者参考。附录 D 中提供了使用 C 语言进行编程的示例,附录 E 中提供了使用 BPF 指令进行工具开发的示例,对那些希望更深入了解 BPF 工具的工作原理的人来说,这些示例也可能有用。
本书并不专门针对某种特定语言或应用程序的性能进行分析,因为这方面已经有其他图书了,它们涵盖了对应语言调试和分析工具的介绍。使用其他工具和 BPF 工具联合解决问题是很常见的,不同的工具之间可以互补,提供不同的解决问题的线索。本书介绍了来自 Linux 的基本系统分析工具,因此你可以利用这些工具直接解决一些问题,如果需要进一步分析,再转向使用提供进一步观察能力的 BPF 工具。
本书简要介绍了每个分析目标的背景和策略。这些主题在我之前出版的那本《性能之巅 :洞悉

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.