本書由Intel架構師撰寫,創造性地采用Linux態勢感知方法來解決高性能計算的問題,涵蓋技術、監控和配置管理等多個方面。書中針對大規模數據中心、云平臺架構和高性能計算環境,建立了一套基于統計工程和實驗設計的方法論,從識別問題和理解問題,到再現問題和解決問題,一步一步地排除故障,形成了一套高效的工作流程。書中包含大量實戰案例和代碼,并介紹了不同工具的使用技巧,適合從事高性能計算相關工作的技術人員和管理人員參考。
譯者序
前 言
致 謝
引言 數據中心與高端計算 1
數據中心一覽 1
現代數據中心布局 1
歡迎來到BORG,抵抗是徒勞的 2
那就是力量 2
企業與Linux 2
經典的辦公室 2
Linux計算環境 3
Linux云 3
10000個1不等于10000 3
問題的非線性擴展 3
大數定律 4
同質化 4
企業的當務之急 4
7天24小時全天候開放 5
任務危急 5
停機時間等于金錢 5
千里之堤潰于蟻穴 5
參考文獻 5
第1章 你有問題嗎 6
問題的識別 6
如果森林里有一棵樹倒下,沒人能聽到 6
一步一步地識別 7
總是優先使用簡單工具 7
過多的知識導致誤區 9
問題的定義 9
當前發生或可能的問題 10
停機規模和嚴重性與業務需求 11
已知與未知 13
問題的再現 13
你能隔離問題嗎 13
偶發性問題需要特殊處理 14
計劃如何控制混亂 14
放手是最難的事 15
因與果 16
不要流連于癥狀 16
先有雞還是先有蛋 16
嚴格控制環境改變,直到你理解了問題的本質 18
如果改變,確保你知道預期結果是什么 18
結論 19
參考文獻 19
第2章 開始研究 20
隔離問題 20
推動從生產到測試 20
重新運行獲得結果所需的最小集 21
忽略偏見信息,避免假設 21
與健康系統和已知參考的比較 22
那不是程序錯誤,而是一個特性 22
將預期結果與正常系統作比較 23
性能和行為的參考是必需的 24
對變化的線性與非線性響應 24
一次一個變量 25
線性復雜度的問題 25
非線性問題 25
響應可能會延遲或掩蓋 25
Y到X而不是X到Y 26
組件搜索 26
結論 26
第3章 基礎研究 27
刻畫系統狀態 27
環境監控 27
機器可訪問性、響應性和正常
運行時間 27
本地和遠程登錄以及管理控制臺 29
喊狼來了的監控 29
讀取系統信息和日志 30
使用ps和top 30
系統日志 36
進程記賬 39
檢查命令執行的模式 40
與問題表現相關 41
避免快速的結論 41
統計作為輔助 41
vmstat 41
iostat 43
系統活動報告(SAR) 47
結論 49
參考文獻 50
第4章 深入探討系統 51
使用/proc 51
層次 52
每個進程的變量 52
內核數據 56
進程空間 60
檢查內核可調參數 63
sys子系統 63
內存管理 64
文件系統管理 65
網絡管理 65
SunRPC 66
內核 67
sysctl 69
結論 70
參考文獻 70
第5章 變身極客——跟蹤和調試應用 72
使用strace和ltrace 72
strace 72
ltrace 86
結合兩種工具獲得最佳結果 87
其他工具 90
使用perf 93
介紹 93
為什么不用OProfile 94
前提 94
基本使用 94
基礎實例 99
高級實例 103
小結 107
使用gdb 107
介紹 107
前提 108
簡單實例 108
不那么簡單的實例 113
其他有用的命令 122
結論 124
參考文獻 124
第6章 極客進級——應用和內核核心、內核調試器 126
收集應用核心 126
如何轉儲應用核心 127
收集內核核心(Kdump) 132
Kdump服務概覽 133
Kdump配置 137
測試配置 143
Kdump網絡轉儲功能 145
Kdump使用 146
小結 147
崩潰分析(crash) 147
前提 147
運行crash 148
內核崩潰核心分析 156
超級極客技能:C代碼分析 167
小例子 168
中級例子 172
困難的例子 176
內核崩潰的bug報告 182
崩潰分析結果 184
內核bug與硬件錯誤 185
小結 186
內核調試器 186
內核編譯 186
進入調試器 187
基本命令 187
小結 189
結論 189
參考文獻 189
第7章 問題的解決方案 191
如何處理收集到的數據 191
文檔 191
數據的雜亂 193
最佳實踐 195
搜索引擎、郵件列表以及供應商支持 202
找到根本原因 203
消除問題 204
實現和跟蹤 206
結論 207
參考文獻 208
第8章 監控和預防 209
監控什么數據 209
過多的數據比沒有數據更糟 209
Y到X將定義你所需要的監控 210
不要害怕改變 210
如何監控和分析趨勢 211
設置你關心的監控 211
監控不等于報告 212
不監控隨機指標 212
定義數學趨勢 213
如何應對趨勢 215
當它來得太晚 216
內務管理 217
預防是解決問題的關鍵 217
配置審核 218
為什么審核有用 218
控制環境的變化 219
安全方面 219
系統數據收集工具 219
定制工具 220
商業支持 220
結論 221
參考文獻 221
第9章 讓你的環境更安全、更健壯 222
版本控制 222
為什么需要版本控制 222
Subversion、Git及相關軟件 223
簡單回滾 223
配置管理 223
變懶:自動化 224
大環境下的熵 225
掌控混亂 225
配置管理軟件 225
環境中引入變化的正確方法 226
一次一個變化 226
不要急著沖到截止時間 227
理解影響 228
沒報告問題意味著什么都沒有 228
連鎖反應 228
結論 229
參考文獻 229
第10章 微調系統性能 230
日志大小與日志輪轉 230
系統日志會一直增長 230
慢點,倒帶 232
確定消息的內容 232
文件系統調優 234
Ext3/4文件系統 234
XFS文件系統 235
sysfs文件系統 236
層次 236
blo