性能之巅:洞悉系统、企业与云计算

性能之巅:洞悉系统、企业与云计算
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: (布兰登·格雷格) , , ,
2015-08
版次: 1
ISBN: 9787121267925
定价: 128.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 628页
字数: 895千字
正文语种: 简体中文
原版书名: Systems Performance
354人买过
  •   《性能之巅:洞悉系统、企业与云计算》基于Linux 和Solaris 系统阐述了适用于所有系统的性能理论和方法,Brendan Gregg 将业界普遍承认的性能方法、工具和指标收集于本书之中。阅读本书,你能洞悉系统运作的方式,学习到分析和提高系统与应用程序性能的方法,这些性能方法同样适用于大型企业与云计算这类较为复杂的环境的性能分析与调优。   Brendan Gregg,是Joyent公司的首席性能工程师,通过软件栈分析性能和扩展。在Sun Microsystem公司(之后为Oracle)作为首席性能和内核工程师期间,他的工作包括开发ZFS L2ARC,这是一个利用闪速存储器提升性能的文件系统。他还开发了许许多多的性能工具,部分工具收录在Mac OS X和Oracle Solaris 11的发行版中。他最近从事的工作覆盖针对Linux和illumos内核分析的性能可视化。他还是《DTrace》(Prentice Hall出版社,2011年)和《Solaris Performance and Tools》的两书合著者。
      译者介绍:  ·徐章宁,1984年生,毕业于上海交通大学,硕士毕业后一直从事软件运维工作,在云存储与虚拟化领域浸沁多年,现于百度公司担任高级运维工程师,致力于大数据方向运维。钟爱开源软件,平日热爱读书和写作,《算法谜题》《编程格调》合译者。
      ·吴寒思,2010年毕业于南京大学软件学院,目前就职于EMC公司核心技术部从事文件系统研发工作,拥有2项文件系统方面专利。对程序设计、系统存储、云计算和操作系统有浓厚兴趣。
      ·陈磊,1979年生,毕业于同济大学。从事网络、系统和IT管理14年。曾就职于EMC中国卓越研发集团,任实验室经理。目前在互联网金融企业负责基础架构。兴趣广泛,尤其热爱开源软件和其它各类新兴技术的探讨和研究。 第1章 绪论 1
    1.1 系统性能 1
    1.2 人员 2
    1.3 事情 3
    1.4 视角 4
    1.5 性能是充满挑战的 4
    1.5.1 性能是主观的 4
    1.5.2 系统是复杂的 5
    1.5.3 可能有多个问题并存 6
    1.6 延时 6
    1.7 动态跟踪 7
    1.8 云计算 8
    1.9 案例研究 8
    1.9.1 缓慢的磁盘 9
    1.9.2 软件变更 10
    1.9.3 更多阅读 12
    第2章 方法 13
    2.1 术语 14
    2.2 模型 14
    2.2.1 受测系统 15
    2.2.2 排队系统 15
    2.3 概念 16
    2.3.1 延时 16
    2.3.2 时间量级 17
    2.3.3 权衡三角 18
    2.3.4 调整的影响 19
    2.3.5 合适的层级 19
    2.3.6 性能建议的时间点 20
    2.3.7 负载vs.架构 20
    2.3.8 扩展性 21
    2.3.9 已知的未知 22
    2.3.10 指标 23
    2.3.11 使用率 24
    2.3.12 饱和度 25
    2.3.13 剖析 26
    2.3.14 缓存 26
    2.4 视角 28
    2.4.1 资源分析 28
    2.4.2 工作负载分析 29
    2.5 方法 30
    2.5.1 街灯反方法 31
    2.5.2 随机变动反方法 32
    2.5.3 责怪他人反方法 32
    2.5.4 ad hoc核对清单法 33
    2.5.5 问题陈述法 33
    2.5.6 科学法 34
    2.5.7 诊断循环 35
    2.5.8 工具法 35
    2.5.9 USE方法 36
    2.5.10  工作负载特征归纳 42
    2.5.11  向下挖掘分析 43
    2.5.12  延时分析 44
    2.5.13  R方法 45
    2.5.14  事件跟踪 45
    2.5.15  基础线统计 47
    2.5.16  静态性能调整 47
    2.5.17  缓存调优 47
    2.5.18  微基准测试 48
    2.6  建模 49
    2.6.1  企业vs.云 49
    2.6.2  可视化识别 49
    2.6.3  Amdahl扩展定律 51
    2.6.4  通用扩展定律 52
    2.6.5  排队理论 52
    2.7  容量规划 56
    2.7.1  资源极限 56
    2.7.2  因素分析 58
    2.7.3  扩展方案 58
    2.8  统计 59
    2.8.1  量化性能 59
    2.8.2  平均值 60
    2.8.3  标准方差、百分位数、中位数 61
    2.8.4  变异系数 62
    2.8.5  多重模态分布 62
    2.8.6  异常值 63
    2.9  监视 63
    2.9.1  基于时间的规律 63
    2.9.2  监测产品 65
    2.9.3  启动以来的信息统计 65
    2.10  可视化 65
    2.10.1  线图 65
    2.10.2  散点图 66
    2.10.3  热图 67
    2.10.4  表面图 68
    2.10.5  可视化工具 69
    2.11  练习 70
    2.12  参考 70
    第3章 操作系统 72
    3.1 术语 72
    3.2  背景 73
    3.2.1  内核 73
    3.2.2 栈 76
    3.2.2  中断和中断线程 77
    3.2.4  中断优先级 78
    3.2.5  进程 78
    3.2.6  系统调用 80
    3.2.7  虚拟内存 82
    3.2.8  内存管理 82
    3.2.9  调度器 83
    3.2.10  文件系统 84
    3.2.11  缓存 86
    3.2.12  网络 87
    3.2.13  设备驱动 87
    3.2.14  多处理器 87
    3.2.15  抢占 88
    3.2.16  资源管理 88
    3.2.17  观测性 89
    3.3  内核 89
    3.3.1  UNIX 90
    3.3.2  基于Solaris 90
    3.3.3  基于Linux 93
    3.3.4  差异 95
    3.4 练习 96
    3.5  参考 96
    第4章 观测工具 98
    4.1 工具类型 98
    4.1.1  计数器 99
    4.1.2  跟踪 100
    4.1.3  剖析 101
    4.1.4  监视(sar) 102
    4.2  观测来源 103
    4.2.1  /proc 103
    4.2.2  /sys 108
    4.2.3  kstat 109
    4.2.4  延时核算 111
    4.2.5  微状态核算 112
    4.2.6  其他的观测源 112
    4.3  DTrace 114
    4.3.1 静态和动态跟踪 115
    4.3.2  探针 116
    4.3.3  provider 116
    4.3.4  参数 117
    4.3.5  D语言 117
    4.3.6  内置变量 118
    4.3.7  action 118
    4.3.8  变量类型 119
    4.3.9  单行命令 121
    4.3.10  脚本 121
    4.3.11  开销 122
    4.3.12  文档和资源 123
    4.4  SystemTap 124
    4.4.1  探针 124
    4.4.2 tapset 125
    4.4.3 action和内置变量 125
    4.4.4 示例 125
    4.4.5  开销 127
    4.4.6  文档和资源 128
    4.5  perf 128
    4.6  观测工具的观测 129
    4.7  练习 130
    4.8  参考 130
    第5章 应用程序 131
    5.1  应用程序基础 131
    5.1.1  目标 132
    5.1.2  常见情况的优化 133
    5.1.3  观测性 134
    5.1.4  大O标记法 134
    5.2  应用程序性能技术 135
    5.2.1  选择I/O尺寸 135
    5.2.2  缓存 136
    5.2.3  缓冲区 136
    5.2.4  轮询 136
    5.2.5  并发和并行 137
    5.2.6  非阻塞I/O 139
    5.2.7  处理器绑定 139
    5.3  编程语言 140
    5.3.1  编译语言 140
    5.3.2  解释语言 141
    5.3.3  虚拟机 142
    5.3.4  垃圾回收 142
    5.4  方法和分析 143
    5.4.1  线程状态分析 143
    5.4.2  CPU剖析 146
    5.4.3  系统调用分析 148
    5.4.4  I/O剖析 154
    5.4.5  工作负载特征归纳 155
    5.4.6  USE方法 155
    5.4.7  向下挖掘法 156
    5.4.8  锁分析 156
    5.4.9  静态性能调优 159
    5.5  练习 160
    5.6  参考 161
    第6章 CPU 162
    6.1  术语 163
    6.2  模型 163
    6.2.1  CPU架构 163
    6.2.2  CPU内存缓存 164
    6.2.3  CPU运行队列 165
    6.3  概念 165
    6.3.1  时钟频率 165
    6.3.2  指令 166
    6.3.3  指令流水线 166
    6.3.4  指令宽度 167
    6.3.5  CPI,IPC 167
    6.3.6  使用率 167
    6.3.7  用户时间/内核时间 168
    6.3.8  饱和度 168
    6.3.9  抢占 168
    6.3.10  优先级反转 169
    6.3.11  多进程,多线程 169
    6.3.12  字长 170
    6.3.13  编译器优化 171
    6.4  架构 171
    6.4.1  硬件 171
    6.4.2  软件 179
    6.5  方法 184
    6.5.1  工具法 184
    6.5.2  USE方法 185
    6.5.3  负载特征归纳 186
    6.5.4  剖析 187
    6.5.5  周期分析 188
    6.5.6  性能监控 189
    6.5.7  静态性能调优 189
    6.5.8  优先级调优 189
    6.5.9  资源控制 190
    6.5.10  CPU绑定 190
    6.5.11  微型基准测试 191
    6.5.12  扩展 191
    6.6  分析 192
    6.6.1  uptime 192
    6.6.2  vmstat 194
    6.6.3  mpstat 195
    6.6.4  sar 197
    6.6.5  ps 198
    6.6.6  top 199
    6.6.7  prstat 200
    6.6.8  pidstat 201
    6.6.9  time和ptime 202
    6.6.10  DTrace 203
    6.5.11  SystemTap 209
    6.6.12  perf 209
    6.6.13  cpustat 215
    6.6.14  其他工具 216
    6.6.15  可视化 216
    6.7  实验 219
    6.7.1  Ad Hoc 219
    6.7.2  SysBench 220
    6.8  调优 220
    6.8.1  编译器选项 221
    6.8.2  调度优先级和调度类 221
    6.8.3  调度器选项 221
    6.8.4  进程绑定 223
    6.8.5  独占CPU组 224
    6.8.6  资源控制 224
    6.8.7  处理器选项(BIOS调优) 224
    6.9  练习 225
    6.10  参考资料 226
    第7章 内存 228
    7.1  术语 229
    7.2  概念 229
    7.2.1  虚拟内存 230
    7.2.2  换页 230
    7.2.3  按需换页 231
    7.2.4  过度提交 233
    7.2.5  交换 233
    7.2.6  文件系统缓存占用 233
    7.2.7  使用率和饱和度 234
    7.2.8  分配器 234
    7.2.9  字长 234
    7.3  架构 234
    7.3.1  硬件 235
    7.3.2  软件 239
    7.3.3  进程地址空间 244
    7.4  方法 248
    7.4.1  工具法 249
    7.4.2  USE方法 249
    7.4.3  使用特征归纳 250
    7.4.4  周期分析 251
    7.4.5  性能监测 251
    7.4.6  泄漏检测 252
    7.4.7  静态性能调优 252
    7.4.8  资源控制 253
    7.4.9  微基准测试 253
    7.5  分析 253
    7.5.1  vmstat 254
    7.5.2  sar 256
    7.5.3  slabtop 259
    7.5.4  ::kmstat 260
    7.5.5  ps 261
    7.5.6  top 262
    7.5.7  prstat 263
    7.5.8  pmap 264
    7.5.9  DTrace 265
    7.5.10  SystemTap 269
    7.5.11  其他工具 269
    7.6  调优 270
    7.6.1 可调参数 271
    7.6.2  多个页面大小 273
    7.6.3  分配器 274
    7.6.4  资源控制 274
    7.7  练习 274
    7.8  参考资料 276
    第8章 文件系统 278
    8.1 术语 279
    8.2 模型 279
    8.2.1 文件系统接口 279
    8.2.2  文件系统缓存 280
    8.2.3  二级缓存 281
    8.3  概念 281
    8.3.1  文件系统延时 281
    8.3.2  缓存 282
    8.3.3  随机与顺序I/O 282
    8.3.4  预取 283
    8.3.5  预读 284
    8.3.6  写回缓存 284
    8.3.7  同步写 284
    8.3.8  裸I/O和直接I/O 285
    8.3.9  非阻塞I/O 285
    8.3.10  内存映射文件 286
    8.3.11  元数据 286
    8.3.12  逻辑I/O vs.物理I/O 287
    8.3.13  操作并非不平等 288
    8.3.14  特殊文件系统 289
    8.3.15  访问时间戳 289
    8.3.16  容量 289
    8.4  架构 290
    8.4.1  文件系统I/O栈 290
    8.4.2  VFS 291
    8.4.3  文件系统缓存 291
    8.4.4  文件系统特性 296
    8.4.5  文件系统种类 297
    8.4.6  卷和池 302
    8.5  方法 303
    8.5.1  磁盘分析 304
    8.5.2  延时分析 304
    8.5.3  负载特征归纳 306
    8.5.4  性能监控 308
    8.5.5  事件跟踪 308
    8.5.6  静态性能调优 309
    8.5.7  缓存调优 310
    8.5.8  负载分离 310
    8.5.9  内存文件系统 310
    8.5.10  微型基准测试 310
    8.6  分析 312
    8.6.1  vfsstat 312
    8.6.2  fsstat 313
    8.6.3  strace、truss 314
    8.6.4  DTrace 314
    8.6.5  SystemTap 323
    8.6.6  LatencyTOP 323
    8.6.7  free 324
    8.6.8  top 324
    8.6.9  vmstat 324
    8.6.10  sar 325
    8.6.11  slabtop 326
    8.6.12  mdb ::kmastat 327
    8.6.13  fcachestat 327
    8.6.14  /proc/meminfo 328
    8.6.15  mdb ::memstat 328
    8.6.16  kstat 329
    8.6.17  其他工具 330
    8.6.18  可视化 331
    8.7  实验 331
    8.7.1  Ad Hoc 332
    8.7.2  微型基准测试工具 332
    8.7.3  缓存写回 334
    8.8  调优 334
    8.8.1  应用程序调用 335
    8.8.2  ext3 336
    8.8.3  ZFS 336
    8.9  练习 338
    8.10  参考资料 339
    第9章 磁盘 341
    9.1  术语 342
    9.2  模型 342
    9.2.1  简单磁盘 342
    9.2.2  缓存磁盘 343
    9.2.3  控制器 344
    9.3  概念 344
    9.3.1  测量时间 344
    9.3.2  时间尺度 346
    9.3.3  缓存 347
    9.3.4  随机 vs 连续I/O 347
    9.3.5  读/写比 348
    9.3.6  I/O大小 348
    9.3.7  IOPS并不平等 349
    9.3.8  非数据传输磁盘命令 349
    9.3.9  使用率 349
    9.3.10  饱和度 350
    9.3.11  I/O等待 350
    9.3.12  同步 vs 异步 351
    9.3.13  磁盘 vs 应用程序I/O 351
    9.4  架构 352
    9.4.1  磁盘类型 352
    9.4.2  接口 357
    9.4.3  存储类型 358
    9.4.4  操作系统磁盘I/O栈 360
    9.5  方法 363
    9.5.1  工具法 364
    9.5.2  USE方法 364
    9.5.3  性能监控 365
    9.5.4  负载特征归纳 366
    9.5.5  延时分析 367
    9.5.6  事件跟踪 368
    9.5.7  静态性能调优 369
    9.5.8  缓存调优 370
    9.5.9  资源控制 370
    9.5.10  微基准测试 370
    9.5.11  伸缩 371
    9.6  分析 372
    9.6.1  iostat 373
    9.6.2  sar 380
    9.6.3  pidstat 381
    9.6.4  DTrace 382
    9.6.5  SystemTap 390
    9.6.6  perf 390
    9.6.7  iotop 391
    9.6.8  iosnoop 393
    9.6.9  blktrace 396
    9.6.10  MegaCli 397
    9.6.11  smartctl 398
    9.6.12  可视化 399
    9.7  实验 402
    9.7.1  Ad Hoc 402
    9.7.2  自定义负载生成器 403
    9.7.3  微基准测试工具 403
    9.7.4  随机读示例 403
    9.8  调优 404
    9.8.1  操作系统可调参数 404
    9.8.2  磁盘设备可调参数 406
    9.8.3  磁盘控制器可调参数 406
    9.9  练习 407
    9.10  参考资料 408
    第10章 网络 410
    10.1 术语 411
    10.2 模型 411
    10.2.1 网络接口 411
    10.2.2 控制器 412
    10.2.3 协议栈 412
    10.3 概念 413
    10.3.1 网络和路由 413
    10.3.2 协议 414
    10.3.3 封装 414
    10.3.4 包长度 414
    10.3.5 延时 415
    10.3.6 缓冲 417
    10.3.7 连接积压队列 417
    10.3.8 接口协商 417
    10.3.9 使用率 418
    10.3.10 本地连接 418
    10.4 架构 418
    10.4.1 协议 418
    10.4.2  硬件 421
    10.4.3  软件 423
    10.5  方法 427
    10.5.1  工具法 428
    10.5.2  USE方法 428
    10.5.3  工作负载特征归纳 429
    10.5.4  延时分析 430
    10.5.5  性能监测 431
    10.5.6  数据包嗅探 431
    10.5.7  TCP分析 432
    10.5.8 挖掘分析 433
    10.5.9 静态性能调优 433
    10.5.10 资源控制 434
    10.5.11  微基准测试 434
    10.6  分析 435
    10.6.1  netstat 435
    10.6.2  sar 440
    10.6.3  ifconfig 442
    10.6.4  ip 443
    10.6.5  nicstat 443
    10.6.6  dladm 444
    10.6.7  ping 445
    10.6.8  traceroute 445
    10.6.9  pathchar 446
    10.6.10 tcpdump 446
    10.6.11  snoop 447
    10.6.12  Wireshark 450
    10.6.13  DTrace 450
    10.6.14  SystemTap 461
    10.6.15  perf 461
    10.6.16  其他工具 462
    10.7  实验 463
    10.7.1  iperf 463
    10.8  调优 464
    10.8.1  Linux 465
    10.8.2  Solaris 467
    10.8.3  配置 469
    10.9  练习 470
    10.10  参考 471
    第11章 云计算 473
    11.1  背景 474
    11.1.1  性价比 474
    11.1.2  可扩展的架构 474
    11.1.3  容量规划 475
    11.1.4  存储 477
    11.1.5  多租户 477
    11.2  OS虚拟化 478
    11.2.1  系统开销 479
    11.2.2  资源控制 481
    11.2.3  可观测性 484
    11.3  硬件虚拟化 489
    11.3.1  系统开销 490
    11.3.2  资源控制 495
    11.3.3  可观测性 498
    11.4  比较 503
    11.5  练习 505
    11.6  参考资料 506
    第12章 基准测试 508
    12.1  背景 508
    12.1.1  事情 509
    12.1.2  有效的基准测试 509
    12.1.3  基准测试之罪 511
    12.2  基准测试的类型 516
    12.2.1 微基准测试 517
    12.2.2  模拟 518
    12.2.3  回放 519
    12.2.4  行业标准 519
    12.3  方法 521
    12.3.1  被动基准测试 521
    12.3.2  主动基准测试 522
    12.3.3  CPU剖析 524
    12.3.4  USE方法 525
    12.3.5  工作负载特征归纳 526
    12.3.6  自定义基准测试 526
    12.3.7  逐渐增加负载 526
    12.3.8  完整性检查 528
    12.3.9  统计分析 529
    12.4  基准测试问题 530
    12.5  练习 531
    12.6  参考 532
    第13章 案例研究 534
    13.1  案例研究:红鲸 534
    13.1.1  问题陈述 535
    13.1.2  支持 536
    13.1.3  上手 537
    13.1.4  选择征途 538
    13.1.5  USE方法 539
    13.1.6  我们做完了吗 542
    13.1.7  二度出击 542
    13.1.8  基础 543
    13.1.9  忽略红鲸 544
    13.1.10  审问内核 545
    13.1.11  为什么 546
    13.1.12  尾声 548
    13.2  结语 548
    13.3  附加信息 549
    13.4  参考 549
    附录A USE法:Linux 551
    附录B USE法:Solaris 556
    附录C sar 总结 561
    附录D DTrace单行命令 563
    附录E 从DTrace到SystemTap 573
    附录F 精选练习题答案 582
    附录G 系统性能名人录 585
  • 内容简介:
      《性能之巅:洞悉系统、企业与云计算》基于Linux 和Solaris 系统阐述了适用于所有系统的性能理论和方法,Brendan Gregg 将业界普遍承认的性能方法、工具和指标收集于本书之中。阅读本书,你能洞悉系统运作的方式,学习到分析和提高系统与应用程序性能的方法,这些性能方法同样适用于大型企业与云计算这类较为复杂的环境的性能分析与调优。
  • 作者简介:
      Brendan Gregg,是Joyent公司的首席性能工程师,通过软件栈分析性能和扩展。在Sun Microsystem公司(之后为Oracle)作为首席性能和内核工程师期间,他的工作包括开发ZFS L2ARC,这是一个利用闪速存储器提升性能的文件系统。他还开发了许许多多的性能工具,部分工具收录在Mac OS X和Oracle Solaris 11的发行版中。他最近从事的工作覆盖针对Linux和illumos内核分析的性能可视化。他还是《DTrace》(Prentice Hall出版社,2011年)和《Solaris Performance and Tools》的两书合著者。
      译者介绍:  ·徐章宁,1984年生,毕业于上海交通大学,硕士毕业后一直从事软件运维工作,在云存储与虚拟化领域浸沁多年,现于百度公司担任高级运维工程师,致力于大数据方向运维。钟爱开源软件,平日热爱读书和写作,《算法谜题》《编程格调》合译者。
      ·吴寒思,2010年毕业于南京大学软件学院,目前就职于EMC公司核心技术部从事文件系统研发工作,拥有2项文件系统方面专利。对程序设计、系统存储、云计算和操作系统有浓厚兴趣。
      ·陈磊,1979年生,毕业于同济大学。从事网络、系统和IT管理14年。曾就职于EMC中国卓越研发集团,任实验室经理。目前在互联网金融企业负责基础架构。兴趣广泛,尤其热爱开源软件和其它各类新兴技术的探讨和研究。
  • 目录:
    第1章 绪论 1
    1.1 系统性能 1
    1.2 人员 2
    1.3 事情 3
    1.4 视角 4
    1.5 性能是充满挑战的 4
    1.5.1 性能是主观的 4
    1.5.2 系统是复杂的 5
    1.5.3 可能有多个问题并存 6
    1.6 延时 6
    1.7 动态跟踪 7
    1.8 云计算 8
    1.9 案例研究 8
    1.9.1 缓慢的磁盘 9
    1.9.2 软件变更 10
    1.9.3 更多阅读 12
    第2章 方法 13
    2.1 术语 14
    2.2 模型 14
    2.2.1 受测系统 15
    2.2.2 排队系统 15
    2.3 概念 16
    2.3.1 延时 16
    2.3.2 时间量级 17
    2.3.3 权衡三角 18
    2.3.4 调整的影响 19
    2.3.5 合适的层级 19
    2.3.6 性能建议的时间点 20
    2.3.7 负载vs.架构 20
    2.3.8 扩展性 21
    2.3.9 已知的未知 22
    2.3.10 指标 23
    2.3.11 使用率 24
    2.3.12 饱和度 25
    2.3.13 剖析 26
    2.3.14 缓存 26
    2.4 视角 28
    2.4.1 资源分析 28
    2.4.2 工作负载分析 29
    2.5 方法 30
    2.5.1 街灯反方法 31
    2.5.2 随机变动反方法 32
    2.5.3 责怪他人反方法 32
    2.5.4 ad hoc核对清单法 33
    2.5.5 问题陈述法 33
    2.5.6 科学法 34
    2.5.7 诊断循环 35
    2.5.8 工具法 35
    2.5.9 USE方法 36
    2.5.10  工作负载特征归纳 42
    2.5.11  向下挖掘分析 43
    2.5.12  延时分析 44
    2.5.13  R方法 45
    2.5.14  事件跟踪 45
    2.5.15  基础线统计 47
    2.5.16  静态性能调整 47
    2.5.17  缓存调优 47
    2.5.18  微基准测试 48
    2.6  建模 49
    2.6.1  企业vs.云 49
    2.6.2  可视化识别 49
    2.6.3  Amdahl扩展定律 51
    2.6.4  通用扩展定律 52
    2.6.5  排队理论 52
    2.7  容量规划 56
    2.7.1  资源极限 56
    2.7.2  因素分析 58
    2.7.3  扩展方案 58
    2.8  统计 59
    2.8.1  量化性能 59
    2.8.2  平均值 60
    2.8.3  标准方差、百分位数、中位数 61
    2.8.4  变异系数 62
    2.8.5  多重模态分布 62
    2.8.6  异常值 63
    2.9  监视 63
    2.9.1  基于时间的规律 63
    2.9.2  监测产品 65
    2.9.3  启动以来的信息统计 65
    2.10  可视化 65
    2.10.1  线图 65
    2.10.2  散点图 66
    2.10.3  热图 67
    2.10.4  表面图 68
    2.10.5  可视化工具 69
    2.11  练习 70
    2.12  参考 70
    第3章 操作系统 72
    3.1 术语 72
    3.2  背景 73
    3.2.1  内核 73
    3.2.2 栈 76
    3.2.2  中断和中断线程 77
    3.2.4  中断优先级 78
    3.2.5  进程 78
    3.2.6  系统调用 80
    3.2.7  虚拟内存 82
    3.2.8  内存管理 82
    3.2.9  调度器 83
    3.2.10  文件系统 84
    3.2.11  缓存 86
    3.2.12  网络 87
    3.2.13  设备驱动 87
    3.2.14  多处理器 87
    3.2.15  抢占 88
    3.2.16  资源管理 88
    3.2.17  观测性 89
    3.3  内核 89
    3.3.1  UNIX 90
    3.3.2  基于Solaris 90
    3.3.3  基于Linux 93
    3.3.4  差异 95
    3.4 练习 96
    3.5  参考 96
    第4章 观测工具 98
    4.1 工具类型 98
    4.1.1  计数器 99
    4.1.2  跟踪 100
    4.1.3  剖析 101
    4.1.4  监视(sar) 102
    4.2  观测来源 103
    4.2.1  /proc 103
    4.2.2  /sys 108
    4.2.3  kstat 109
    4.2.4  延时核算 111
    4.2.5  微状态核算 112
    4.2.6  其他的观测源 112
    4.3  DTrace 114
    4.3.1 静态和动态跟踪 115
    4.3.2  探针 116
    4.3.3  provider 116
    4.3.4  参数 117
    4.3.5  D语言 117
    4.3.6  内置变量 118
    4.3.7  action 118
    4.3.8  变量类型 119
    4.3.9  单行命令 121
    4.3.10  脚本 121
    4.3.11  开销 122
    4.3.12  文档和资源 123
    4.4  SystemTap 124
    4.4.1  探针 124
    4.4.2 tapset 125
    4.4.3 action和内置变量 125
    4.4.4 示例 125
    4.4.5  开销 127
    4.4.6  文档和资源 128
    4.5  perf 128
    4.6  观测工具的观测 129
    4.7  练习 130
    4.8  参考 130
    第5章 应用程序 131
    5.1  应用程序基础 131
    5.1.1  目标 132
    5.1.2  常见情况的优化 133
    5.1.3  观测性 134
    5.1.4  大O标记法 134
    5.2  应用程序性能技术 135
    5.2.1  选择I/O尺寸 135
    5.2.2  缓存 136
    5.2.3  缓冲区 136
    5.2.4  轮询 136
    5.2.5  并发和并行 137
    5.2.6  非阻塞I/O 139
    5.2.7  处理器绑定 139
    5.3  编程语言 140
    5.3.1  编译语言 140
    5.3.2  解释语言 141
    5.3.3  虚拟机 142
    5.3.4  垃圾回收 142
    5.4  方法和分析 143
    5.4.1  线程状态分析 143
    5.4.2  CPU剖析 146
    5.4.3  系统调用分析 148
    5.4.4  I/O剖析 154
    5.4.5  工作负载特征归纳 155
    5.4.6  USE方法 155
    5.4.7  向下挖掘法 156
    5.4.8  锁分析 156
    5.4.9  静态性能调优 159
    5.5  练习 160
    5.6  参考 161
    第6章 CPU 162
    6.1  术语 163
    6.2  模型 163
    6.2.1  CPU架构 163
    6.2.2  CPU内存缓存 164
    6.2.3  CPU运行队列 165
    6.3  概念 165
    6.3.1  时钟频率 165
    6.3.2  指令 166
    6.3.3  指令流水线 166
    6.3.4  指令宽度 167
    6.3.5  CPI,IPC 167
    6.3.6  使用率 167
    6.3.7  用户时间/内核时间 168
    6.3.8  饱和度 168
    6.3.9  抢占 168
    6.3.10  优先级反转 169
    6.3.11  多进程,多线程 169
    6.3.12  字长 170
    6.3.13  编译器优化 171
    6.4  架构 171
    6.4.1  硬件 171
    6.4.2  软件 179
    6.5  方法 184
    6.5.1  工具法 184
    6.5.2  USE方法 185
    6.5.3  负载特征归纳 186
    6.5.4  剖析 187
    6.5.5  周期分析 188
    6.5.6  性能监控 189
    6.5.7  静态性能调优 189
    6.5.8  优先级调优 189
    6.5.9  资源控制 190
    6.5.10  CPU绑定 190
    6.5.11  微型基准测试 191
    6.5.12  扩展 191
    6.6  分析 192
    6.6.1  uptime 192
    6.6.2  vmstat 194
    6.6.3  mpstat 195
    6.6.4  sar 197
    6.6.5  ps 198
    6.6.6  top 199
    6.6.7  prstat 200
    6.6.8  pidstat 201
    6.6.9  time和ptime 202
    6.6.10  DTrace 203
    6.5.11  SystemTap 209
    6.6.12  perf 209
    6.6.13  cpustat 215
    6.6.14  其他工具 216
    6.6.15  可视化 216
    6.7  实验 219
    6.7.1  Ad Hoc 219
    6.7.2  SysBench 220
    6.8  调优 220
    6.8.1  编译器选项 221
    6.8.2  调度优先级和调度类 221
    6.8.3  调度器选项 221
    6.8.4  进程绑定 223
    6.8.5  独占CPU组 224
    6.8.6  资源控制 224
    6.8.7  处理器选项(BIOS调优) 224
    6.9  练习 225
    6.10  参考资料 226
    第7章 内存 228
    7.1  术语 229
    7.2  概念 229
    7.2.1  虚拟内存 230
    7.2.2  换页 230
    7.2.3  按需换页 231
    7.2.4  过度提交 233
    7.2.5  交换 233
    7.2.6  文件系统缓存占用 233
    7.2.7  使用率和饱和度 234
    7.2.8  分配器 234
    7.2.9  字长 234
    7.3  架构 234
    7.3.1  硬件 235
    7.3.2  软件 239
    7.3.3  进程地址空间 244
    7.4  方法 248
    7.4.1  工具法 249
    7.4.2  USE方法 249
    7.4.3  使用特征归纳 250
    7.4.4  周期分析 251
    7.4.5  性能监测 251
    7.4.6  泄漏检测 252
    7.4.7  静态性能调优 252
    7.4.8  资源控制 253
    7.4.9  微基准测试 253
    7.5  分析 253
    7.5.1  vmstat 254
    7.5.2  sar 256
    7.5.3  slabtop 259
    7.5.4  ::kmstat 260
    7.5.5  ps 261
    7.5.6  top 262
    7.5.7  prstat 263
    7.5.8  pmap 264
    7.5.9  DTrace 265
    7.5.10  SystemTap 269
    7.5.11  其他工具 269
    7.6  调优 270
    7.6.1 可调参数 271
    7.6.2  多个页面大小 273
    7.6.3  分配器 274
    7.6.4  资源控制 274
    7.7  练习 274
    7.8  参考资料 276
    第8章 文件系统 278
    8.1 术语 279
    8.2 模型 279
    8.2.1 文件系统接口 279
    8.2.2  文件系统缓存 280
    8.2.3  二级缓存 281
    8.3  概念 281
    8.3.1  文件系统延时 281
    8.3.2  缓存 282
    8.3.3  随机与顺序I/O 282
    8.3.4  预取 283
    8.3.5  预读 284
    8.3.6  写回缓存 284
    8.3.7  同步写 284
    8.3.8  裸I/O和直接I/O 285
    8.3.9  非阻塞I/O 285
    8.3.10  内存映射文件 286
    8.3.11  元数据 286
    8.3.12  逻辑I/O vs.物理I/O 287
    8.3.13  操作并非不平等 288
    8.3.14  特殊文件系统 289
    8.3.15  访问时间戳 289
    8.3.16  容量 289
    8.4  架构 290
    8.4.1  文件系统I/O栈 290
    8.4.2  VFS 291
    8.4.3  文件系统缓存 291
    8.4.4  文件系统特性 296
    8.4.5  文件系统种类 297
    8.4.6  卷和池 302
    8.5  方法 303
    8.5.1  磁盘分析 304
    8.5.2  延时分析 304
    8.5.3  负载特征归纳 306
    8.5.4  性能监控 308
    8.5.5  事件跟踪 308
    8.5.6  静态性能调优 309
    8.5.7  缓存调优 310
    8.5.8  负载分离 310
    8.5.9  内存文件系统 310
    8.5.10  微型基准测试 310
    8.6  分析 312
    8.6.1  vfsstat 312
    8.6.2  fsstat 313
    8.6.3  strace、truss 314
    8.6.4  DTrace 314
    8.6.5  SystemTap 323
    8.6.6  LatencyTOP 323
    8.6.7  free 324
    8.6.8  top 324
    8.6.9  vmstat 324
    8.6.10  sar 325
    8.6.11  slabtop 326
    8.6.12  mdb ::kmastat 327
    8.6.13  fcachestat 327
    8.6.14  /proc/meminfo 328
    8.6.15  mdb ::memstat 328
    8.6.16  kstat 329
    8.6.17  其他工具 330
    8.6.18  可视化 331
    8.7  实验 331
    8.7.1  Ad Hoc 332
    8.7.2  微型基准测试工具 332
    8.7.3  缓存写回 334
    8.8  调优 334
    8.8.1  应用程序调用 335
    8.8.2  ext3 336
    8.8.3  ZFS 336
    8.9  练习 338
    8.10  参考资料 339
    第9章 磁盘 341
    9.1  术语 342
    9.2  模型 342
    9.2.1  简单磁盘 342
    9.2.2  缓存磁盘 343
    9.2.3  控制器 344
    9.3  概念 344
    9.3.1  测量时间 344
    9.3.2  时间尺度 346
    9.3.3  缓存 347
    9.3.4  随机 vs 连续I/O 347
    9.3.5  读/写比 348
    9.3.6  I/O大小 348
    9.3.7  IOPS并不平等 349
    9.3.8  非数据传输磁盘命令 349
    9.3.9  使用率 349
    9.3.10  饱和度 350
    9.3.11  I/O等待 350
    9.3.12  同步 vs 异步 351
    9.3.13  磁盘 vs 应用程序I/O 351
    9.4  架构 352
    9.4.1  磁盘类型 352
    9.4.2  接口 357
    9.4.3  存储类型 358
    9.4.4  操作系统磁盘I/O栈 360
    9.5  方法 363
    9.5.1  工具法 364
    9.5.2  USE方法 364
    9.5.3  性能监控 365
    9.5.4  负载特征归纳 366
    9.5.5  延时分析 367
    9.5.6  事件跟踪 368
    9.5.7  静态性能调优 369
    9.5.8  缓存调优 370
    9.5.9  资源控制 370
    9.5.10  微基准测试 370
    9.5.11  伸缩 371
    9.6  分析 372
    9.6.1  iostat 373
    9.6.2  sar 380
    9.6.3  pidstat 381
    9.6.4  DTrace 382
    9.6.5  SystemTap 390
    9.6.6  perf 390
    9.6.7  iotop 391
    9.6.8  iosnoop 393
    9.6.9  blktrace 396
    9.6.10  MegaCli 397
    9.6.11  smartctl 398
    9.6.12  可视化 399
    9.7  实验 402
    9.7.1  Ad Hoc 402
    9.7.2  自定义负载生成器 403
    9.7.3  微基准测试工具 403
    9.7.4  随机读示例 403
    9.8  调优 404
    9.8.1  操作系统可调参数 404
    9.8.2  磁盘设备可调参数 406
    9.8.3  磁盘控制器可调参数 406
    9.9  练习 407
    9.10  参考资料 408
    第10章 网络 410
    10.1 术语 411
    10.2 模型 411
    10.2.1 网络接口 411
    10.2.2 控制器 412
    10.2.3 协议栈 412
    10.3 概念 413
    10.3.1 网络和路由 413
    10.3.2 协议 414
    10.3.3 封装 414
    10.3.4 包长度 414
    10.3.5 延时 415
    10.3.6 缓冲 417
    10.3.7 连接积压队列 417
    10.3.8 接口协商 417
    10.3.9 使用率 418
    10.3.10 本地连接 418
    10.4 架构 418
    10.4.1 协议 418
    10.4.2  硬件 421
    10.4.3  软件 423
    10.5  方法 427
    10.5.1  工具法 428
    10.5.2  USE方法 428
    10.5.3  工作负载特征归纳 429
    10.5.4  延时分析 430
    10.5.5  性能监测 431
    10.5.6  数据包嗅探 431
    10.5.7  TCP分析 432
    10.5.8 挖掘分析 433
    10.5.9 静态性能调优 433
    10.5.10 资源控制 434
    10.5.11  微基准测试 434
    10.6  分析 435
    10.6.1  netstat 435
    10.6.2  sar 440
    10.6.3  ifconfig 442
    10.6.4  ip 443
    10.6.5  nicstat 443
    10.6.6  dladm 444
    10.6.7  ping 445
    10.6.8  traceroute 445
    10.6.9  pathchar 446
    10.6.10 tcpdump 446
    10.6.11  snoop 447
    10.6.12  Wireshark 450
    10.6.13  DTrace 450
    10.6.14  SystemTap 461
    10.6.15  perf 461
    10.6.16  其他工具 462
    10.7  实验 463
    10.7.1  iperf 463
    10.8  调优 464
    10.8.1  Linux 465
    10.8.2  Solaris 467
    10.8.3  配置 469
    10.9  练习 470
    10.10  参考 471
    第11章 云计算 473
    11.1  背景 474
    11.1.1  性价比 474
    11.1.2  可扩展的架构 474
    11.1.3  容量规划 475
    11.1.4  存储 477
    11.1.5  多租户 477
    11.2  OS虚拟化 478
    11.2.1  系统开销 479
    11.2.2  资源控制 481
    11.2.3  可观测性 484
    11.3  硬件虚拟化 489
    11.3.1  系统开销 490
    11.3.2  资源控制 495
    11.3.3  可观测性 498
    11.4  比较 503
    11.5  练习 505
    11.6  参考资料 506
    第12章 基准测试 508
    12.1  背景 508
    12.1.1  事情 509
    12.1.2  有效的基准测试 509
    12.1.3  基准测试之罪 511
    12.2  基准测试的类型 516
    12.2.1 微基准测试 517
    12.2.2  模拟 518
    12.2.3  回放 519
    12.2.4  行业标准 519
    12.3  方法 521
    12.3.1  被动基准测试 521
    12.3.2  主动基准测试 522
    12.3.3  CPU剖析 524
    12.3.4  USE方法 525
    12.3.5  工作负载特征归纳 526
    12.3.6  自定义基准测试 526
    12.3.7  逐渐增加负载 526
    12.3.8  完整性检查 528
    12.3.9  统计分析 529
    12.4  基准测试问题 530
    12.5  练习 531
    12.6  参考 532
    第13章 案例研究 534
    13.1  案例研究:红鲸 534
    13.1.1  问题陈述 535
    13.1.2  支持 536
    13.1.3  上手 537
    13.1.4  选择征途 538
    13.1.5  USE方法 539
    13.1.6  我们做完了吗 542
    13.1.7  二度出击 542
    13.1.8  基础 543
    13.1.9  忽略红鲸 544
    13.1.10  审问内核 545
    13.1.11  为什么 546
    13.1.12  尾声 548
    13.2  结语 548
    13.3  附加信息 549
    13.4  参考 549
    附录A USE法:Linux 551
    附录B USE法:Solaris 556
    附录C sar 总结 561
    附录D DTrace单行命令 563
    附录E 从DTrace到SystemTap 573
    附录F 精选练习题答案 582
    附录G 系统性能名人录 585
查看详情
其他版本 / 全部 (1)
相关图书 / 更多
性能之巅:洞悉系统、企业与云计算
性能测试从零开始:LoadRunner入门与提升
柳胜 著
性能之巅:洞悉系统、企业与云计算
性能之巅(第2版):系统、企业与云可观测性
[美]Brendan Gregg
性能之巅:洞悉系统、企业与云计算
性能之巅:洞悉系统、企业与云计算(第2版)(英文版)
[美]布兰登·格雷格
性能之巅:洞悉系统、企业与云计算
性能测试从零开始:LoadRunner入门
柳胜 著;51Testing软件测试网组 编
性能之巅:洞悉系统、企业与云计算
性能试验分册
中国华电集团公司 编
性能之巅:洞悉系统、企业与云计算
性能测试进阶指南:LoadRunner 9.1实战
陈霁、牛霜霞、龚永鑫 著;51Testing软件测试网 编
性能之巅:洞悉系统、企业与云计算
性能测试进阶指南:LoadRunner 11实战
陈霁 著;51Testing软件测试网 编
性能之巅:洞悉系统、企业与云计算
性能测试进阶指南——LoadRunner 11实战(第2版)
陈霁、李锋、王臣钧 著;51Testing 软件测试网 编
您可能感兴趣 / 更多
性能之巅:洞悉系统、企业与云计算
呼吸04:珍惜吧,日常的光
Breathe编辑部
性能之巅:洞悉系统、企业与云计算
时间管理:快速提升孩子的自主学习力(不拖拉不磨蹭:7步提升孩子的时间管控力)
Brent
性能之巅:洞悉系统、企业与云计算
呼吸我的孤独是一座花园
Breathe编辑部 著;Breathe编辑部 编;马楠 译
性能之巅:洞悉系统、企业与云计算
R语言机器学习 第3版(影印版)
Brett Lantz 著
性能之巅:洞悉系统、企业与云计算
用看板管理敏捷项目:提升效率、可预测性、质量和价值的利器
Brechner 著;[美]Eric、许峰 译
性能之巅:洞悉系统、企业与云计算
管理Kubernetes
Brendan、Burns、Craig、Tracey 著
性能之巅:洞悉系统、企业与云计算
如何成为学霸(提炼学习类书籍精髓,解决学习中的各种疑难杂症)
Bremer 著;罗德·布雷默、Rod、李利莎 译
性能之巅:洞悉系统、企业与云计算
Seven Sketches in Compositionality:An Invitation to Applied Category Theory
Brendan Fong;David I. Spivak
性能之巅:洞悉系统、企业与云计算
TheVeryHungryCaterpillar好饿的毛毛虫
Brenda A. Van Dixhorn 著
性能之巅:洞悉系统、企业与云计算
Tenth Grade Bleeds #3 The Chronicles of Vladimir Tod
Brewer, Heather
性能之巅:洞悉系统、企业与云计算
DonorboyANovel
Brendan Halpin 著
性能之巅:洞悉系统、企业与云计算
Who's That Knocking on Christmas Eve?
Brett, Jan;Brett, Jan