高性能計算的問題解決之道:Linux態勢感知方法、實用工具及實踐技巧 ( 簡體 字) |
作者:[美]伊戈爾·盧布希斯(Igor Ljubuncic) 著 | 類別:1. -> 作業系統 -> Linux |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 48495 詢問書籍請說出此書號!【有庫存】 NT售價: 395 元 |
出版日:2/1/2018 |
頁數:252 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111589785 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:我花了大部分的Linux職業生涯在數著成千上萬的服務器,就像一個音樂家盯著樂譜能看到在和聲中隱藏的波形。過了一段時間,我開始了解數據中心的工作模式和行為。它們就像活著、會呼吸一般,有自己的跌宕起伏、周期和不同尋常。它們遠不止是簡單的疊加,當你把人作為元素添加到方程中,更是變得不可預知。
在諸如大型數據中心、云平臺架構和高性能的環境中,大型部署管理是一項非常微妙的任務。它需要大量的經驗、努力和對技術的理解來創造一個成功而高效的工作流程。未來的愿景和經營戰略也是需要的。但在相當多的時候,其中某一個重要部分是缺失的。
在解決問題時,沒有通盤戰略。
本書是我的一個創造性嘗試。那些年,在我設計解決方案和產品致力于使我掌控的數據中心變得更好、更強大且更高效的時候,也暴露了我在解決問題上的根本差距。人們很難完全理解這意味著什么。是的,它涉及工具和非法侵入系統。你可能會編寫一些腳本,或者花很長時間盯著日志在屏幕上滾動。你可能會繪制圖表來顯示數據趨勢。你可能會向同事請教他們領域的問題。你可能會參與或領導特別工作組試圖解決危急問題和恢復供電。但在最后,就像拼圖一樣,沒有一個統一的方法能解決所有的問題。
態勢感知的問題解決方法借鑒自科學領域,它試圖用數學來代替人的直覺。我們將使用統計工程和實驗設計以對抗混亂。我們會慢慢地、系統地、一步一步地工作,努力找到一種統一的方法用于解決同類問題。我們關注打破數據神話,擺脫一些波及數據中心的偏見和傳統。然后,我們將把系統故障排除的藝術轉化為產品。這可能聽起來很殘酷,藝術將按重量出售,但當你深入閱讀本書的時候,其中的必要性就變得顯而易見。你的那些不自在,在原本無論接觸監控、變化控制和管理、自動化以及其他哪怕是最好的實踐都會有的不自在,統統將會慢慢融入現代數據中心。
最后同樣重要的是,請不要忘記我們盡一切努力去研究和解決問題的初衷——樂趣和好奇心,這正是讓我們成為工程師和科學家的真正原因,正是讓我們熱愛數據中心技術編織的混亂、忙碌而又瘋狂的世界的原因。
快來和我們一路同行吧。
Igor Ljubuncic |
內容簡介:數據中心7×24小時全天候運行,支撐著數以億計的互聯網服務和高性能計算任務,任何一個微小的bug都有可能導致沉重的損失。然而,面對來自數據中心的故障警報,我們卻幾乎沒有一種統一的方法來解決問題。
本書創造性地引入態勢感知方法,基于統計工程和實驗設計,將故障排除這門依賴直覺的藝術轉化為高效的工作流程。作者將多年來為基于Intel的系統開發解決方案的經驗以生動的形式呈現于書中,既包含對技術性問題的分析,又包含對技能的擴展和深入。特別是,在內核調試中通過對系統崩潰的再現來快速定位bug,充分展現了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
block子系統 237
FS子系統 237
內核子系統 237
模塊子系統 238
結合proc和sys 238
內存管理實例 238
CPU調度實例 238
網絡優化實例 241
結論 243
參考文獻 243
第11章 整合所有的部分 245
自上而下的方法 245
保持簡單:從簡單開始 245
首先理解環境 245
它就像洋蔥:分層而且會使你流淚 246
“自我消失”的問題會重現,且 擴大影響 246
沒有捷徑:努力是金科玉律 246
使用的方法學 247
文檔 247
一種清晰的方法 247
Y到X應該是座右銘 247
統計工程不受重視 248
數學是強大的,但沒人用 248
使用的工具 248
使用的工具概述 248
所選工具的優缺點 249
從簡單到復雜 249
不要過多涉獵:知識是你的敵人 249
逐步進階的方法 249
不要害怕退步 250
有時你只需要緩解問題 250
操作約束 250
錢,錢,錢 250
你的客戶永遠無法忍受停機 250
你將不得不妥協 251
聰明的做法 251
分享就是關懷 251
請教別人:他們以前碰到過類似問題 252
工作安全根本沒有安全可言 252
授人以魚或者授人以漁 253
只有你知道什么對你而言是最好的 253
結論 253 |
序: |