出版社: 电子工业出版社
出品方: 博文视点
副标题: 洞悉系统、企业与云计算
原作名: Systems Performance
译者: 徐章宁 / 吴寒思 / 陈磊
出版年: 2015-8-15
页数: 628
定价: 128
装帧: 平装
ISBN: 9787121267925
内容简介 · · · · · ·
《性能之巅:洞悉系统、企业与云计算》基于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年生,毕业于上海交通大学,硕士毕业后一直从事软件运维工作,在云存储与虚拟化领域浸沁多年,现于百度公司担任高级运维工程师,致力于大数据方向运维。钟爱...
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.2 人员 ................................................................................................2
1.3 事情 ................................................................................................3
1.4 视角 ................................................................................................4
1.5 性能是充满挑战的 ...................................................................................... 4
· · · · · · (更多)
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
· · · · · · (收起)
喜欢读"性能之巅"的人也喜欢的电子书 · · · · · ·
喜欢读"性能之巅"的人也喜欢 · · · · · ·
性能之巅的话题 · · · · · · ( 全部 条 )



性能之巅的书评 · · · · · · ( 全部 7 条 )


system performance
> 更多书评 7篇
-
觋祉 (六根清净方为道,退步原来是向前)
这个对着磁盘阵列大叫的使磁盘IO突然变慢的实验太让人吃惊了,虽然在加入物理震动的解释很合理,但让人突然感觉,磁盘也有生命似的:),对着你不喜欢的机器大叫吧,它是可以感觉到的!!! Greggs对着磁盘阵列大叫的那个视频地址[https://www.youtube.com/watch?v=tDacjrSCeq4] 太让人震惊的效果了,因为你知道的原因可能你看不到这个视频,下面是主要的截图 这个是greggs的大叫的方式 (1回应)2017-11-03 10:10 2人喜欢
这个对着磁盘阵列大叫的使磁盘IO突然变慢的实验太让人吃惊了,虽然在加入物理震动的解释很合理,但让人突然感觉,磁盘也有生命似的:),对着你不喜欢的机器大叫吧,它是可以感觉到的!!!
Greggs对着磁盘阵列大叫的那个视频地址https://www.youtube.com/watch?v=tDacjrSCeq4
太让人震惊的效果了,因为你知道的原因可能你看不到这个视频,下面是主要的截图
峰值时IO慢的监控这个是greggs的大叫的方式
1回应 2017-11-03 10:10 -
在我粗浅的世界观里,计算机的基本能力分为三个部分,计算机原理、网络、算法。根据豆瓣评分,我选择了三本书,当时觉得,看懂了这三本书,应该就能解决工作中的大部分疑惑,从而节约出时间培养更高层次的能力。 刚看完前两本的时候,刚好遇到了比较有挑战的工作,然后被现实狠狠的打脸。所有学会的理论知识大多是纸上谈兵,实际遇到问题的时候,根本不知道该怎么办。 而《性能之巅》刚好是一本教人如何解决问题的书。 从5月17 ...
2019-09-10 23:56 1人喜欢
在我粗浅的世界观里,计算机的基本能力分为三个部分,计算机原理、网络、算法。根据豆瓣评分,我选择了三本书,当时觉得,看懂了这三本书,应该就能解决工作中的大部分疑惑,从而节约出时间培养更高层次的能力。
刚看完前两本的时候,刚好遇到了比较有挑战的工作,然后被现实狠狠的打脸。所有学会的理论知识大多是纸上谈兵,实际遇到问题的时候,根本不知道该怎么办。
而《性能之巅》刚好是一本教人如何解决问题的书。
从5月17 到 9 月11,花了四个月的时间,尽自己最大的努力,把这本书看完了。整本书的精髓我理解了多少呢?大概有50%?或者可能还要少一点。
这不是一本给小白看的书,但这是一本可以改变小白的书。
记得读第一章的时候,惊叹之余,留下了一些疑问,现在终于读完了,可以检查一下自己的收获了
1.首先是“容量规划”,希望看完这本书以后,能够知道如何在软件开发时,就定义资源的占用情况,还有开发中如何定义监控
额,好像后续完全把这件事情给忘记了。。。
2.性能分析是主观的,有方法可以把主观的问题客观化。第二章会介绍
作者在第二章真的说了吗?我怎么没有找到。。。
3.时延是很适合量化的指标,但是不一定能够很方便的获得。所以有一个叫DTrace的动态跟踪工具。这里想知道,截图是什么意思,到底能分析出什么来。第四章会讲解
已经初步了解动态跟踪是什么东西,有什么用了,但是具体怎么在生产中使用,还是没有尝试
4.本书在第11章会讲 虚拟化 和 资源隔离
确实讲了,咱也看不懂,咱也不感兴趣
5. 如何查看 使用率、饱和度、错误
cpu和内存的监控含义基本了解了,网络太过复杂,本书又讲的太过简略,既然是我世界观中重要的一部分,值得仔细研究,所以豆瓣上找到了《深入理解LINUX网络技术内幕》打算开始学习
6. 动态跟踪可以查看每次进程被内核取消调度的时候,进程的栈,怎么看
对于linux 是 kprobe
7 怎么计算“平均io”,有什么用。什么是io访问模式,有什么用。还有io 级别
iostat 是磁盘的统计信息,里边的队列也是磁盘的队列,与操作系统的io调度没有关系
原文是:i o级别的监控。。。。。不是“io 级别”
8 . 文件缓存系统 为什么 内存被消耗了 反而文件缓存系统比其他机器还要大了?
He also finds that the file system cache size is much larger on the other servers
译者可能眼花了吧。。。怎么就翻译反了,估计是太“忙绿”了
9.希望这本书不要像《权利的游戏》一样吧。。。
《权利的游戏》烂尾的一塌糊涂,这本书叫做洞悉系统、企业、云计算,前边讲系统都挺有意思的,后边讲企业和云计算,我实在是看不懂,算是有点烂尾吧。。。
这本书给我的最大帮助,并不是前边讲到的各种知识。而是让我看到了一种可能性:如果我继续坚持,我有可能成为最想成为的人。
感谢这本神奇的书,陪我度过了炎炎夏日,让这个夏天充实美好~~
回应 2019-09-10 23:56 -
从 内存 到 文件系统 再到磁盘,内容越来越生涩,越来越不感兴趣。感觉这一整章都在讲自己不了解甚至不感兴趣到东西。。。不再浪费时间钻研了,反正也记不住。回到前两章把没看懂到地方补一下,结束这一部分吧。 整整一章,将近100页的篇幅,觉得感兴趣的总共就三个点 一、iowait 之前在看cpu部分的时候,提到操作系统的cpu统计信息里,有一个iowait项。当时一直不理解,如果是基于采样,怎么才算是等待io呢?这一章给出了解释...
2019-08-06 23:47 1人喜欢
从 内存 到 文件系统 再到磁盘,内容越来越生涩,越来越不感兴趣。感觉这一整章都在讲自己不了解甚至不感兴趣到东西。。。不再浪费时间钻研了,反正也记不住。回到前两章把没看懂到地方补一下,结束这一部分吧。
整整一章,将近100页的篇幅,觉得感兴趣的总共就三个点
一、iowait
之前在看cpu部分的时候,提到操作系统的cpu统计信息里,有一个iowait项。当时一直不理解,如果是基于采样,怎么才算是等待io呢?这一章给出了解释。如果idle进程被调度了,而且此时,cpu的等待队列里,有线程标记为等待io,这次抽样就被标记为iowait。
怪不得man手册上也说这个不准确,原来是这个意思。夸张点说,如果cpu100%,那么idle就不会被调度,这个时候iowait就是0%,但这不能说明没有进程等待io
也弄明白了之前的疑问:为什么iostat里要有cpu的统计信息。当时以为要两个指标一起分析,现在才知道,只是要看这个iowait,所以顺便就把其他的cpu统计信息一起展示了
二、
磁盘越靠外的扇区,吞吐量越大。因为磁盘的转速是固定的,所以越靠外,长度越长,转一圈读取的数据量越大
如果按照这个规律开一个脑洞。如果开发出几十米的磁盘,按照现在磁盘的转速,不仅可以大大增加吞吐量,还能顺便作为飞行器,飞到天上去。如果这个真的可行的话。将来数据就真的存储在云端了。。。
三、iostat
之前学习iostat的时候,注意到有一个队列长度这样的统计信息。当时看了《linux内核设计与实现》以为说得是内核里的队列。包括书里提到的电梯调度算法之类的
这一章强调了iostat是基于硬盘的,所以各种统计信息都是磁盘统计出来的。跟文件系统完全不是一个东西。
所以这个监控还有什么用呢。。。总之以后先不看这个了,往回看前两章,都提到哪些可以用来监控文件系统和内存的工具。
目前我接触到的io,基本上都是网络的,就算是写文件也是写hdfs,唯一能想到跟磁盘有关的,就是日志了。
感觉这一章的东西,研究数据库的人应该会比较清楚吧。虽然看不懂,也没觉得有什么遗憾的。倒是感觉浪费了一点时间
尽快把前两章看完,赶快看下网络部分。看过的所有操作系统相关的书籍,都基本上不涉猎网络部分。《计算机网络》也跟操作系统脱离太多。导致每次看到网络都觉得是在纸上谈兵。但是每次出现性能问题,都会怀疑,是不是网络有问题。希望下一章能给我惊喜吧~~这章实在是太厚了,差评。。
回应 2019-08-06 23:47 -
翻译错误: 原文:This differs from /proc, which has evolved over time and had various system statistics added to the top-level directory 翻译:与/proc不同的是,/sys经过一段时间的发展,把各种系统信息放在了顶层目录 意思完全翻译反了。。。这么简单的从句。。。而且明显不是笔误,明显就是译者没看懂原文才会翻译成这样 这又是一本被翻译糟蹋的好书么?表示担忧
2016-10-08 07:29 1人喜欢
-
2sin18° (维天之命,于穆不已)
性能问题的本质是特定workload与特定resouce的utilization/saturation下性能指标达不到预期。 这里存在许多疑问。首先,如何定量刻画并复现问题场景?workload如何测量?resouce在device层次还是在os层次还是在app层次?如何测量?然后,resource之间如何互相影响?关键点在哪里?最后,性能指标如何与resource的指标关联?是否可以转化为用latency来衡量? 动态追踪的一个主要障碍是对linux的版本要求较高。没有systemtap,用p...2018-02-18 23:43
-
2sin18° (维天之命,于穆不已)
1.9.1 方法论: 首先,定量确认问题。use方法的问题是resoyrce类型很多,一开始通常只会聚焦在cpu,memory,disk,nic的关键指标上。这里一开始只看了cpu和disk。问题确认,是disk层次的workload过高。 然后,问题分析。在e2e的workload么有明显变化的情况下,disk的workload变高了,同时cpu没有变高(也就是说usercall没有增加,syscall没有增加,那问题应该出现在os内部机制上。 最后,问题定位。os内部如何处理disk workload...2018-02-19 00:00
1.9.1 方法论:
首先,定量确认问题。use方法的问题是resoyrce类型很多,一开始通常只会聚焦在cpu,memory,disk,nic的关键指标上。这里一开始只看了cpu和disk。问题确认,是disk层次的workload过高。
然后,问题分析。在e2e的workload么有明显变化的情况下,disk的workload变高了,同时cpu没有变高(也就是说usercall没有增加,syscall没有增加,那问题应该出现在os内部机制上。
最后,问题定位。os内部如何处理disk workload需要一些知识。general的来说,降低workload的主要技巧包括 index,cache 和 buffer 。在这里,用 use方法排除了碎片造成的index mismatch,然后就确定为fs的cache miss,然后又用use方法确定是memory不足。
回应 2018-02-19 00:00 -
2sin18° (维天之命,于穆不已)
1.9.2 方法论: 注:rt 直接翻译成回归测试比较费解,也许叫做缺陷收敛测试更合适。同样,文中的 nrt 与其翻译成非回归性测试不如叫做性能进步测试。 首先,需要用一个基准测试来定量刻画系统的性能。基准测试包括多样的,且逐渐增长的workload,系统的workload处理能力指标,以及通常被忽视的resouce占用情况。 然后,自动化基准测试,可视化展现以发现insights。对于指标增长需要更多解释。测试本身也有可能是问题来源。2018-02-19 11:13
-
一本书,竟然有6个推荐序,里边各种夹带私货也是醉了。。。。 绪论虽然只有12页,比起前边将近40页的推荐有用多了。再次说明了吹一万次牛逼都不如秀一次操作。。。 第一章内容不多,但是都挺有意思的,下边这些内容,让人很期待后续: 1.首先是“容量规划”,希望看完这本书以后,能够知道如何在软件开发时,就定义资源的占用情况,还有开发中如何定义监控 2.性能分析的两种视角:负载分析和资源分析,虽然感觉跟说了一句废话一...
2019-05-20 23:58
一本书,竟然有6个推荐序,里边各种夹带私货也是醉了。。。。
绪论虽然只有12页,比起前边将近40页的推荐有用多了。再次说明了吹一万次牛逼都不如秀一次操作。。。
第一章内容不多,但是都挺有意思的,下边这些内容,让人很期待后续:
1.首先是“容量规划”,希望看完这本书以后,能够知道如何在软件开发时,就定义资源的占用情况,还有开发中如何定义监控
2.性能分析的两种视角:负载分析和资源分析,虽然感觉跟说了一句废话一样,但是还是很想知道第二章能详细讨论出什么花来
3.性能分析是主观的,有方法可以把主观的问题客观化。第二章会介绍
4.时延是很适合量化的指标,但是不一定能够很方便的获得。所以有一个叫DTrace的动态跟踪工具。这里想知道,截图是什么意思,到底能分析出什么来。第四章会讲解
5.本书在第11章会讲 虚拟化 和 资源隔离
6.案例研究,【缓慢的磁盘】至少我是跪着看完的,而且没看懂。。。
各种奇奇怪怪的词语,等看完了再回来理解一下:
6.1 如何查看 使用率、饱和度、错误
6.2 动态跟踪可以查看每次进程被内核取消调度的时候,进程的栈,怎么看
6.3 怎么计算“平均io”,有什么用。什么是io访问模式,有什么用。还有io 级别
6.4 文件缓存系统 为什么 内存被消耗了 反而文件缓存系统比其他机器还要大了?
总之,偷偷在这里感谢推荐这本书的大佬。希望这本书不要像《权利的游戏》一样吧。。。
回应 2019-05-20 23:58
-
dhcn (An inquisitive mind)
这本书的第二版已于20年底出版: [https://book.douban.com/subject/35114639/] [https://www.amazon.com/Systems-Performance-Brendan-Gregg/dp/0136820158/]2021-02-24 21:12
这本书的第二版已于20年底出版: https://book.douban.com/subject/35114639/ https://www.amazon.com/Systems-Performance-Brendan-Gregg/dp/0136820158/
回应 2021-02-24 21:12 -
在我粗浅的世界观里,计算机的基本能力分为三个部分,计算机原理、网络、算法。根据豆瓣评分,我选择了三本书,当时觉得,看懂了这三本书,应该就能解决工作中的大部分疑惑,从而节约出时间培养更高层次的能力。 刚看完前两本的时候,刚好遇到了比较有挑战的工作,然后被现实狠狠的打脸。所有学会的理论知识大多是纸上谈兵,实际遇到问题的时候,根本不知道该怎么办。 而《性能之巅》刚好是一本教人如何解决问题的书。 从5月17 ...
2019-09-10 23:56 1人喜欢
在我粗浅的世界观里,计算机的基本能力分为三个部分,计算机原理、网络、算法。根据豆瓣评分,我选择了三本书,当时觉得,看懂了这三本书,应该就能解决工作中的大部分疑惑,从而节约出时间培养更高层次的能力。
刚看完前两本的时候,刚好遇到了比较有挑战的工作,然后被现实狠狠的打脸。所有学会的理论知识大多是纸上谈兵,实际遇到问题的时候,根本不知道该怎么办。
而《性能之巅》刚好是一本教人如何解决问题的书。
从5月17 到 9 月11,花了四个月的时间,尽自己最大的努力,把这本书看完了。整本书的精髓我理解了多少呢?大概有50%?或者可能还要少一点。
这不是一本给小白看的书,但这是一本可以改变小白的书。
记得读第一章的时候,惊叹之余,留下了一些疑问,现在终于读完了,可以检查一下自己的收获了
1.首先是“容量规划”,希望看完这本书以后,能够知道如何在软件开发时,就定义资源的占用情况,还有开发中如何定义监控
额,好像后续完全把这件事情给忘记了。。。
2.性能分析是主观的,有方法可以把主观的问题客观化。第二章会介绍
作者在第二章真的说了吗?我怎么没有找到。。。
3.时延是很适合量化的指标,但是不一定能够很方便的获得。所以有一个叫DTrace的动态跟踪工具。这里想知道,截图是什么意思,到底能分析出什么来。第四章会讲解
已经初步了解动态跟踪是什么东西,有什么用了,但是具体怎么在生产中使用,还是没有尝试
4.本书在第11章会讲 虚拟化 和 资源隔离
确实讲了,咱也看不懂,咱也不感兴趣
5. 如何查看 使用率、饱和度、错误
cpu和内存的监控含义基本了解了,网络太过复杂,本书又讲的太过简略,既然是我世界观中重要的一部分,值得仔细研究,所以豆瓣上找到了《深入理解LINUX网络技术内幕》打算开始学习
6. 动态跟踪可以查看每次进程被内核取消调度的时候,进程的栈,怎么看
对于linux 是 kprobe
7 怎么计算“平均io”,有什么用。什么是io访问模式,有什么用。还有io 级别
iostat 是磁盘的统计信息,里边的队列也是磁盘的队列,与操作系统的io调度没有关系
原文是:i o级别的监控。。。。。不是“io 级别”
8 . 文件缓存系统 为什么 内存被消耗了 反而文件缓存系统比其他机器还要大了?
He also finds that the file system cache size is much larger on the other servers
译者可能眼花了吧。。。怎么就翻译反了,估计是太“忙绿”了
9.希望这本书不要像《权利的游戏》一样吧。。。
《权利的游戏》烂尾的一塌糊涂,这本书叫做洞悉系统、企业、云计算,前边讲系统都挺有意思的,后边讲企业和云计算,我实在是看不懂,算是有点烂尾吧。。。
这本书给我的最大帮助,并不是前边讲到的各种知识。而是让我看到了一种可能性:如果我继续坚持,我有可能成为最想成为的人。
感谢这本神奇的书,陪我度过了炎炎夏日,让这个夏天充实美好~~
回应 2019-09-10 23:56 -
经历了内存部分 各种看不懂的惨案之后,终于到了最后的网络部分。有《计算机网络(第5版)》那本诙谐幽默的大部头作为基础。这一章读起来还是觉得轻松愉悦。 1. 每次学习网络相关的知识,都会进入专业名词和各种缩写的泥潭中,内存部分RSS 还是Resident Set Size 常驻集合大小,这一章就变成了 Receive Side Scaling 接收端扩展 ,真的搞不懂,如果缩写会导致混淆,那缩写还有什么意义。。。 2. 读到 光纤和铜揽 的时候,开了个...
2019-09-03 23:54
经历了内存部分 各种看不懂的惨案之后,终于到了最后的网络部分。有《计算机网络(第5版)》那本诙谐幽默的大部头作为基础。这一章读起来还是觉得轻松愉悦。
1. 每次学习网络相关的知识,都会进入专业名词和各种缩写的泥潭中,内存部分RSS 还是Resident Set Size 常驻集合大小,这一章就变成了 Receive Side Scaling 接收端扩展 ,真的搞不懂,如果缩写会导致混淆,那缩写还有什么意义。。。
2. 读到 光纤和铜揽 的时候,开了个脑洞。书中提到同一个端口,可以双工工作,一根网线拆开看也有n条铜线在里边。所以,如果在网线里增加n多的铜线,然后两边N工工作,带宽不就提升n倍了?难道是铜线之前电磁感应互相影响会发热,所以不能搞那么多铜线吗。。。
如果换成光缆,光线可以很细,而且相互之间不会影响,那么相同的直径,光纤比铜线的带宽就可以大n倍 。而且光通过光纤不会发热,如果把全国的铜线都换成光纤,那么将会节约N多的电费。。
而且,金属可以接上一根线窃听信息,但是光纤不行?所以光纤更安全??
这么想的话,我能想到的光纤唯一的坏处就是,如果网线断了,把铜线接起来就能继续用了,但是如果光纤断了,那么想要连起来估计就比较麻烦了把。所以才把光纤埋在很深的地底下吗?
但是现在无线通信这么发达了,这个可是怎么切都切不断的。一个奇葩的脑洞是 未来因为全球变暖,地表温度过高,人们只能在地下生存,地上没有人居住以后,可以无线加大电磁波的频率,导致无线传输的带宽超过了光纤,到时候,再也不会出现 挖掘机施工挖断网线这种坑爹的问题了~~
3. “死亡之ping” 这么中二的名字,不像是程序员起的,网上查了一下,应该是一个针对古代某些古老的操作系统 TCP/IP 协议栈缺陷的攻击方式,现代的操作系统已经修复这个缺陷,所以不会再有了
4.大量的网络通信--源自其他不想关的主机--使源与目标目标网络之间的路由器饱和。网络管理团队因此经常需要免除他们基础设置的责任。
这段话翻译一下就是,如果网络出现问题,一种可能是:基础设施的某个使用方不恰当的使用,导致影响了所有的使用方,另一种可能是:基础设施本身坏了。所以运维团队除了需要保证基础设施正常以外,还要具备一个非常重要的专业技能--甩锅。。。也被本书的译者称之为”责备他人讹方法“,提高这种能力的工具就是各种监控。所以作为管理硬件的运维团队,才需要维护诸如cpu、内存、io之类的软件层面的监控。
5. 网络延时部分提到了ping延时和连接延时。让人好奇,ping的时候,需不需要tcp三次握手?
ping 是ICMP internet control message protocol 因特网控制报文协议。提到message(报文)让人想到应用层。不是传输控制层的数据报(segment)和网络层的(package),但是实际上,ICMP是一个网络层的协议,不经过传输控制层,所以也不会有三次握手。
所以不一定非得按照7层 从上往下封装数据。比如直接使用ip协议发送应用层的message,跳过了传输控制层,也是可以的
6. 之前一直想不通,如果应用层某一次网络请求慢了,想知道是不是网络本身的问题,联系运维,运维会把带宽的监控发过来。然后告知不是网络的影响。这样的问答总觉得怪怪的。
读完这章有点明白是怎么回事了,带宽是一种资源,但不是网络使用的唯一资源。
特别是,之前看文件系统和磁盘的时候,了解了DMA(直接内存存取)的概念,磁盘上的数据,写入内存,是不需要cpu参与的。
但是到了网络部分,一直再说cpu怎么分配的问题。后来想到,网络包的各种拆包解包,校验和都是需要cpu的,不仅如此,每一层网络协议栈都需要缓冲区,所以也需要内存。
所以网络或者说网络io 跟cpu和内存不一样,网络不是资源,网络是一段内核代码,这段代码使用了cpu、内存、网卡带宽。
甚至于网络不单是一台机器上,某一种操作系统,而是链路上所有路由器包括其中的各种代码和资源共同作用提供给应用层的一种服务。
既然不是一种资源,就不能用cpu和内存 的基于统计的方式去分析,所以运维直接说带宽没有满,就不是网络的问题,这样的回答是不够充分的。
网络问题需要 开发人员和运维同事共同排查,运维同事更多的作用是甩锅--也就是给开发人员不可见的资源是否有问题提供一个 是或者否。真正请求为什么慢了,还是得开发人员自己分析。
如果之前的每一部分都跟网络这么有意思该多好~~
不过现在回想起来,《计算机网络(第5版)》之所以有意思,更多的是里边穿插了很多历史故事。这么想的话,开一下脑洞,如果将来我退休了,然后有充足的知识和大把的空闲时间,我就写一本《计算机简史》,现在觉得,计算机和历史,这两者很搭啊~~
回应 2019-09-03 23:54 -
从 内存 到 文件系统 再到磁盘,内容越来越生涩,越来越不感兴趣。感觉这一整章都在讲自己不了解甚至不感兴趣到东西。。。不再浪费时间钻研了,反正也记不住。回到前两章把没看懂到地方补一下,结束这一部分吧。 整整一章,将近100页的篇幅,觉得感兴趣的总共就三个点 一、iowait 之前在看cpu部分的时候,提到操作系统的cpu统计信息里,有一个iowait项。当时一直不理解,如果是基于采样,怎么才算是等待io呢?这一章给出了解释...
2019-08-06 23:47 1人喜欢
从 内存 到 文件系统 再到磁盘,内容越来越生涩,越来越不感兴趣。感觉这一整章都在讲自己不了解甚至不感兴趣到东西。。。不再浪费时间钻研了,反正也记不住。回到前两章把没看懂到地方补一下,结束这一部分吧。
整整一章,将近100页的篇幅,觉得感兴趣的总共就三个点
一、iowait
之前在看cpu部分的时候,提到操作系统的cpu统计信息里,有一个iowait项。当时一直不理解,如果是基于采样,怎么才算是等待io呢?这一章给出了解释。如果idle进程被调度了,而且此时,cpu的等待队列里,有线程标记为等待io,这次抽样就被标记为iowait。
怪不得man手册上也说这个不准确,原来是这个意思。夸张点说,如果cpu100%,那么idle就不会被调度,这个时候iowait就是0%,但这不能说明没有进程等待io
也弄明白了之前的疑问:为什么iostat里要有cpu的统计信息。当时以为要两个指标一起分析,现在才知道,只是要看这个iowait,所以顺便就把其他的cpu统计信息一起展示了
二、
磁盘越靠外的扇区,吞吐量越大。因为磁盘的转速是固定的,所以越靠外,长度越长,转一圈读取的数据量越大
如果按照这个规律开一个脑洞。如果开发出几十米的磁盘,按照现在磁盘的转速,不仅可以大大增加吞吐量,还能顺便作为飞行器,飞到天上去。如果这个真的可行的话。将来数据就真的存储在云端了。。。
三、iostat
之前学习iostat的时候,注意到有一个队列长度这样的统计信息。当时看了《linux内核设计与实现》以为说得是内核里的队列。包括书里提到的电梯调度算法之类的
这一章强调了iostat是基于硬盘的,所以各种统计信息都是磁盘统计出来的。跟文件系统完全不是一个东西。
所以这个监控还有什么用呢。。。总之以后先不看这个了,往回看前两章,都提到哪些可以用来监控文件系统和内存的工具。
目前我接触到的io,基本上都是网络的,就算是写文件也是写hdfs,唯一能想到跟磁盘有关的,就是日志了。
感觉这一章的东西,研究数据库的人应该会比较清楚吧。虽然看不懂,也没觉得有什么遗憾的。倒是感觉浪费了一点时间
尽快把前两章看完,赶快看下网络部分。看过的所有操作系统相关的书籍,都基本上不涉猎网络部分。《计算机网络》也跟操作系统脱离太多。导致每次看到网络都觉得是在纸上谈兵。但是每次出现性能问题,都会怀疑,是不是网络有问题。希望下一章能给我惊喜吧~~这章实在是太厚了,差评。。
回应 2019-08-06 23:47
当前版本有售 · · · · · ·
-
每满100-50
购买二手书 · · · · · ·
这本书的其他版本 · · · · · · ( 全部3 )
-
Prentice Hall (2013)8.6分 46人读过
-
Prentice (2020)暂无评分 3人读过
以下书单推荐 · · · · · · ( 全部 )
谁读这本书?
二手市场
订阅关于性能之巅的评论:
feed: rss 2.0
1 有用 谢小漫 2017-02-05
Solaris内容去掉,书可以少至少三分一的内容,那就不错。定价就能少一半。翻译只能是还好。内容就相当于是工具介绍吧。做为了解内容来说还行。
0 有用 淡烟清茶 2018-08-29
是一个很好的Linux性能诊断工具目录
0 有用 雪爷 2020-07-24
工具书,幸而周围有大神指点
0 有用 Joard Spike 2018-01-24
很不错的手册类数据,如果还不了解相应的知识,这本书能帮你节省不少查资料的时间
2 有用 luckygxf 2017-07-05
适合运维看,介绍了一堆监控工具,有个Dtrace工具,广告太多。后面就有点常规了,CPU、内存、硬盘、文件系统。翻了一下,没啥意思
0 有用 focus 2021-01-20
一般般,其实是一本工具书。
0 有用 于小鱼 2021-01-14
百科全书一样的书
0 有用 ET 2020-11-05
翻译很垃圾,Dtrace用不上,期待Gregg的第二版
0 有用 风之隅 2020-10-18
感觉不太用得上 一直在推广dtrace
0 有用 一jio超人 2020-10-10
太深奥了,偏向底层的调优,但每个章节开头的概念还是挺好的。后续再细读翻阅。