《高性能计算的问题解决之道 Linux态势感知方法、实用工具及实践技巧》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:(美)伊戈尔·卢布希斯著;张文力译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2018
  • ISBN:9787111589785
  • 页数:253 页
图书介绍:本书由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

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