性能调优有时被称为“黑色艺术”,因为有时有效地调整一个系统,要求具有更深层次的知识,且需要了解一个系统的硬件和软件组成,以及系统之间的相互作用。性能优化是针对特定环境来定制系统的配置过程,或者是让某个特定的应用程序得到更好的响应时间或吞吐量的过程。
《Linux性能优化大师》首先对Linux 操作系统进行了深入剖析,并对最常用的企业监控工具Benchmark 及其他监控工具进行了详细的介绍,此外分析了系统中识别和分析瓶颈的过程,最后阐述如何使用性能衡量工具,以及如何对系统的4 大子系统进行调整,使系统以最优状态应对不同的工作环境。
目录
- 第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