高性能計算的問題解決之道:Linux態勢感知方法、實用工具及實踐技巧( 簡體 字) | |
作者:[美]伊戈爾·盧布希斯(Igor Ljubuncic) 著 | 類別:1. -> 作業系統 -> Linux |
出版社:機械工業出版社 | 3dWoo書號: 48495 詢問書籍請說出此書號! 有庫存 NT售價: 395 元 |
出版日:2/1/2018 | |
頁數:252 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787111589785 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
譯者序
前 言 致 謝 引言 數據中心與高端計算 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 數據中心7×24小時全天候運行,支撐著數以億計的互聯網服務和高性能計算任務,任何一個微小的bug都有可能導致沉重的損失。然而,面對來自數據中心的故障警報,我們卻幾乎沒有一種統一的方法來解決問題。
本書創造性地引入態勢感知方法,基于統計工程和實驗設計,將故障排除這門依賴直覺的藝術轉化為高效的工作流程。作者將多年來為基于Intel的系統開發解決方案的經驗以生動的形式呈現于書中,既包含對技術性問題的分析,又包含對技能的擴展和深入。特別是,在內核調試中通過對系統崩潰的再現來快速定位bug,充分展現了Linux內核的魅力。跟隨作者精心設計的學習路徑,你將逐步熟悉不同工具的使用技巧,從基礎問題進階高級實戰,層層深入,最終成為解決問題的高手。 本書是為你準備的: 你的數據中心承擔著關鍵計算任務,不容有失,如何提供零失誤的技術保障? 你的系統陷入重度危機,特別工作小組怎樣通力攻關,用最短時間恢復服務? 你編寫腳本、調試工具、繪制圖表、挖掘數據,同時也日益桎梏于知識與經驗。 日志在屏幕上滾動,監控在捕捉系統的“呼吸”,而你仍然感受不到問題爆發的前兆。 客戶抱怨應接不暇,面對相同問題你卻只是重復“發明輪子”,沒有一套科學的方法。 我花了大部分的Linux職業生涯在數著成千上萬的服務器,就像一個音樂家盯著樂譜能看到在和聲中隱藏的波形。過了一段時間,我開始了解數據中心的工作模式和行為。它們就像活著、會呼吸一般,有自己的跌宕起伏、周期和不同尋常。它們遠不止是簡單的疊加,當你把人作為元素添加到方程中,更是變得不可預知。
在諸如大型數據中心、云平臺架構和高性能的環境中,大型部署管理是一項非常微妙的任務。它需要大量的經驗、努力和對技術的理解來創造一個成功而高效的工作流程。未來的愿景和經營戰略也是需要的。但在相當多的時候,其中某一個重要部分是缺失的。 在解決問題時,沒有通盤戰略。 本書是我的一個創造性嘗試。那些年,在我設計解決方案和產品致力于使我掌控的數據中心變得更好、更強大且更高效的時候,也暴露了我在解決問題上的根本差距。人們很難完全理解這意味著什么。是的,它涉及工具和非法侵入系統。你可能會編寫一些腳本,或者花很長時間盯著日志在屏幕上滾動。你可能會繪制圖表來顯示數據趨勢。你可能會向同事請教他們領域的問題。你可能會參與或領導特別工作組試圖解決危急問題和恢復供電。但在最后,就像拼圖一樣,沒有一個統一的方法能解決所有的問題。 態勢感知的問題解決方法借鑒自科學領域,它試圖用數學來代替人的直覺。我們將使用統計工程和實驗設計以對抗混亂。我們會慢慢地、系統地、一步一步地工作,努力找到一種統一的方法用于解決同類問題。我們關注打破數據神話,擺脫一些波及數據中心的偏見和傳統。然后,我們將把系統故障排除的藝術轉化為產品。這可能聽起來很殘酷,藝術將按重量出售,但當你深入閱讀本書的時候,其中的必要性就變得顯而易見。你的那些不自在,在原本無論接觸監控、變化控制和管理、自動化以及其他哪怕是最好的實踐都會有的不自在,統統將會慢慢融入現代數據中心。 最后同樣重要的是,請不要忘記我們盡一切努力去研究和解決問題的初衷——樂趣和好奇心,這正是讓我們成為工程師和科學家的真正原因,正是讓我們熱愛數據中心技術編織的混亂、忙碌而又瘋狂的世界的原因。 快來和我們一路同行吧。 Igor Ljubuncic |