内容简介
性能调优有时被称为“黑色艺术”,因为有时有效地调整一个系统,要求具有更深层次的知识,且需要了解一个系统的硬件和软件组成以及系统之间的相互作用。性能优化是针对特定环境来定制系统的配置过程,或者是让某个特定的应用程序得到更好的响应时间或吞吐量的过程。
本书首先对 Linux 操作系统进行了深入剖析,并对最常用的企业监控工具Benchmark 及其他监控工具进行了详细的介绍,此外分析了系统中识别和分析瓶颈的过程,最后阐述如何使用性能衡量工具,以及如何对系统4 大子系统进行调整,使系统以好的状态应对不同的工作环境。
本书适合广大 Linux 用户深入学习,并适合计算机专业本科、硕士等专业的学生学习参考。
作者简介
赵永刚,2006-2008年期间主要从事思科网络研究,并在2008年获得思科CCNA 与CCNP国际认证。2009至今一直在从事Linux系统的研究,并在2009年和2010年分别获得红帽RHCE和RHCA国际认证。
目录
第1章 深入理解Linux操作系统 1
1.1 Linux进程管理 1
1.1.1 什么是进程 2
1.1.2 进程的生命周期 2
1.1.3 线程 3
1.1.4 进程优先级和nice等级 4
1.1.5 上下文切换 4
1.1.6 中断处理 5
1.1.7 进程状态 5
1.1.8 进程的内存段 6
1.1.9 Linux CPU调度程序 7
1.2 Linux内存体系结构 8
1.2.1 物理内存和虚拟内存 8
1.2.2 虚拟内存管理 10
1.3 Linux文件系统 12
1.3.1 虚拟文件系统 12
1.3.2 文件系统日志 13
1.3.3 Ext2 13
1.3.4 Ext3 15
1.3.5 Ext4 15
1.3.6 XFS 18
1.3.7 Btrfs 19
1.3.8 JFS 20
1.3.9 ReiserFS 20
1.4 Linux 磁盘 I/O 子系统 20
1.4.1 I/O子系统的体系结构 20
1.4.2 Cache 20
1.4.3 块层 23
1.4.4 I/O 设备驱动程序 25
1.4.5 RAID与文件系统 26
1.5 Linux 网络子系统 26
1.5.1 网络化的实现 26
1.5.2 TCP/IP 30
1.5.3 Offload 32
1.5.4 Bonding模块 32
1.6 了解Linux性能度量标准 32
1.6.1 处理器度量标准 32
1.6.2 内存度量标准 33
1.6.3 块设备度量标准 34
1.6.4 网络接口度量标准 34
第2章 监控工具 35
2.1 介绍 35
2.2 工具功能概述 35
2.3 监控工具 36
2.3.1 top 36
2.3.2 uptime 38
2.3.3 ps、pstree 38
2.3.4 free 43
2.3.5 mpstat 44
2.3.6 vmstat 46
2.3.7 iostat 50
2.3.8 netstat、ss 53
2.3.9 sar 58
2.3.10 numastat 70
2.3.11 pmap 72
2.3.12 iptraf 73
2.3.13 tcpdump和wireshark 76
2.3.14 strace和ltrace 92
2.3.15 gnuplot 97
2.3.16 Gnome System Monitor 106
2.3.17 KDE System Guard 114
第3章 Benchmark工具 123
3.1 CPU2006 124
3.1.1 安装与运行 126
3.1.2 runspec命令 130
3.1.3 配置文件 139
3.2 STREAM 167
3.2.1 什么是STREAM 167
3.3 Bonnie++ 172
3.4 Netperf 177
3.4.1 Netperf介绍 177
3.4.2 Netperf设计 178
3.4.3 CPU使用率 179
3.4.4 全局命令行选项 181
3.4.5 使用Netperf测量“批量数据”传输 186
3.4.6 使用Netperf测量“请求/响应” 192
3.4.7 使用netperf来测试总体性能 196
3.4.8 使用netperf测量双向传输 201
3.4.9 omni测试 203
3.4.10 其他的nerperf测试 206
第4章 分析性能瓶颈 208
4.1 识别系统瓶颈 208
4.1.1 收集信息 208
4.1.2 分析服务器性能 210
4.2 CPU瓶颈 210
4.2.1 查找CPU瓶颈 211
4.2.2 SMP 211
4.2.3 性能调整选项 211
4.3 内存瓶颈 212
4.3.1 查找内存瓶颈 212
4.3.2 性能调整选项 213
4.4 磁盘瓶颈 214
4.4.1 查找磁盘瓶颈 214
4.4.2 性能调整选项 216
4.5 网络瓶颈 216
4.5.1 查找网络瓶颈 216
4.5.2 性能调整选项 217
第5章 调整操作系统 218
5.1 调整原则 218
5.1.1 变更管理 219
5.2 安装注意事项 219
5.2.1 安装 219
5.2.2 检查当前的配置 220
5.2.3 最小化资源使用 227
5.2.4 SELinux 231
5.2.5 编译内核 232
5.3 更改内核参数 233
5.3.1 proc文件系统 233
5.3.2 存储参数的位置 235
5.3.3 使用sysctl命令 235
5.4 调整处理器子系统 235
5.4.1 调整进程优先级 236
5.4.2 CPU亲和力 237
5.4.3 平衡中断 240
5.4.4 NUMA系统 240
5.5 调整内存子系统 243
5.5.1 内存回收(设置内核交换和刷新脏数据行为) 243
5.5.2 调整swap 245
5.5.3 HugeTLBfs 247
5.5.4 内存同页合并 250
5.6 调整磁盘子系统 252
5.6.1 安装Linux前的硬件注意事项 252
5.6.2 I/O调度的调整和选择 254
5.6.3 文件系统的选择和调整 258
5.6.4 虚拟化存储 261
5.7 调整网络子系统 263
5.7.1 网卡绑定 263
5.7.2 巨帧 265
5.7.3 速度与双工模式 266
5.7.4 增加网络缓冲区 268
5.7.5 增加数据包队列 270
5.7.6 增加传输队列长度 270
5.7.7 配置offload 271
5.7.8 Netfilter 对性能的影响 272
5.7.9 流量特性的注意事项 275
5.7.10 额外的TCP/IP调整 276
5.8 限制资源使用 278
精彩书摘
这可能是最直接的指标。它描述了每个处理器的整体使用率。如果在一段持续时间内CPU的使用率超过80%,则处理器可能有瓶颈。用户进程消耗CPU的时间。描述了CPU花费在用户进程的百分比,包括nice time。较高值的user time通常是有利的,因为,在这种情况下,系统在执行实际的工作。内核操作消耗CPU的时间。其描述了CPU花费在内核操作的百分比,包括IRQ和softirq时间。较高和持续的systemtime值可以指出在网络和驱动程序堆栈中你的瓶颈。一个系统通常应保持花在内核操作上的时间尽可能的少。等待。CPU花费在等待(由于一个I/O操作发生等待)上的时间总量,像是阻塞值。一个系统不应该花费太多时间等待(因为I/O操作);否则应该检查各自的I/O子系统性能。 CPU空闲时间。其描述了系统空闲等待任务的CPU百分比。 Nice消耗CPU时间。描述了CPU花费在re.nicing进程(更改进程的执行顺序和优先级)上的时间百分比。 平均负载。load average不是一个百分比,而是以下总和的滚动平均值:队列中等待处理的进程数。 等待不可中断任务被完成的进程数。 可运行的进程。这个值描述了已经准备好执行的进程数。在一段持续的时间内,这个值不应该超过物理处理器数量的10倍。否则处理器可能是瓶颈。 阻塞的进程。不被执行的进程数,因为它们要等待I/O操作结束。阻塞的进程数能反映出是否有I/O瓶颈。 上下文切换。在系统上发生线程之间切换的数量。大量上下文切换如果与大量中断相关,则可能是驱动程序或应用程序出现问题的信号。上下文切换通常是不利的,因为每一次上下文切换都会导致CPU缓存被刷新,但是有些上下文切换是必要的。参考1.1.5节的内容。 中断。中断包含硬中断与软中断。硬中断对系统性能有更加不利的影响。较高的中断值表明可能有软件瓶颈,可能是在内核中,也可能是一个驱动程序出现瓶颈。记住,中断还包括CPU时钟引起的中断。参考1.1.6节的内容。 ……
前言/序言
Linux性能优化大师 电子书 下载 mobi epub pdf txt