《性能之巔:洞悉系統、企業(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
|