內容簡介
本書由Intel架構師撰寫,創造性地采用Linux態勢感知方法來解決高性能計算的問題,涵蓋技術、監控和配置管理等多個方麵。書中針對大規模數據中心、雲平颱架構和高性能計算環境,建立瞭一套基於統計工程和實驗設計的方法論,從識彆問題和理解問題,到再現問題和解決問題,一步一步地排除故障,形成瞭一套高效的工作流程。書中包含大量實戰案例和代碼,並介紹瞭不同工具的使用技巧,適閤從事高性能計算相關工作的技術人員和管理人員參考。
目錄
Contents 目 錄
譯者序
前 言
緻 謝
引言 數據中心與高端計算 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
前言/序言
前 言?Preface我花瞭大部分的Linux職業生涯在數著成韆上萬的服務器,就像一個音樂傢盯著樂譜能看到在和聲中隱藏的波形。過瞭一段時間,我開始瞭解數據中心的工作模式和行為。它們就像活著、會呼吸一般,有自己的跌宕起伏、周期和不同尋常。它們遠不止是簡單的疊加,當你把人作為元素添加到方程中,更是變得不可預知。
在諸如大型數據中心、雲平颱架構和高性能的環境中,大型部署管理是一項非常微妙的任務。它需要大量的經驗、努力和對技術的理解來創造一個成功而高效的工作流程。未來的願景和經營戰略也是需要的。但在相當多的時候,其中某一個重要部分是缺失的。
在解決問題時,沒有通盤戰略。
本書是我的一個創造性嘗試。那些年,在我設計解決方案和産品緻力於使我掌控的數據中心變得更好、更強大且更高效的時候,也暴露瞭我在解決問題上的根本差距。人們很難完全理解這意味著什麼。是的,它涉及工具和非法侵入係統。你可能會編寫一些腳本,或者花很長時間盯著日誌在屏幕上滾動。你可能會繪製圖錶來顯示數據趨勢。你可能會嚮同事請教他們領域的問題。你可能會參與或領導特彆工作組試圖解決危急問題和恢復供電。但在最後,就像拼圖一樣,沒有一個統一的方法能解決所有的問題。
態勢感知的問題解決方法藉鑒自科學領域,它試圖用數學來代替人的直覺。我們將使用統計工程和實驗設計以對抗混亂。我們會慢慢地、係統地、一步一步地工作,努力找到一種統一的方法用於解決同類問題。我們關注打破數據神話,擺脫一些波及數據中心的偏見和傳統。然後,我們將把係統故障排除的藝術轉化為産品。這可能聽起來很殘酷,藝術將按重量齣售,但當你深入閱讀本書的時候,其中的必要性就變得顯而易見。你的那些不自在,在原本無論接觸監控、變化控製和管理、自動化以及其他哪怕是最好的實踐都會有的不自在,統統將會慢慢融入現代數據中心。
最後同樣重要的是,請不要忘記我們盡一切努力去研究和解決問題的初衷——樂趣和好奇心,這正是讓我們成為工程師和科學傢的真正原因,正是讓我們熱愛數據中心技術編織的混亂、忙碌而又瘋狂的世界的原因。
快來和我們一路同行吧。
Igor Ljubuncic緻 謝?Acknowledgements寫這本書的時候,我會偶爾離開辦公桌,四處與人交談。他們的意見和建議幫助塑造瞭這本書,使它擁有更漂亮的形式。因此,我要感謝Patrick Hauke確保這個項目最終完成,感謝David Clark編輯書稿並調整句子段落,感謝Avikam Rozenfeld提供有用的技術反饋和理念,感謝Tom Litterer在正確的方嚮上做正確的引導,最後同樣重要的是,感謝其他那些在英特爾的聰明而又努力工作的人。
女士們,先生們,請允許我脫帽緻敬。
Igor Ljubuncic
高性能計算的問題解決之道:Linux態勢感知方法、實用工具及實踐技巧 下載 mobi epub pdf txt 電子書