商品详情
定价:238.0
ISBN:9787121450945
作者:(美)布兰登·格雷格
版次:*1版
出版时间:2023-07
内容提要:
本书着力讲述 Linux 的性能,但所论述的性能问题适用于所有的操作系统。你将了解到系统是如何工作与执行的,还将学习到如何分析和改进系统及应用程序性能的方法。本书对第 1 版的内容做了大量的更新,这些更新包括但不限于 :近年来 Linux 内核各方面的变化对于资源性能的影响;云计算架构的主流演进方向;动态跟踪工具的新星(BPF 及其前后端技术);常见性能工具的使用方法的变化等。需要说明的是,在第 1 版中进行性能分析所用到的术语、概念和方法,在第 2 版中几乎没有变化,依然中肯适用,经得起时间的检验。
作者简介:
布兰登·格雷格是计算性能和云计算方面的行业专家。他是Netflix的*级性能架构师,从事性能设计、评估、分析和调优工作。他是多本技术图书的作者,包括《BPF之巅:洞悉Linux系统和应用性能》。他曾获得USENIX LISA系统管理的杰出成就奖,还曾担任内核工程师和性能负责人,并且是USENIX LISA 2018会议的项目联合主席。他开发了收录在多个操作系统中的性能工具,还开发了包括火焰图在内的用于性能分析的可视化工具和方法。
布兰登·格雷格是计算性能和云计算方面的行业专家。他是Netflix的*级性能架构师,从事性能设计、评估、分析和调优工作。他是多本技术图书的作者,包括《BPF之巅:洞悉Linux系统和应用性能》。他曾获得USENIX LISA系统管理的杰出成就奖,还曾担任内核工程师和性能负责人,并且是USENIX LISA 2018会议的项目联合主席。他开发了收录在多个操作系统中的性能工具,还开发了包括火焰图在内的用于性能分析的可视化工具和方法。
媒体评论:
热门话题颠覆式更新:1.近年来Linux内核的变化对性能的影响2.云计算架构的主流演进方向3.动态跟踪工具的新星(BPF及其前后端技术)4.常见性能工具使用方法的变化
目录:
*1章 绪论..35
1.1 系统性能 .......... 35
1.2 人员 .... 36
1.3 活动 .... 37
1.4 视角 .... 38
1.5 性能工程是充满挑战的 39
1.5.1 主观性 .. 39
1.5.2 复杂性 .. 39
1.5.3 多个原因 ............ 40
1.5.4 多个性能问题 .... 40
1.6 延时 .... 40
1.7 可观测性 .......... 41
1.7.1 计数器、统计数据和指标 ............ 42
1.7.2 剖析 ...... 44
1.7.3 跟踪 ...... 45
1.8 实验 .... 47
1.9 云计算 48
1.10 方法 .. 49
1.10.1 Linux 性能分析 60 秒 .... 49
1.11 案例研究......... 50
1.11.1 缓慢的磁盘 ...... 50
1.11.2 软件变更 .......... 52
1.11.3 更多阅读 .......... 53
1.12 参考资料 ........ 53
*2章 方法..55
2.1 术语 .... 56
2.2 模型 .... 57
2.2.1 受测系统 ............ 57
2.2.2 排队系统 ............ 57
2.3 概念 .... 58
2.3.1 延时 ...... 58
2.3.2 时间量级 ............ 59
2.3.3 权衡 ...... 60
2.3.4 调优的影响 ........ 61
2.3.5 合适的层级 ........ 62
2.3.6 何时停止分析 .... 63
2.3.7 性能推荐的时间点 .......... 63
2.3.8 负载与架构 ........ 64
2.3.9 扩展性 .. 65
2.3.10 指标 .... 66
2.3.11 使用率 67
2.3.12 饱和度 68
2.3.13 剖析 .... 69
2.3.14 缓存 .... 69
2.3.15 已知的未知 ...... 71
2.4 视角 .... 71
2.4.1 资源分析 ............ 72
2.4.2 工作负载分析 .... 73
2.5 方法 .... 74
2.5.1 街灯讹方法 ........ 76
2.5.2 随机变动讹方法 76
2.5.3 责怪他人讹方法 77
2.5.4 Ad Hoc 核对清单法 ......... 77
2.5.5 问题陈述法 ........ 78
2.5.6 科学法 .. 78
2.5.7 诊断循环 ............ 80
2.5.8 工具法 .. 80
2.5.9 USE 方法 ............ 81
2.5.10 RED 方法 ......... 87
2.5.11 工作负载特征归纳 ........ 88
2.5.12 向下钻取分析 .. 89
2.5.13 延时分析 .......... 90
2.5.14 R 方法 . 91
2.5.15 事件跟踪 .......... 91
2.5.16 基础线统计 ...... 93
2.5.17 静态性能调优 .. 93
2.5.18 缓存调优 .......... 94
2.5.19 微基准测试 ...... 94
2.5.20 性能箴言 .......... 95
2.6 建模 .... 96
2.6.1 企业与云 ............ 96
2.6.2 可视化识别 ........ 96
2.6.3 Amdahl 扩展定律 ............ 98
2.6.4 通用扩展定律 .... 99
2.6.5 排队理论 .......... 100
2.7 容量规划 ........ 103
2.7.1 资源极限 .......... 104
2.7.2 因素分析 .......... 105
2.7.3 扩展方案 .......... 106
2.8 统计 .. 107
2.8.1 量化性能收益 .. 107
2.8.2 平均值 108
2.8.3 标准方差、百分位数、中位数 .. 109
2.8.4 变异系数 .......... 110
2.8.5 多重模态分布 .. 110
2.8.6 异常值 .111
2.9 监测 ...111
2.9.1 基于时间的规律 .............111
2.9.2 监测产品 .......... 113
2.9.3 自启动以来的信息统计 113目录
XVI
2.10 可视化 .......... 113
2.10.1 线图 .. 114
2.10.2 散点图 ............ 115
2.10.3 热图 .. 116
2.10.4 时间线图 ........ 117
2.10.5 表面图 ............ 118
2.10.6 可视化工具 .... 119
2.11 练习. 119
2.12 参考资料 ...... 120
第3章 操作系统.......123
3.1 术语 .. 124
3.2 背景 .. 125
3.2.1 内核 .... 125
3.2.2 内核态与用户态 ............ 127
3.2.3 系统调用 .......... 128
3.2.4 中断 .... 130
3.2.5 时钟和空闲 ...... 133
3.2.6 进程 .... 133
3.2.7 栈 ........ 136
3.2.8 虚拟内存 .......... 138
3.2.9 调度器 139
3.2.10 文件系统 ........ 140
3.2.11 缓存 .. 142
3.2.12 网络 .. 143
3.2.13 设备驱动 ........ 143
3.2.14 多处理器 ........ 144
3.2.15 抢占 .. 144
3.2.16 资源管理 ........ 144
3.2.17 可观测性 ........ 145
3.3 内核 .. 145
3.3.1 UNIX .. 146
3.3.2 BSD..... 147
3.3.3 Solaris . 148
3.4 Linux . 148
3.4.1 Linux 内核开发 149
3.4.2 systemd ............. 154
3.4.3 KPTI(meltdown) ......... 155
3.4.4 eBPF ... 155
3.5 其他主题 ........ 156
3.5.1 PGO 内核 ......... 156
3.5.2 unikernel ........... 157
3.5.3 微内核和混合内核 ........ 157
3.5.4 分布式操作系统 ............ 157
3.6 内核比较 ........ 158
3.7 练习 .. 158
3.8 参考资料 ........ 159
3.8.1 延伸阅读 .......... 161
第4章 观测工具.......163
4.1 工具范围 ........ 164
4.1.1 静态性能工具 .. 164
4.1.2 危机处理工具 .. 165
4.2 工具类型 ........ 167
4.2.1 固定计数器 ...... 167
4.2.2 剖析 .... 169
4.2.3 跟踪 .... 170
4.2.4 监测 .... 171
4.3 监测来源 ........ 172
4.3.1 /proc .... 174
4.3.2 /sys ...... 177
4.3.3 延时核算 .......... 179
4.3.4 netlink . 179
4.3.5 tracepoint .......... 180
4.3.6 kprobes 185
4.3.7 uprobes 187
4.3.8 USDT .. 189
4.3.9 硬件计数器 ...... 190
4.3.10 其他观测源 .... 193
4.4 sar ...... 194
4.4.1 sar(1) 的覆盖范围 .......... 195
4.4.2 sar(1) 监测 ........ 195
4.4.3 sar(1) 实时报告 199
4.4.4 sar(1) 文档 ........ 199
4.5 跟踪工具 ........ 200
4.6 观测工具的观测 .......... 201
4.7 练习 .. 202
4.8 参考资料 ........ 202
第5章 应用程序.......205
5.1 应用程序基础 206
5.1.1 目标 .... 207
5.1.2 常见情况的优化 ............ 208
5.1.3 可观测性 .......... 208
5.1.4 大 O 标记法 ..... 209
5.2 应用程序性能技术 ...... 210
5.2.1 选择 I/O 尺寸 ... 210
5.2.2 缓存 .... 210
5.2.3 缓冲区 211
5.2.4 轮询 .... 211
5.2.5 并发和并行 ...... 211
5.2.6 非阻塞 I/O ........ 215
5.2.7 处理器绑定 ...... 215
5.2.8 性能箴言 .......... 216
5.3 编程语言 ........ 216
5.3.1 编译型语言 ...... 217
5.3.2 解释型语言 ...... 218
5.3.3 虚拟机 219
5.3.4 垃圾回收 .......... 219
5.4 方法 .. 220
5.4.1 CPU 剖析.......... 221
5.4.2 off-CPU 分析 .... 223
5.4.3 系统调用分析 .. 226
5.4.4 USE 方法 .......... 227
5.4.5 线程状态分析 .. 227
5.4.6 锁分析 232
5.4.7 静态性能调优 .. 232
5.4.8 分布式跟踪 ...... 233
5.5 观测工具 ........ 233
5.5.1 perf ...... 234
5.5.2 profifile .. 237
5.5.3 offcputime ......... 238
5.5.4 strace ... 239
5.5.5 execsnoop ......... 241
5.5.6 syscount ............ 242
5.5.7 bpftrace ............. 243
5.6 明白了 ............ 247
5.6.1 缺少符号 .......... 248
5.6.2 缺少栈 249
5.7 练习 .. 250
5.8 参考资料 ........ 251
第6章 CPU253
6.1 术语 .. 254
6.2 模型 .. 255
6.2.1 CPU 架构.......... 255
6.2.2 CPU 内存缓存.. 255
6.2.3 CPU 运行队列.. 256
6.3 概念 .. 257
6.3.1 时钟频率 .......... 257
6.3.2 指令 .... 257
6.3.3 指令流水线 ...... 258
6.3.4 指令宽度 .......... 258
6.3.5 指令尺寸 .......... 258
6.3.6 SMT .... 259
6.3.7 IPC 和 CPI ........ 259
6.3.8 使用率 260
6.3.9 用户时间 / 内核时间 ..... 260
6.3.10 饱和度 ............ 260
6.3.11 抢占 .. 261
6.3.12 优先级反转 .... 261
6.3.13 多进程和多线程 .......... 261
6.3.14 字长 .. 263
6.3.15 编译器优化 .... 263
6.4 架构 .. 263
6.4.1 硬件 .... 264
6.4.2 软件 .... 275
6.5 方法 .. 278
6.5.1 工具法 279
6.5.2 USE 方法 .......... 279
6.5.3 负载特征归纳 .. 280
6.5.4 剖析 .... 281
6.5.5 周期分析 .......... 285
6.5.6 性能监测 .......... 285
6.5.7 静态性能调优 .. 286
6.5.8 优先级调优 ...... 286
6.5.9 资源控制 .......... 287
6.5.10 CPU 绑定........ 287
6.5.11 微基准测试 .... 287
6.6 观测工具 ........ 288
6.6.1 uptime . 289
6.6.2 vmstat .. 292
6.6.3 mpstat .. 293
6.6.4 sar ........ 294
6.6.5 ps ......... 294
6.6.6 top ....... 295
6.6.7 pidstat .. 296
6.6.8 time 和 ptime .... 297
6.6.9 turbostat ............ 298
6.6.10 showboost ....... 299
6.6.11 pmcarch ........... 299
6.6.12 tlbstat. 300
6.6.13 perf .... 301
6.6.14 profifile 311
6.6.15 cpudist ............. 312
6.6.16 runqlat ............. 313
6.6.17 runqlen ............ 314
6.6.18 softirqs ............ 315
6.6.19 hardirqs ........... 316
6.6.20 bpftrace ........... 316
6.6.21 其他工具 ........ 319
6.7 可视化 ............ 322
6.7.1 使用率热图 ...... 322
6.7.2 亚秒级偏移量热图 ........ 323
6.7.3 火焰图 323
6.7.4 FlameScope....... 326
6.8 实验 .. 327
6.8.1 Ad Hoc 327
6.8.2 SysBench .......... 328
6.9 调优 .. 328
6.9.1 编译器选项 ...... 329
6.9.2 调度优先级和调度类 .... 329
6.9.3 调度器选项 ...... 329
6.9.4 调节调速器 ...... 331
6.9.5 能耗状态 .......... 331
6.9.6 CPU 绑定.......... 331
6.9.7 独占 CPU 组..... 332
6.9.8 资源控制 .......... 332
6.9.9 安全启动选项 .. 332
6.9.10 处理器选项(BIOS 调优) ........ 333
6.10 练习 333
6.11 参考资料....... 334
第7章 内存337
7.1 术语 .. 338
7.2 概念 .. 339
7.2.1 虚拟内存 .......... 339
7.2.2 换页 .... 340
7.2.3 按需换页 .......... 341
7.2.4 过度提交 .......... 342
7.2.5 进程交换 .......... 342
7.2.6 文件系统缓存用量 ........ 343
7.2.7 使用率和饱和度 ............ 343
7.2.8 分配器 343
7.2.9 共享内存 .......... 344
7.2.10 工作集大小 .... 344
7.2.11 字长 .. 344
7.3 架构 .. 345
7.3.1 硬件 .... 345
7.3.2 软件 .... 349
7.3.3 进程虚拟地址空间 ........ 353
7.4 方法 .. 357
7.4.1 工具法 357
7.4.2 USE 方法 .......... 358
7.4.3 描述使用情况 .. 359
7.4.4 周期分析 .......... 360
7.4.5 性能监测 .......... 360
7.4.6 泄漏检测 .......... 360
7.4.7 静态性能调优 .. 361
7.4.8 资源控制 .......... 362
7.4.9 微基准测试 ...... 362
7.4.10 内存收缩 ........ 362
7.5 观测工具 ........ 362
7.5.1 vmstat .. 363
7.5.2 PSI....... 364
7.5.3 swapon 365
7.5.4 sar ........ 365
7.5.5 slabtop . 367
7.5.6 numastat ............ 368
7.5.7 ps ......... 369
7.5.8 top ....... 370
7.5.9 pmap ... 371
7.5.10 perf .... 372
7.5.11 drsnoop ............ 376
7.5.12 wss .... 376
7.5.13 bpftrace ........... 377
7.5.14 其他工具 ........ 381
7.6 调优 .. 384
7.6.1 可调参数 .......... 384
7.6.2 多种页面大小 .. 386
7.6.3 分配器 387
7.6.4 NUMA 绑定 ..... 387
7.6.5 资源控制 .......... 387
7.7 练习 . 388
7.8 参考资料 ........ 389
第8章 文件系统.......393
8.1 术语 .. 394
8.2 模型 .. 395
8.2.1 文件系统接口 .. 395
8.2.2 文件系统缓存 .. 395
8.2.3 二级缓存 .......... 396
8.3 概念 .. 396
8.3.1 文件系统延时 .. 396
8.3.2 缓存 .... 397
8.3.3 随机与顺序 I/O 397
8.3.4 预取 .... 398
8.3.5 预读 .... 399
8.3.6 回写缓存 .......... 399
8.3.7 同步写 400
8.3.8 裸 I/O 与直接 I/O ........... 400
8.3.9 非阻塞 I/O ........ 400
8.3.10 内存映射文件 401
8.3.11 元数据 ............ 401
8.3.12 逻辑 I/O 与物理 I/O ..... 402
8.3.13 操作并不平等 404
8.3.14 特殊的文件系统 .......... 405
8.3.15 访问时间戳 .... 405
8.3.16 容量 .. 405
8.4 架构 .. 406
8.4.1 文件系统 I/O 栈 ............. 406
8.4.2 VFS ..... 407
8.4.3 文件系统缓存 .. 407
8.4.4 文件系统特性 .. 409
8.4.5 文件系统种类 .. 411
8.4.6 卷和池 416
8.5 方法 .. 417
8.5.1 磁盘分析 .......... 418
8.5.2 延时分析 .......... 418
8.5.3 负载特征归纳 .. 420
8.5.4 性能监测 .......... 422
8.5.5 静态性能调优 .. 423
8.5.6 缓存调优 .......... 423
8.5.7 负载分离 .......... 423
8.5.8 微基准测试 ...... 424
8.6 观测工具 ........ 425
8.6.1 mount .. 426
8.6.2 free ...... 426
8.6.3 top ....... 427
8.6.4 vmstat .. 427
8.6.5 sar ........ 427
8.6.6 slabtop . 428
8.6.7 strace ... 429
8.6.8 fatrace . 429
8.6.9 LatencyTOP ...... 430
8.6.10 opensnoop ....... 431
8.6.11 fifiletop 432
8.6.12 cachestat .......... 433
8.6.13 ext4dist(xfs、zfs、btrfs、nfs) 433
8.6.14 ext4slower(xfs、zfs、btrfs、nfs) ......... 435
8.6.15 bpftrace ........... 436
8.6.16 其他工具 ........ 443
8.6.17 可视化 ............ 444
8.7 实验 .. 445
8.7.1 Ad Hoc 445
8.7.2 微基准测试工具 ............ 446
8.7.3 缓存刷新 .......... 448
8.8 调优 .. 448
8.8.1 应用程序调用 .. 449
8.8.2 ext4 ..... 450
8.8.3 ZFS ..... 452
8.9 练习 .. 453
8.10 参考资料 ...... 454
第9章 磁盘457
9.1 术语 .. 458
9.2 模型 .. 459
9.2.1 简单磁盘 .......... 459
9.2.2 缓存磁盘 .......... 459
9.2.3 控制器 460
9.3 概念 .. 461
9.3.1 测量时间 .......... 461
9.3.2 时间尺度 .......... 463
9.3.3 缓存 .... 464
9.3.4 随机 I/O 与连续 I/O ....... 464
9.3.5 读 / 写比 ........... 465
9.3.6 I/O 大小 ............ 466
9.3.7 IOPS 并不平等 . 466
9.3.8 非数据传输磁盘命令 .... 466
9.3.9 使用率 467
9.3.10 饱和度 ............ 468
9.3.11 I/O 等待 .......... 468
9.3.12 同步与异步 .... 468
9.3.13 磁盘 I/O 与应用程序 I/O ........... 469
9.4 架构 .. 469
9.4.1 磁盘类型 .......... 469
9.4.2 接口 .... 476
9.4.3 存储类型 .......... 477
9.4.4 操作系统磁盘 I/O 栈 ..... 480
9.5 方法 .. 483
9.5.1 工具法 484
9.5.2 USE 方法 .......... 484
9.5.3 性能监测 .......... 486
9.5.4 负载特征归纳 .. 486
9.5.5 延时分析 .......... 488
9.5.6 静态性能调优 .. 489
9.5.7 缓存调优 .......... 490
9.5.8 资源控制 .......... 490
9.5.9 微基准测试 ...... 490
9.5.10 伸缩 .. 491
9.6 观测工具 ........ 492
9.6.1 iostat .... 493
9.6.2 sar ........ 497
9.6.3 PSI....... 498
9.6.4 pidstat .. 498
9.6.5 perf ...... 499
9.6.6 biolatency .......... 502
9.6.7 biosnoop ............ 504
9.6.8 iotop、biotop .... 506
9.6.9 biostacks ........... 508
9.6.10 blktrace ........... 509
9.6.11 bpftrace ........... 513
9.6.12 MegaCli .......... 518
9.6.13 smartctl ........... 518
9.6.14 SCSI 日志 ....... 520
9.6.15 其他工具 ........ 521
9.7 可视化 ............ 521
9.7.1 折线图 521
9.7.2 延时散点图 ...... 522
9.7.3 延时热图 .......... 522
9.7.4 偏移量热图 ...... 523
9.7.5 使用率热图 ...... 524
9.8 实验 .. 524
9.8.1 Ad Hoc 524
9.8.2 自定义负载生成器 ........ 525
9.8.3 微基准测试工具 ............ 525
9.8.4 随机读示例 ...... 525
9.8.5 ioping .. 526
9.8.6 fifio ........ 527
9.8.7 blkreplay ........... 527
9.9 调优 .. 527
9.9.1 操作系统可调参数 ........ 527
9.9.2 磁盘设备可调参数 ........ 528
9.9.3 磁盘控制器可调参数 .... 528
9.10 练习 529
9.11 参考资料....... 530
*10章 网络............533
10.1 术语 534
10.2 模型 535
10.2.1 网络接口 ........ 535
10.2.2 控制器 ............ 535
10.2.3 协议栈 ............ 536
10.3 概念 537
10.3.1 网络和路由 .... 537
10.3.2 协议 .. 538目录
XXVIII
10.3.3 封装 .. 538
10.3.4 包的大小 ........ 538
10.3.5 延时 .. 539
10.3.6 缓冲 .. 541
10.3.7 连接积压队列 541
10.3.8 接口协商 ........ 542
10.3.9 避免阻塞 ........ 542
10.3.10 使用率 .......... 542
10.3.11 本地连接 ...... 543
10.4 架构 543
10.4.1 协议 .. 543
10.4.2 硬件 .. 549
10.4.3 软件 .. 551
10.5 方法 558
10.5.1 工具法 ............ 559
10.5.2 USE 方法 ........ 560
10.5.3 工作负载特征归纳 ...... 561
10.5.4 延时分析 ........ 562
10.5.5 性能监测 ........ 563
10.5.6 数据包xiu探 .... 564
10.5.7 TCP 分析 ........ 565
10.5.8 静态性能调优 565
10.5.9 资源控制 ........ 566
10.5.10 微基准测试 .. 567
10.6 观测工具 ...... 567
10.6.1 ss ....... 568
10.6.2 ip ....... 570
10.6.3 ifconfifig ............ 571
10.6.4 nstat ... 572
10.6.5 netstat 573
10.6.6 sar ...... 577
10.6.7 nicstat 579
10.6.8 ethtool ............. 580
10.6.9 tcplife 582
10.6.10 tcptop ............ 583
10.6.11 tcpretrans ....... 583
10.6.12 bpftrace ......... 584
10.6.13 tcpdump ........ 592
10.6.14 Wireshark ...... 594
10.6.15 其他工具 ...... 594
10.7 实验 596
10.7.1 ping ... 596
10.7.2 traceroute ........ 597
10.7.3 pathchar........... 598
10.7.4 iperf ... 598
10.7.5 netperf ............. 599
10.7.6 tc ....... 600
10.7.7 其他工具 ........ 601
10.8 调优 601
10.8.1 系统级可调参数 .......... 601
10.8.2 套接字选项 .... 607
10.8.3 配置 .. 608
10.9 练习 608
10.10 参考资料 .... 609
*11章 云计算.........613
11.1 背景. 614
11.1.1 实例类型 ........ 615
11.1.2 可扩展的架构 615
11.1.3 容量规划 ........ 616
11.1.4 存储 .. 618
11.1.5 多租户 ............ 619
11.1.6 编排(Kubernetes) ...... 620
11.2 硬件虚拟化... 621
11.2.1 实现 .. 622
11.2.2 系统开销 ........ 623
11.2.3 资源控制 ........ 629
11.2.4 可观测性 ........ 631
11.3 操作系统虚拟化......... 639
11.3.1 实现方式 ........ 641
11.3.2 系统开销 ........ 644
11.3.3 资源控制 ........ 647
11.3.4 可观测性 ........ 651
11.4 轻量虚拟化... 664
11.4.1 实现 .. 665
11.4.2 开销 .. 666
11.4.3 资源控制 ........ 666
11.4.4 可观测性 ........ 666
11.5 其他类型....... 668
11.6 比较. 668
11.7 练习... 670
11.8 参考资料....... 671
*12章 基准测试.....675
12.1 背景 676
12.1.1 原因 .. 676
12.1.2 有效的基准测试 .......... 677
12.1.3 基准测试失败 679
12.2 基准测试的类型 ....... 685
12.2.1 微基准测试 .... 685
12.2.2 模拟 .. 687
12.2.3 回放 .. 688
12.2.4 行业标准 ........ 688
12.3 方法 690
12.3.1 被动基准测试 690
12.3.2 主动基准测试 691
12.3.3 CPU 剖析........ 694
12.3.4 USE 方法 ........ 695
12.3.5 工作负载特征归纳 ...... 696
12.3.6 自定义基准测试 .......... 696
12.3.7 逐渐增加负载 696
12.3.8 合理性检查 .... 698目录
XXXI
12.3.9 统计分析 ........ 699
12.3.10 基准测试检查清单 .... 700
12.4 基准测试问题 ............ 701
12.5 练习 702
12.6 参考资料 ...... 703
*13章 perf.............705
13.1 子命令概览 .. 706
13.2 单行命令 ...... 708
13.3 perf事件 ........ 713
13.4 硬件事件 ...... 715
13.4.1 频率采样 ........ 716
13.5 软件事件 ...... 717
13.6 tracepoint事件 ............ 718
13.7 探针事件 ...... 719
13.7.1 kprobe ............. 719
13.7.2 uprobe ............. 721
13.7.3 USDT 探针 ..... 724
13.8 perf stat ......... 725
13.8.1 选项 .. 726
13.8.2 周期统计信息 727
13.8.3 CPU 均衡........ 727
13.8.4 事件过滤器 .... 727
13.8.5 隐藏统计信息 728
13.9 perf record ..... 728
13.9.1 选项 .. 729
13.9.2 CPU 剖析........ 729
13.9.3 栈遍历 ............ 730
13.10 perf report ... 730
13.10.1 TUI .. 731
13.10.2 STDIO........... 731
13.11 perf script .... 732
13.11.1 火焰图 .......... 734
13.11.2 跟踪脚本 ...... 734目录
XXXII
13.12 perf trace ..... 735
13.12.1 内核版本 ...... 736
13.13 其他命令 .... 736
13.14 perf文档 ...... 737
13.15 参考资料 .... 737
*14章 Ftrace..........739
14.1 功能概述 ...... 740
14.2 tracefs(/sys) ........... 742&
- 电子工业出版社精品店
- 扫描二维码,访问我们的微信店铺