万本电子书0元读

万本电子书0元读

顶部广告

性能之巅:洞悉系统、企业与云计算电子书

大型企业服务、云计算和虚拟计算系统都面临着严重的性能挑战。如今,国际知名的性能专家Brendan Gregg将业界验证的方法、工具和指标融汇在一起,足以应对*为复杂环境的分析和调优工作。《性能之巅》着力讲述Linux和Unix的性能,但所论述的性能问题适用于所有操作系统。你将洞察到系统是如何工作与执行的,学习到如何分析和改系统和应用程序性能的方法。 Gregg书中的示例都通过裸机和云端虚拟机做演示,所运行的系统包括基于Linux的Ubuntu、Fedora、CentOS和基于Illumos的Joyent SmartOS和OminiTI OmniOS。无论是CPU、内存、磁盘与网络的“传统”分析,还是像云计算和动态跟踪这类新领域,本书系统地覆盖了现代系统性能的方方面面。这本书还帮助你识别复杂性能中“未知的未知”——在你不知道的地方出现的瓶颈。本书还收纳了一个详实的研究实例,向你展示一个真实云计算问题是如何从头到尾做分析的。

售       价:¥

纸质售价:¥101.10购买纸书

404人正在读 | 0人评论 6.2

作       者:(美)Brendan Gregg(布兰登.格雷格)

出  版  社:电子工业出版社

出版时间:2015-08-01

字       数:34.9万

所属分类: 科技 > 计算机/网络 > 软件系统

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
大型网络、云计算、大数据和虚拟计算机系统的快速部署已经为性能优化带来了新的挑战。本书为此提供了解决方案。国际知名的性能优化专家Brendan Gregg汇集了***的技术和工具来分析调优大型网络或云计算的环境。本书的内容包括现代化的性能分析和容量规划;与云计算相关的新性能和可靠性挑战;方法、概念、术语、工具和指标;负载与结构问题的权衡;调整操作系统、CPU、内存、文件系统、磁盘、网络和总线;调整虚拟系统;性能相关的编程语言问题,对C、 C 、 Java和node.js编写的应用程序分析。<br/>【推荐语】<br/>大型企业服务、云计算和虚拟计算系统都面临着严重的性能挑战。如今,国际知名的性能专家Brendan Gregg将业界验证的方法、工具和指标融汇在一起,足以应对*为复杂环境的分析和调优工作。《性能之巅》着力讲述Linux和Unix的性能,但所论述的性能问题适用于所有操作系统。你将洞察到系统是如何工作与执行的,学习到如何分析和改系统和应用程序性能的方法。 Gregg书中的示例都通过裸机和云端虚拟机做演示,所运行的系统包括基于Linux的Ubuntu、Fedora、CentOS和基于Illumos的Joyent SmartOS和OminiTI OmniOS。无论是CPU、内存、磁盘与网络的“传统”分析,还是像云计算和动态跟踪这类新领域,本书系统地覆盖了现代系统性能的方方面面。这本书还帮助你识别复杂性能中“未知的未知”——在你不知道的地方出现的瓶颈。本书还收纳了一个详实的研究实例,向你展示一个真实云计算问题是如何从头到尾做分析的。 □ 现代性能分析与调优:术语、概念、模型、方法和技术 □ 动态跟踪技术与工具,收录DTrace、SystemTap和Perf示例 □ 内核内幕:揭示OS在做什么 □ 如何使用系统观测工具、口和框架 □ 理解和监控应用程序性能 □ 优化CPU:处理器、核、硬件线程、缓存、互联与内核调度 □ 内存优化:虚拟内存、换页、交换、内存架构、总线、地址空间与分配器 □ 文件系统I/O,包括缓存 □ 存储设备/控制器、磁盘I/O工作负载、RAID,以及内核I/O □ 网络相关性能问题:协议、套字、网卡和物理连。 □ OS和基于硬件虚拟化的性能实现,以及云计算所遇到的新问题 □ 基准测试:如何得到精确的结果并避免一般性的错误 《性能之巅:洞悉系统、企业与云计算》是企业和云计算环境运维人员的指导:系统管理员、网络管理员、数据库管理员和Web管理员、发工程师以及其他专业人员。对于新触性能优化的学生等人员,本书还提供了饱含Gregg丰富的教学经验的练习题目。<br/>【作者】<br/>Brendan Gregg 是Joyent公司的首席性能工程师,通过软件栈分析性能和扩展。在Sun Microsystem公司(之后为Oracle)作为首席性能和内核工程师期间,他的工作包括发ZFS L2ARC,这是一个利用闪速存储器提升性能的文件系统。他还发了许许多多的性能工具,部分工具收录在Mac OS X和Oracle Solaris 11的发行版中。他*近从事的工作覆盖针对Linux和illumos内核分析的性能可视化。他还是《DTrace》(Prentice Hall出版社,2011年)和《Solaris Performance and Tools》的两书合著者。 译者介绍: 徐章宁,1984年生,毕业于上海交通大学,硕士毕业后一直从事软件运维工作,在云存储与虚拟化领域浸沁多年,现于百度公司担任高级运维工程师,致力于大数据方向运维。钟爱源软件,平日热爱读书和写作,《算法谜题》《编程格调》合译者。 吴寒思,2010年毕业于南京大学软件学院,目前就职于EMC公司核心技术部从事文件系统研发工作,拥有2项文件系统方面专利。对程序设计、系统存储、云计算和操作系统有浓厚兴趣。 陈磊,1979年生,毕业于同济大学。从事网络、系统和IT管理14年。曾就职于EMC中国卓越研发集团,任实验室经理。目前在互联网金融企业负责基础架构。兴趣广泛,尤其热爱源软件和其它各类新兴技术的探讨和研究。<br/>
目录展开

内容简介

推荐序1

推荐序2

推荐序3

推荐序4

推荐序5

推荐序6

译者序

前言

致谢

关于作者

第1章 绪论

1.1 系统性能

1.2 人员

1.3 事情

1.4 视角

1.5 性能是充满挑战的

1.5.1 性能是主观的

1.5.2 系统是复杂的

1.5.3 可能有多个问题并存

1.6 延时

1.7 动态跟踪

1.8 云计算

1.9 案例研究

1.9.1 缓慢的磁盘

1.9.2 软件变更

1.9.3 更多阅读

第2章 方法

2.1 术语

2.2 模型

2.2.1 受测系统

2.2.2 排队系统

2.3 概念

2.3.1 延时

2.3.2 时间量级

2.3.3 权衡三角

2.3.4 调整的影响

2.3.5 合适的层级

2.3.6 性能建议的时间点

2.3.7 负载vs.架构

2.3.8 扩展性

2.3.9 已知的未知

2.3.10 指标

2.3.11 使用率

2.3.12 饱和度

2.3.13 剖析

2.3.14 缓存

2.4 视角

2.4.1 资源分析

2.4.2 工作负载分析

2.5 方法

2.5.1 街灯讹方法

2.5.2 随机变动讹方法

2.5.3 责怪他人讹方法

2.5.4 Ad Hoc 核对清单法

2.5.5 问题陈述法

2.5.6 科学法

2.5.7 诊断循环

2.5.8 工具法

2.5.9 USE 方法

2.5.10 工作负载特征归纳

2.5.11 向下挖掘分析

2.5.12 延时分析

2.5.13 R 方法

2.5.14 事件跟踪

2.5.15 基础线统计

2.5.16 静态性能调整

2.5.17 缓存调优

2.5.18 微基准测试

2.6 建模

2.6.1 企业vs.云

2.6.2 可视化识别

2.6.3 Amdahl 扩展定律

2.6.4 通用扩展定律

2.6.5 排队理论

2.7 容量规划

2.7.1 资源极限

2.7.2 因素分析

2.7.3 扩展方案

2.8 统计

2.8.1 量化性能

2.8.2 平均值

2.8.3 标准方差、百分位数、中位数

2.8.4 变异系数

2.8.5 多重模态分布

2.8.6 异常值

2.9 监视

2.9.1 基于时间的规律

2.9.2 监测产品

2.9.3 启动以来的信息统计

2.10 可视化

2.10.1 线图

2.10.2 散点图

2.10.3 热图

2.10.4 表面图

2.10.5 可视化工具

2.11 练习

2.12 参考

第3章 操作系统

3.1 术语

3.2 背景

3.2.1 内核

3.2.2 栈

3.2.3 中断和中断线程

3.2.4 中断优先级

3.2.5 进程

3.2.6 系统调用

3.2.7 虚拟内存

3.2.8 内存管理

3.2.9 调度器

3.2.10 文件系统

3.2.11 缓存

3.2.12 网络

3.2.13 设备驱动

3.2.14 多处理器

3.2.15 抢占

3.2.16 资源管理

3.2.17 观测性

3.3 内核

3.3.1 UNIX

3.3.2 基于Solaris

3.3.3 基于Linux

3.3.4 差异

3.4 练习

3.5 参考

第4章 观测工具

4.1 工具类型

4.1.1 计数器

4.1.2 跟踪

4.1.3 剖析

4.1.4 监视(sar)

4.2 观测来源

4.2.1 /proc

4.2.2 /sys

4.2.3 kstat

4.2.4 延时核算

4.2.5 微状态核算

4.2.6 其他的观测源

4.3 DTrace

4.3.1 静态和动态跟踪

4.3.2 探针

4.3.3 provider

4.3.4 参数

4.3.5 D 语言

4.3.6 内置变量

4.3.7 action

4.3.8 变量类型

4.3.9 单行命令

4.3.10 脚本

4.3.11 开销

4.3.12 文档和资源

4.4 SystemTap

4.4.1 探针

4.4.2 tapset

4.4.3 action 和内置变量

4.4.4 示例

4.4.5 开销

4.4.6 文档和资源

4.5 perf

4.6 观测工具的观测

4.7 练习

4.8 参考

第5章 应用程序

5.1 应用程序基础

5.1.1 目标

5.1.2 常见情况的优化

5.1.3 观测性

5.1.4 大O 标记法

5.2 应用程序性能技术

5.2.1 选择I/O 尺寸

5.2.2 缓存

5.2.3 缓冲区

5.2.4 轮询

5.2.5 并发和并行

5.2.6 非阻塞I/O

5.2.7 处理器绑定

5.3 编程语言

5.3.1 编译语言

5.3.2 解释语言

5.3.3 虚拟机

5.3.4 垃圾回收

5.4 方法和分析

5.4.1 线程状态分析

5.4.2 CPU 剖析

5.4.3 系统调用分析

5.4.4 I/O 剖析

5.4.5 工作负载特征归纳

5.4.6 USE 方法

5.4.7 向下挖掘法

5.4.8 锁分析

5.4.9 静态性能调优

5.5 练习

5.6 参考

第6章 CPU

6.1 术语

6.2 模型

6.2.1 CPU 架构

6.2.2 CPU 内存缓存

6.2.3 CPU 运行队列

6.3 概念

6.3.1 时钟频率

6.3.2 指令

6.3.3 指令流水线

6.3.4 指令宽度

6.3.5 CPI,IPC

6.3.6 使用率

6.3.7 用户时间/内核时间

6.3.8 饱和度

6.3.9 抢占

6.3.10 优先级反转

6.3.11 多进程,多线程

6.3.12 字长

6.3.13 编译器优化

6.4 架构

6.4.1 硬件

6.4.2 软件

6.5 方法

6.5.1 工具法

6.5.2 USE 方法

6.5.3 负载特征归纳

6.5.4 剖析

6.5.5 周期分析

6.5.6 性能监控

6.5.7 静态性能调优

6.5.8 优先级调优

6.5.9 资源控制

6.5.10 CPU 绑定

6.5.11 微型基准测试

6.5.12 扩展

6.6 分析

6.6.1 uptime

6.6.2 vmstat

6.6.3 mpstat

6.6.4 sar

6.6.5 ps

6.6.6 top

6.6.7 prstat

6.6.8 pidstat

6.6.9 time 和ptime

6.6.10 DTrace

6.6.11 SystemTap

6.6.12 perf

6.6.13 cpustat

6.6.14 其他工具

6.6.15 可视化

6.7 实验

6.7.1 Ad Hoc

6.7.2 SysBench

6.8 调优

6.8.1 编译器选项

6.8.2 调度优先级和调度类

6.8.3 调度器选项

6.8.4 进程绑定

6.8.5 独占CPU 组

6.8.6 资源控制

6.8.7 处理器选项(BIOS 调优)

6.9 练习

6.10 参考资料

第7章 内存

7.1 术语

7.2 概念

7.2.1 虚拟内存

7.2.2 换页

7.2.3 按需换页

7.2.4 过度提交

7.2.5 交换

7.2.6 文件系统缓存占用

7.2.7 使用率和饱和度

7.2.8 分配器

7.2.9 字长

7.3 架构

7.3.1 硬件

7.3.2 软件

7.3.3 进程地址空间

7.4 方法

7.4.1 工具法

7.4.2 USE 方法

7.4.3 使用特征归纳

7.4.4 周期分析

7.4.5 性能监测

7.4.6 泄漏检测

7.4.7 静态性能调优

7.4.8 资源控制

7.4.9 微基准测试

7.5 分析

7.5.1 vmstat

7.5.2 sar

7.5.3 slabtop

7.5.4 ::kmstat

7.5.5 ps

7.5.6 top

7.5.7 prstat

7.5.8 pmap

7.5.9 DTrace

7.5.10 SystemTap

7.5.11 其他工具

7.6 调优

7.6.1 可调参数

7.6.2 多个页面大小

7.6.3 分配器

7.6.4 资源控制

7.7 练习

7.8 参考资料

第8章 文件系统

8.1 术语

8.2 模型

8.2.1 文件系统接口

8.2.2 文件系统缓存

8.2.3 二级缓存

8.3 概念

8.3.1 文件系统延时

8.3.2 缓存

8.3.3 随机与顺序I/O

8.3.4 预取

8.3.5 预读

8.3.6 写回缓存

8.3.7 同步写

8.3.8 裸I/O 和直接I/O

8.3.9 非阻塞I/O

8.3.10 内存映射文件

8.3.11 元数据

8.3.12 逻辑I/O vs.物理I/O

8.3.13 操作并非不平等

8.3.14 特殊文件系统

8.3.15 访问时间戳

8.3.16 容量

8.4 架构

8.4.1 文件系统I/O 栈

8.4.2 VFS

8.4.3 文件系统缓存

8.4.4 文件系统特性

8.4.5 文件系统种类

8.4.6 卷和池

8.5 方法

8.5.1 磁盘分析

8.5.2 延时分析

8.5.3 负载特征归纳

8.5.4 性能监控

8.5.5 事件跟踪

8.5.6 静态性能调优

8.5.7 缓存调优

8.5.8 负载分离

8.5.9 内存文件系统

8.5.10 微型基准测试

8.6 分析

8.6.1 vfsstat

8.6.2 fsstat

8.6.3 strace、truss

8.6.4 DTrace

8.6.5 SystemTap

8.6.6 LatencyTOP

8.6.7 free

8.6.8 top

8.6.9 vmstat

8.6.10 sar

8.6.11 slabtop

8.6.12 mdb::kmastat

8.6.13 fcachestat

8.6.14 /proc/meminfo

8.6.15 mdb::memstat

8.6.16 kstat

8.6.17 其他工具

8.6.18 可视化

8.7 实验

8.7.1 Ad Hoc

8.7.2 微型基准测试工具

8.7.3 缓存写回

8.8 调优

8.8.1 应用程序调用

8.8.2 ext3

8.8.3 ZFS

8.9 练习

8.10 参考资料

第9章 磁盘

9.1 术语

9.2 模型

9.2.1 简单磁盘

9.2.2 缓存磁盘

9.2.3 控制器

9.3 概念

9.3.1 测量时间

9.3.2 时间尺度

9.3.3 缓存

9.3.4 随机vs.连续I/O

9.3.5 读/写比

9.3.6 I/O 大小

9.3.7 IOPS 并不平等

9.3.8 非数据传输磁盘命令

9.3.9 使用率

9.3.10 饱和度

9.3.11 I/O 等待

9.3.12 同步vs.异步

9.3.13 磁盘vs.应用程序I/O

9.4 架构

9.4.1 磁盘类型

9.4.2 接口

9.4.3 存储类型

9.4.4 操作系统磁盘I/O 栈

9.5 方法

9.5.1 工具法

9.5.2 USE 方法

9.5.3 性能监控

9.5.4 负载特征归纳

9.5.5 延时分析

9.5.6 事件跟踪

9.5.7 静态性能调优

9.5.8 缓存调优

9.5.9 资源控制

9.5.10 微基准测试

9.5.11 伸缩

9.6 分析

9.6.1 iostat

9.6.2 sar

9.6.3 pidstat

9.6.4 DTrace

9.6.5 SystemTap

9.6.6 perf

9.6.7 iotop

9.6.8 iosnoop

9.6.9 blktrace

9.6.10 MegaCli

9.6.11 smartctl

9.6.12 可视化

9.7 实验

9.7.1 Ad Hoc

9.7.2 自定义负载生成器

9.7.3 微基准测试工具

9.7.4 随机读示例

9.8 调优

9.8.1 操作系统可调参数

9.8.2 磁盘设备可调参数

9.8.3 磁盘控制器可调参数

9.9 练习

9.10 参考资料

第10章 网络

10.1 术语

10.2 模型

10.2.1 网络接口

10.2.2 控制器

10.2.3 协议栈

10.3 概念

10.3.1 网络和路由

10.3.2 协议

10.3.3 封装

10.3.4 包长度

10.3.5 延时

10.3.6 缓冲

10.3.7 连接积压队列

10.3.8 接口协商

10.3.9 使用率

10.3.10 本地连接

10.4 架构

10.4.1 协议

10.4.2 硬件

10.4.3 软件

10.5 方法

10.5.1 工具法

10.5.2 USE 方法

10.5.3 工作负载特征归纳

10.5.4 延时分析

10.5.5 性能监测

10.5.6 数据包嗅探

10.5.7 TCP 分析

10.5.8 挖掘分析

10.5.9 静态性能调优

10.5.10 资源控制

10.5.11 微基准测试

10.6 分析

10.6.1 netstat

10.6.2 sar

10.6.3 ifconfig

10.6.4 ip

10.6.5 nicstat

10.6.6 dladm

10.6.7 ping

10.6.8 traceroute

10.6.9 pathchar

10.6.10 tcpdump

10.6.11 snoop

10.6.12 Wireshark

10.6.13 DTrace

10.6.14 SystemTap

10.6.15 perf

10.6.16 其他工具

10.7 实验

10.7.1 iperf

10.8 调优

10.8.1 Linux

10.8.2 Solaris

10.8.3 配置

10.9 练习

10.10 参考

第11章 云计算

11.1 背景

11.1.1 性价比

11.1.2 可扩展的架构

11.1.3 容量规划

11.1.4 存储

11.1.5 多租户

11.2 OS 虚拟化

11.2.1 系统开销

11.2.2 资源控制

11.2.3 可观测性

11.3 硬件虚拟化

11.3.1 系统开销

11.3.2 资源控制

11.3.3 可观测性

11.4 比较

11.5 练习

11.6 参考资料

第12章 基准测试

12.1 背景

12.1.1 事情

12.1.2 有效的基准测试

12.1.3 基准测试之罪

12.2 基准测试的类型

12.2.1 微基准测试

12.2.2 模拟

12.2.3 回放

12.2.4 行业标准

12.3 方法

12.3.1 被动基准测试

12.3.2 主动基准测试

12.3.3 CPU 剖析

12.3.4 USE 方法

12.3.5 工作负载特征归纳

12.3.6 自定义基准测试

12.3.7 逐渐增加负载

12.3.8 完整性检查

12.3.9 统计分析

12.4 基准测试问题

12.5 练习

12.6 参考

第13章 案例研究

13.1 案例研究:红鲸

13.1.1 问题陈述

13.1.2 支持

13.1.3 上手

13.1.4 选择征途

13.1.5 USE 方法

13.1.6 我们做完了吗

13.1.7 二度出击

13.1.8 基础

13.1.9 忽略红鲸

13.1.10 审问内核

13.1.11 为什么

13.1.12 尾声

13.2 结语

13.3 附加信息

13.4 参考

附录A USE法:Linux

附录B USE法:Solaris

附录C sar总结

附录D DTrace单行命令

附录E 从DTrace到SystemTap

附录F 精选练习题答案

附录G 系统性能名人录

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部