Linux性能优化

Linux性能优化

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

无论是Linux软件开发人员、系统管理员或终端用户,本书都是一本很好的参考书。

内容简介

本书介绍了目前重要和常用的Linux优化工具,以及如何应用它们来使应用程序/系统的性能达到优。读者可以通过众多案例,清晰地明了影响性能的关键部分及解决方案。

作者简介

作者菲利普G.伊佐特,业内知名的Linux性能优化专家,拥有20多年Linux和Unix系统性能优化经验。他曾经用6年时间为Compaq公司的Alpha性能团队设计Linux性能优化工具。此外,他协助Compaq公司制定了SPECCPU2000及后继版本的CPU性能度量标准。他还长期从事开发人员和系统管理者的Linux性能优化培训工作。

章节目录

版权信息

译者序

前言

致谢

第1章 性能追踪建议

1.1 常用建议

1.1.1 记大量的笔记(记录所有的事情)

1.1.2 自动执行重复任务

1.1.3 尽可能选择低开销工具

1.1.4 使用多个工具来搞清楚问题

1.1.5 相信你的工具

1.1.6 利用其他人的经验(慎重)

1.2 性能调查概要

1.2.1 找到指标、基线和目标

1.2.2 追踪近似问题

1.2.3 查看问题是否早已解决

1.2.4 项目开始(启动调查)

1.2.5 记录,记录,记录

1.3 本章小结

第2章 性能工具:系统CPU

2.1 CPU性能统计信息

2.1.1 运行队列统计

2.1.2 上下文切换

2.1.3 中断

2.1.4 CPU使用率

2.2 Linux性能工具:CPU

2.2.1 vmstat(虚拟内存统计)

2.2.2 top(2.0.x版本)

2.2.3 top(3.x.x版本)

2.2.4 procinfo(从/proc文件系统显示信息)

2.2.5 gnome-system-monitor

2.2.6 mpstat(多处理器统计)

2.2.7 sar(系统活动报告)

2.2.8 oprofile

2.3 本章小结

第3章 性能工具:系统内存

3.1 内存性能统计信息

3.1.1 内存子系统和性能

3.1.2 内存子系统(虚拟存储器)

3.2 Linux性能工具:CPU与内存

3.2.1 vmstat(II)

3.2.2 top(2.x和3.x)

3.2.3 procinfo(II)

3.2.4 gnome-system-monitor(II)

3.2.5 free

3.2.6 slabtop

3.2.7 sar(II)

3.2.8 /proc/meminfo

3.3 本章小结

第4章 性能工具:特定进程CPU

4.1 进程性能统计信息

4.1.1 内核时间vs.用户时间

4.1.2 库时间vs.应用程序时间

4.1.3 细分应用程序时间

4.2 工具

4.2.1 time

4.2.2 strace

4.2.3 ltrace

4.2.4 ps(进程状态)

4.2.5 ld.so(动态加载器)

4.2.6 gprof

4.2.7 oprofile(II)

4.2.8 语言:静态(C和C++)vs.动态(Java和Mono)

4.3 本章小结

第5章 性能工具:特定进程内存

5.1 Linux内存子系统

5.2 内存性能工具

5.2.1 ps(II)

5.2.2 /proc/

5.2.3 memprof

5.2.4 valgrind(cachegrind)

5.2.5 kcachegrind

5.2.6 oprofile(III)

5.2.7 ipcs

5.2.8 动态语言(Java和Mono)

5.3 本章小结

第6章 性能工具:磁盘I/O

6.1 磁盘I/O介绍

6.2 磁盘I/O性能工具

6.2.1 vmstat(III)

6.2.2 iostat

6.2.3 sar(III)

6.2.4 lsof(列出打开文件)

6.3 缺什么

6.4 本章小结

第7章 性能工具:网络

7.1 网络I/O介绍

7.1.1 链路层的网络流量

7.1.2 协议层网络流量

7.2 网络性能工具

7.2.1 mii-tool(媒体无关接口工具)

7.2.2 ethtool

7.2.3 ifconfig(接口配置)

7.2.4 ip

7.2.5 sar(IV)

7.2.6 gkrellm

7.2.7 iptraf

7.2.8 netstat

7.2.9 etherape

7.3 本章小结

第8章 实用工具:性能工具助手

8.1 性能工具助手

8.1.1 自动执行和记录命令

8.1.2 性能统计信息的绘图与分析

8.1.3 调查应用程序使用的库

8.1.4 创建和调试应用程序

8.2 工具

8.2.1 bash

8.2.2 tee

8.2.3 script

8.2.4 watch

8.2.5 gnumeric

8.2.6 ldd

8.2.7 objdump

8.2.8 GNU调试器(gdb)

8.2.9 gcc(GNU编译器套件)

8.3 本章小结

第9章 使用性能工具发现问题

9.1 并非总是万灵药

9.2 开始追踪

9.3 优化应用程序

9.3.1 内存使用有问题?

9.3.2 启动时间有问题?

9.3.3 加载器引入延迟了吗?

9.3.4 CPU使用(或完成时长)有问题?

9.3.5 应用程序的磁盘使用有问题?

9.3.6 应用程序的网络使用有问题?

9.4 优化系统

9.4.1 系统是受CPU限制的吗?

9.4.2 单个进程是受CPU限制的吗?

9.4.3 一个或多个进程使用了大多数的系统CPU吗?

9.4.4 一个或多个进程使用了单个CPU的大多数时间?

9.4.5 内核服务了许多中断吗?

9.4.6 内核的时间花在哪儿了?

9.4.7 交换空间的使用量在增加吗?

9.4.8 系统是受I/O限制的吗?

9.4.9 系统使用磁盘I/O吗?

9.4.10 系统使用网络I/O吗?

9.5 优化进程CPU使用情况

9.5.1 进程在用户还是内核空间花费了时间?

9.5.2 进程有哪些系统调用,完成它们花了多少时间?

9.5.3 进程在哪些函数上花了时间?

9.5.4 热点函数的调用树是怎样的?

9.5.5 Cache缺失与热点函数或源代码行是对应的吗?

9.6 优化内存使用情况

9.6.1 内核的内存使用量在增加吗?

9.6.2 内核使用的内存类型是什么?

9.6.3 特定进程的驻留集大小在增加吗?

9.6.4 共享内存的使用量增加了吗?

9.6.5 哪些进程使用了共享内存?

9.6.6 进程使用的内存类型是什么?

9.6.7 哪些函数正在使用全部的栈?

9.6.8 哪些函数的文本大小最大?

9.6.9 进程使用的库有多大?

9.6.10 哪些函数分配堆内存?

9.7 优化磁盘I/O使用情况

9.7.1 系统强调特定磁盘吗?

9.7.2 哪个应用程序访问了磁盘?

9.7.3 应用程序访问了哪些文件?

9.8 优化网络I/O使用情况

9.8.1 网络设备发送/接收量接近理论极限了吗?

9.8.2 网络设备产生了大量错误吗?

9.8.3 设备上流量的类型是什么?

9.8.4 特定进程要为流量负责吗?

9.8.5 流量是哪个远程系统发送的?

9.8.6 哪个应用程序套接字要为流量负责?

9.9 尾声

9.10 本章小结

第10章 性能追踪1:受CPU限制的应用程序(GIMP)

10.1 受CPU限制的应用程序

10.2 确定问题

10.3 找到基线/设置目标

10.4 为性能追踪配置应用程序

10.5 安装和配置性能工具

10.6 运行应用程序和性能工具

10.7 分析结果

10.8 转战网络

10.9 增加图像缓存

10.10 遇到(分片引发的)制约

10.11 解决问题

10.12 验证正确性

10.13 后续步骤

10.14 本章小结

第11章 性能追踪2:延迟敏感的应用程序(nautilus)

11.1 延迟敏感的应用程序

11.2 确定问题

11.3 找到基线/设置目标

11.4 为性能追踪配置应用程序

11.5 安装和配置性能工具

11.6 运行应用程序和性能工具

11.7 编译和检查源代码

11.8 使用gdb生成调用跟踪

11.9 找到时间差异

11.10 尝试一种可能的解决方案

11.11 本章小结

第12章 性能追踪3:系统级迟缓(prelink)

12.1 调查系统级迟缓

12.2 确定问题

12.3 找到基线/设置目标

12.4 为性能追踪配置应用程序

12.5 安装和配置性能工具

12.6 运行应用程序和性能工具

12.7 模拟解决方案

12.8 报告问题

12.9 测试解决方案

12.10 本章小结

第13章 性能工具:下一步是什么

13.1 Linux工具的现状

13.2 Linux还需要什么样的工具

13.2.1 漏洞1:性能统计信息分散

13.2.2 漏洞2:没有可靠并完整的调用树

13.2.3 漏洞3:I/O的归因

13.3 Linux的性能调优

13.3.1 可用的源代码

13.3.2 容易联系开发者

13.3.3 Linux还年轻

13.4 本章小结

附录A 性能工具的位置

附录B 安装oprofile

Linux性能优化是2017年由机械工业出版社华章分社出版,作者[美]菲利普G.伊佐特。

得书感谢您对《Linux性能优化》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
Linux就该这么学 电子书
本书基于RHEL 7系统编写,面向零基础读者,从Linux基础知识讲起,然后渐进式地提高内容难度,详细讲解Linux系统中各种服务的工作原理和配置方式,以匹配真实生产环境对运维人员的要求,突显内容的实用性。
Linux命令应用大词典 电子书
Linux系统常用命令全攻略:729个命令,1935个实例。
Linux是怎样工作的 电子书
原富士通一线Linux内核开发工程师聚焦Linux核心功能,讲解了操作系统是怎样工作的。
Ubuntu Linux操作系统 电子书
本书主要讲解Linux桌面操作系统Ubuntu的配置管理、桌面应用、编程和软件开发。全书共12章,内容包括系统安装和基本使用、图形界面与命令行、用户与组管理、文件与目录管理、磁盘存储管理、软件包管理、系统管理、桌面应用、Shell编程、C/C++编程、Java与Android应用开发、LAMP平台与PHP开发环境。本书内容丰富,注重实践性和可操作性,对每个知识点都有相应的操作示范,便于读者快速上手
Ubuntu Linux 从入门到精通 电子书
《UbuntuLinux从入门到精通》适合Linux初级用户使用,讲述了UbuntuLinux操作系统的系统管理、桌面办公应用、服务器配置等知识,用以辅助更多的用户得心应手地使用Linux操作系统作为桌面办公环境及服务器环境。主要包含UbuntuLinux12.04的安装、配置、桌面应用、系统管理,以及以UbuntuLinux12.04为平台的各种服务器的搭建及配置等内容,从入门到高级应用,从个人