作品介紹

性能之巔


作者:BrendanGregg     整理日期:2016-12-27 11:05:24


  《性能之巔:洞悉系統、企業(yè)與云計算》基于Linux 和Solaris 系統闡述了適用于所有系統的性能理論和方法,Brendan Gregg 將業(yè)界普遍承認的性能方法、工具和指標收集于本書之中。閱讀本書,你能洞悉系統運作的方式,學習到分析和提高系統與應用程序性能的方法,這些性能方法同樣適用于大型企業(yè)與云計算這類最為復雜的環(huán)境的性能分析與調優(yōu)。

作者簡介:
  Brendan Gregg 是Joyent公司的首席性能工程師,通過軟件棧分析性能和擴展。在Sun Microsystem公司(之后為Oracle)作為首席性能和內核工程師期間,他的工作包括開發(fā)ZFS L2ARC,這是一個利用閃速存儲器提升性能的文件系統。他還開發(fā)了許許多多的性能工具,部分工具收錄在Mac OS X和Oracle Solaris 11的發(fā)行版中。他最近從事的工作覆蓋針對Linux和illumos內核分析的性能可視化。他還是《DTrace》(Prentice Hall出版社,2011年)和《Solaris Performance and Tools》的兩書合著者。
  譯者介紹:
  徐章寧,1984年生,畢業(yè)于上海交通大學,碩士畢業(yè)后一直從事軟件運維工作,在云存儲與虛擬化領域浸沁多年,現于百度公司擔任高級運維工程師,致力于大數據方向運維。鐘愛開源軟件,平日熱愛讀書和寫作,《算法謎題》《編程格調》合譯者。
  吳寒思,2010年畢業(yè)于南京大學軟件學院,目前就職于EMC公司核心技術部從事文件系統研發(fā)工作,擁有2項文件系統方面專利。對程序設計、系統存儲、云計算和操作系統有濃厚興趣。
  陳磊,1979年生,畢業(yè)于同濟大學。從事網絡、系統和IT管理14年。曾就職于EMC中國卓越研發(fā)集團,任實驗室經理。目前在互聯網金融企業(yè)負責基礎架構。興趣廣泛,尤其熱愛開源軟件和其它各類新興技術的探討和研究。

目錄:
  第1 章 緒論 ...................................................................................... 1
  1.1 系統性能 ............................................................................................ 1
  1.2 人員 ................................................................................................2
  1.3 事情 ................................................................................................3
  1.4 視角 ................................................................................................4
  1.5 性能是充滿挑戰(zhàn)的 ...................................................................................... 4
  1.5.1 性能是主觀的 ........................................................................................................... 4
  1.5.2 系統是復雜的 ........................................................................................................... 5
  1.5.3 可能有多個問題并存 ............................................................................................... 6
  1.6 延時 .................................................................................... 6
  1.7 動態(tài)跟蹤 ......................................................................................................... 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 診斷循環(huán) ................................................................................................................. 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 靜態(tài)性能調整 ....................................................................................................... 47
  2.5.17 緩存調優(yōu) ............................................................................................................... 47
  2.5.18 微基準測試 ........................................................................................................... 48
  2.6 建模 ...................................................................................................... 49
  2.6.1 企業(yè)vs.云 ................................................................................................................ 49
  2.6.2 可視化識別 ............................................................................................................. 49
  2.6.3 Amdahl 擴展定律 ................................................................................................... 51
  2.6.4 通用擴展定律 ......................................................................................................... 52
  2.6.5 排隊理論 ................................................................................................................. 52
  2.7 容量規(guī)劃 ...................................................................................................... 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 多重模態(tài)分布 ......................................................................................................... 62
  2.8.6 異常值 ..................................................................................................................... 63
  2.9 監(jiān)視 ................................................................................................... 63
  2.9.1 基于時間的規(guī)律 ..................................................................................................... 63
  2.9.2 監(jiān)測產品 ................................................................................................................. 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 中斷優(yōu)先級 ............................................................................................................. 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 監(jiān)視(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 微狀態(tài)核算 ........................................................................................................... 112
  4.2.6 其他的觀測源 ....................................................................................................... 112
  4.3 DTrace .................................................................................................... 114
  4.3.1 靜態(tài)和動態(tài)跟蹤 ................................................................................................... 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 常見情況的優(yōu)化 ................................................................................................... 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 緩沖區(qū) ................................................................................................................... 136
  5.2.4 輪詢 ....................................................................................................................... 136
  5.2.5 并發(fā)和并行 ........................................................................................................... 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 線程狀態(tài)分析 ....................................................................................................... 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 靜態(tài)性能調優(yōu) ................................................................................. 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 優(yōu)先級反轉 ......................................................................................................... 169
  6.3.11 多進程,多線程 ................................................................................................. 169
  6.3.12 字長 ..................................................................................................................... 170
  6.3.13 編譯器優(yōu)化 ......................................................................................................... 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 性能監(jiān)控 ............................................................................................................... 189
  6.5.7 靜態(tài)性能調優(yōu) ....................................................................................................... 189
  6.5.8 優(yōu)先級調優(yōu) ........................................................................................................... 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 調優(yōu) ........................................................................................................... 220
  6.8.1 編譯器選項 ........................................................................................................... 221
  6.8.2 調度優(yōu)先級和調度類 ........................................................................................... 221
  6.8.3 調度器選項 ........................................................................................................... 221
  6.8.4 進程綁定 ............................................................................................................... 223
  6.8.5 獨占CPU 組 ......................................................................................................... 224
  6.8.6 資源控制 ............................................................................................................... 224
  6.8.7 處理器選項(BIOS 調優(yōu)) ................................................................................. 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 性能監(jiān)測 ............................................................................................................... 251
  7.4.6 泄漏檢測 ............................................................................................................... 252
  7.4.7 靜態(tài)性能調優(yōu) ....................................................................................................... 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 調優(yōu) .................................................................................. 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 性能監(jiān)控 ............................................................................................................... 308
  8.5.5 事件跟蹤 ............................................................................................................... 308
  8.5.6 靜態(tài)性能調優(yōu) ....................................................................................................... 309
  8.5.7 緩存調優(yōu) ............................................................................................................... 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 調優(yōu) ..................................................................................................... 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 連續(xù)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 性能監(jiān)控 ............................................................................................................... 365
  9.5.4 負載特征歸納 ....................................................................................................... 366
  9.5.5 延時分析 ............................................................................................................... 367
  9.5.6 事件跟蹤 ............................................................................................................... 368
  9.5.7 靜態(tài)性能調優(yōu) ....................................................................................................... 369
  9.5.8 緩存調優(yōu) ............................................................................................................... 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 調優(yōu) .............................................................................................................. 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 性能監(jiān)測 ............................................................................................................. 431
  10.5.6 數據包嗅探 ......................................................................................................... 431
  10.5.7 TCP 分析 ............................................................................................................. 432
  10.5.8 挖掘分析 ............................................................................................................. 433
  10.5.9 靜態(tài)性能調優(yōu) ..................................................................................................... 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 調優(yōu) ............................................................................................................... 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 容量規(guī)劃 ............................................................................................................. 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 行業(yè)標準 ............................................................................................................. 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





上一本:傳奇布列松 下一本:向著大地和天空,凡人和諸神

作家文集

下載說明
性能之巔的作者是BrendanGregg,全書語言優(yōu)美,行文流暢,內容豐富生動引人入勝。為表示對作者的支持,建議在閱讀電子書的同時,購買紙質書。

更多好書