图书介绍
LINUX服务器性能调整PDF|Epub|txt|kindle电子书版本下载
- (美)SanderaK.Johnson,GerritHuizenga等编著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302205326
- 出版时间:2009
- 标注页数:422页
- 文件大小:88MB
- 文件页数:440页
- 主题词:Linux操作系统
PDF下载
下载说明
LINUX服务器性能调整PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第Ⅰ部分 Linux概述3
第1章 Linux系统安装的性能问题3
1.1 引言3
1.2 安装前的规划3
1.2.1 选择分区位置4
1.2.2 使用多个硬盘驱动器4
1.2.3 选择文件系统4
1.2.4 转换文件系统5
1.2.5 配置RAID6
1.3 Linux 2.6内核的可配置属性8
1.3.1 I/O提升器8
1.3.2 超大TLB页面支持8
1.4 Linux日志工具9
1.4.1 /var/log/messages文件9
1.4.2 /var/log/XFree86.0.log文件9
1.4.3 日志轮转10
1.4.4 日志工具10
1.4.5 日志定制10
1.5 BSD与系统V的初始化机制11
1.5.1 初始化表(/etc/inittab)11
1.5.2 BSD的初始化表(Slackware)12
1.5.3 系统V的初始化表(Red Hat)13
1.6 小结14
1.7 参考文献14
第2章 Linux内核机制15
2.1 引言15
2.2 Linux的发展历程15
2.3 Linux内核体系结构15
2.3.1 内核的职能16
2.3.2 内核组织结构与模块16
2.3.3 内核服务16
2.3.4 /proc文件系统的外部性能视图16
2.3.5 内存管理17
2.4 进程管理18
2.4.1 进程、任务与内核线程19
2.4.2 调度与上下文切换19
2.5 进程间通信20
2.5.1 信号20
2.5.2 管道20
2.5.3 系统V的IPC机制21
2.6 Linux对称多处理(SMP)模型22
2.6.1 多处理系统类型22
2.6.2 同步与数据串行化22
2.6.3 锁、锁粒度与锁开销22
2.6.4 cache一致性23
2.6.5 处理器亲和度23
2.7 文件系统23
2.7.1 虚拟文件系统(VFS)23
2.7.2 ext2fs23
2.7.3 LVM与RAID24
2.7.4 磁盘卷组24
2.7.5 设备相关文件25
2.7.6 devfs25
2.8 Linux 2.6内核的新特性26
2.9 小结26
2.10 参考文献27
第3章 服务器体系结构29
3.1 引言29
3.2 Linux服务器29
3.3 多处理器与多处理机制30
3.3.1 服务器拓扑结构30
3.3.2 处理器的混用机制31
3.4 内存32
3.5 I/O33
3.6 Linux企业级服务器34
3.7 Linux集群35
3.7.1 高性能集群35
3.7.2 高可用集群36
3.8 服务器系统示例36
3.8.1 IBM zSeries大型机36
3.8.2 刀片服务器39
3.8.3 NUMA39
3.9 小结44
第Ⅱ部分 性能分析工具47
第4章 系统性能监控47
4.1 引言47
4.2 Linux与性能分析的背景知识47
4.3 CPU利用率49
4.3.1 vmstat51
4.3.2 top与gtop工具53
4.3.3 sar54
4.4 内存利用率56
4.4.1 /proc/meminfo与/proc/slabinfo56
4.4.2 ps57
4.4.3 vmstat59
4.5 I/O利用率59
4.5.1 iostat61
4.5.2 sar62
4.6 网络利用率63
4.6.1 网络统计信息64
4.6.2 接口信息66
4.6.3 TCP/IP协议统计数据66
4.6.4 nfsstat67
4.7 小结67
4.8 参考文献67
第5章 系统跟踪工具69
5.1 引言69
5.2 系统跟踪机制的需求69
5.3 top70
5.4 strace72
5.5 OProfile74
5.5.1 opcontrol75
5.5.2 数据概况描述工具76
5.6 Performance Inspector82
5.6.1 Above Idle83
5.6.2 Per-Thread Time84
5.6.3 Trace Profiling86
5.6.4 指令跟踪89
5.6.5 Java Profiler91
5.6.6 Java Lock Monitor103
5.6.7 Performance Inspector的执行工具106
5.7 小结107
5.8 参考文献107
第6章 工作负荷的性能基准测试109
6.1 引言109
6.2 改进工作负荷的基准测试方法110
6.3 基准测试的类型111
6.4 微基准测试111
6.4.1 操作系统基准测试111
6.4.2 磁盘基准测试124
6.4.3 网络基准测试132
6.4.4 应用基准测试133
6.5 Web服务器基准测试137
6.5.1 SPECweb、SPECweb SSL与TPC-W137
6.5.2 SPECjAppServer与ECPerf138
6.5.3 其他应用基准测试139
6.6 小结139
第Ⅲ部分 系统调优143
第7章 系统性能原理和策略:基准测试方法的案例分析143
7.1 引言143
7.2 性能评价方法143
7.2.1 跟踪机制143
7.2.2 工作负荷特征描述144
7.2.3 数值分析144
7.2.4 模拟方法144
7.3 基准测试案例分析144
7.4 分析方法145
7.4.1 软硬件配置145
7.4.2 运行规则146
7.4.3 设置目标146
7.4.4 测量、分析与调优146
7.4.5 退出策略147
7.5 基准测试程序148
7.5.1 基准测试程序介绍148
7.5.2 性能结果149
7.6 小结151
7.7 致谢152
7.8 参考文献152
第8章 调度器调优153
8.1 引言153
8.2 单处理器系统153
8.3 对称多处理154
8.4 非一致内存访问154
8.5 对称多线程155
8.6 Linux 2.6内核调度器155
8.7 负载平衡156
8.8 调度器的可调参数157
8.8.1 *CHILD_PENALTY157
8.8.2 *CREDIT_LIMIT157
8.8.3 *EXIT_WEIGHT157
8.8.4 *INTERACTIVE_DELTA157
8.8.5 *MAX_SLEEP_AVG158
8.8.6 *MAX_TIMESLICE158
8.8.7 *MIN_TIMESLICE158
8.8.8 *PARENT_PENALTY158
8.8.9 *PRIO_BONUS_RATIO158
8.8.10 *STARVATION_LIMIT158
8.9 小结159
8.10 参考文献159
第9章 Linux虚存的性能问题161
9.1 引言161
9.2 内存与地址空间162
9.2.1 地址空间162
9.2.2 用户地址空间162
9.2.3 VM区域163
9.2.4 内核地址空间164
9.3 高端内存支持165
9.4 分页与交换机制165
9.4.1 替换策略166
9.4.2 页面替换与内存平衡167
9.5 Linux页表167
9.6 Linux 2.6内核中的新特性169
9.6.1 rmap与objrmap169
9.6.2 大型页面的支持169
9.6.3 页面分配与替换170
9.6.4 Slab分配器171
9.6.5 VM的可调参数171
9.6.6 CPU调度器173
9.7 小结175
9.8 参考文献175
第10章 I/O子系统的性能问题177
10.1 引言177
10.2 I/O调度与块I/O(BIO)层177
10.2.1 Linux 2.6内核的I/O调度器178
10.2.2 Linux 2.4内核的I/O调度器179
10.2.3 Linux 2.6内核的最终期限I/O调度器179
10.2.4 调度器的可调参数180
10.2.5 Linux 2.6内核的Anticipatory I/O调度器181
10.2.6 Linux 2.6内核的CFQ调度器183
10.2.7 Linux 2.6内核的noop I/O调度器183
10.2.8 I/O调度器的性能含义183
10.3 批量读写请求184
10.4 读预测启发算法184
10.5 影响性能的I/O部件185
10.6 I/O设备寻址186
10.7 小结186
10.8 参考文献186
第11章 文件系统调优189
11.1 引言189
11.2 文件系统基本知识189
11.2.1 文件系统的实现考虑189
11.2.2 创建优化的文件系统190
11.2.3 文件系统基本术语190
11.3 日志型文件系统192
11.3.1 文件系统的故障处理机制193
11.3.2 事务机制193
11.3.3 选项194
11.4 影响文件系统性能的磁盘因素195
11.4.1 物理磁盘存储器的考虑事项195
11.4.2 磁盘的性能特征196
11.4.3 传输速率196
11.4.4 hdparm197
11.5 文件系统的碎片整理199
11.6 文件同步199
11.6.1 确保数据或文件完整性200
11.6.2 使用函数调用200
11.6.3 使用文件描述符200
11.6.4 sync/fsync的性能含义201
11.7 bdflush参数201
11.8 异步输入与输出202
11.8.1 使用异步I/O202
11.8.2 异步I/O函数202
11.9 原始磁盘I/O203
11.9.1 在Linux上设置原始I/O203
11.9.2 示例203
11.10 Ext2与Ext3文件系统204
11.10.1 Ext2的组织结构204
11.10.2 Ext2文件系统中的块分配方式206
11.10.3 创建Ext2文件系统206
11.10.4 Ext2文件系统的Ext3扩展机制207
11.10.5 Ext3的内核配置支持207
11.10.6 Ext3文件系统调优方法208
11.10.7 创建Ext3分区208
11.10.8 Ext2与Ext3的转换209
11.10.9 建立外部日志209
11.10.10 Ext2/Ext3工具209
11.11 ReiserFS210
11.11.1 ReiserFS的内核配置支持211
11.11.2 ReisetFS文件系统调优方法211
11.11.3 创建ReiserFS文件系统211
11.11.4 建立外部日志212
11.11.5 挂接ReiserFS文件系统212
11.11.6 挂接选项213
11.11.7 调优ReiserFS213
11.11.8 ReiserFS文件系统实用工具214
11.12 日志式文件系统214
11.12.1 JFS的内核配置支持215
11.12.2 JFS文件系统的调优方法215
11.12.3 创建JFS文件系统216
11.12.4 建立外部日志216
11.12.5 挂接文件系统216
11.12.6 挂接选项216
11.12.7 调优JFS217
11.12.8 JFS文件系统实用工具217
11.13 下一代文件系统217
11.13.1 XFS的内核配置支持218
11.13.2 XFS文件系统的调优方法218
11.13.3 创建XFS文件系统219
11.13.4 容量饱和时的文件系统行为219
11.13.5 建立外部日志219
11.13.6 挂接文件系统220
11.13.7 挂接选项220
11.13.8 调优XFS220
11.13.9 XFS文件系统实用工具221
11.14 小结222
11.15 参考文献223
第12章 网络调优225
12.1 引言225
12.2 网络协议栈225
12.3 内核参数调优机制226
12.4 内核自动调优机制226
12.5 核心内核参数227
12.6 TCP/IPv4协议内核参数228
12.6.1 TCP缓冲区与内存管理228
12.6.2 TCP选项230
12.6.3 TCP连接管理231
12.6.4 TCP连接保持管理232
12.6.5 IP端口范围233
12.7 小结233
12.8 参考文献233
第13章 进程间通信235
13.1 引言235
13.2 进程间通信的定义235
13.3 Linux SysV的IPC资源与ipcs命令236
13.3.1 ipcs命令236
13.3.2 IPC标识符及其限制237
13.4 信号量参数238
13 4 1 semmni238
13.4.2 semmns239
13.4.3 semmsl239
13.4.4 semopm239
13.4.5 semvmx239
13.4.6 未用的信号量参数239
13.5 消息队列参数240
13.5.1 msgmni240
13.5.2 msgmax240
13.5.3 msgmnb241
13.5.4 未用的消息队列参数241
13.6 共享内存段参数241
13.6.1 shmmni242
13.6.2 shmmax242
13.6.3 shrnmin242
13.6.4 shmall242
13.7 可配置IPC参数的动态修改机制242
13.7.1 使用/proc242
13.7.2 使用sysctl243
13.8 IPC参数的静态配置243
13.9 管道机制243
13.10 小结244
第14章 代码调优245
14.1 引言245
14.2 一般原则245
14.3 应用的概要描述工具246
14.4 编译器选项调优246
14.4.1 性能调优的基本步骤247
14.4.2 编译器优化的问题247
14.5 代码调优247
14.6 算法设计调优248
14.6.1 问题与解决方案的可能性248
14.6.2 问题描述248
14.6.3 程序249
14.6.4 设计代码251
14.6.5 服务器251
14.6.6 计时252
14.6.7 Socket253
14.6.8 线程256
14.6.9 同步259
14.6.10 文件I/O262
14.6.11 客户端264
14.6.12 代码讨论266
14.6.13 编译选项266
14.6.14 链接库267
14.7 小结268
第Ⅳ部分 Linux服务器应用的性能特征第15章 Web服务器的性能调优271
15.1 引言271
15.2 HTTP请求与响应272
15.3 Web服务器的网络行为273
15.4 Web服务器事务275
15.5 Web服务器模型275
15.6 Web服务器的调优方法276
15.6.1 Web服务器的通用调优机制277
15.6.2 Apache服务器的调优机制277
15.6.3 Flash与事件驱动的其他服务器的调优机制278
15.6.4 Tux的调优机制278
15.6.5 Web服务器的性能评价工具278
15.7 小结279
15.8 参考文献279
第16章 文件与打印服务器的性能调优281
16.1 引言281
16.2 专用网络存储服务器的类型282
16.3 网络存储性能的优化方法282
16.3.1 确定远程存储的数据282
16.3.2 SAN与网络文件系统/NAS282
16.3.3 网络文件系统协议283
16.3.4 客户与服务器的实现选择286
16.3.5 Linux客户端调优的关键概念287
16.3.6 Linux文件服务器的调优机制290
16.3.7 性能测量292
16.3.8 改进容量规划的负荷测量方法292
16.3.9 打印服务器的性能因素293
16.4 参考文献293
第17章 数据库服务器的性能调优295
17.1 引言295
17.2 数据库体系结构295
17.3 数据库的性能调优领域296
17.3.1 I/O调优296
17.3.2 队列长度与响应时间296
17.3.3 负载平衡297
17.3.4 全局内存298
17.3.5 日志设备299
17.3.6 典型的数据库工作负荷300
17.4 进程管理300
17.5 内存管理301
17.6 I/O管理302
17.6.1 回弹缓冲区302
17.6.2 原始I/O302
17.6.3 向量I/O303
17.6.4 异步I/O303
17.6.5 直接I/O303
17.6.6 块I/O304
17.6.7 I/O请求锁304
17.7 小结304
第18章 应用服务器的性能调优305
18.1 引言305
18.2 应用服务器概念305
18.3 Java、J2EE与应用服务器305
18.4 应用服务器的性能特征307
18.4.1 应用服务器的特征308
18.4.2 Linux上的应用服务器308
18.5 性能与高可用性的改进316
18.5.1 SMP扩展性316
18.5.2 集群317
18.5.3 拓扑结构319
18.5.4 性能调优322
18.6 小结324
18.7 参考文献325
第Ⅴ部分 调优案例分析329
第19章 Linux 2.6内核I/O调度器调优案例分析329
19.1 引言329
19.2 基准测试环境与工作负荷概况330
19.3 I/O调度器与性能331
19.4 单CPU单磁盘配置331
19.5 8路RAID-5配置332
19.6 16路RAID-0配置335
19.7 AS串行读性能335
19.8 AS与Deadline的性能336
19.9 CFQ性能337
19.10 小结339
19.11 参考文献339
第20章 文件系统调优实例分析341
20.1 引言341
20.2 文件布局分析341
20.2.1 Ext2/Ext3文件系统布局341
20.2.2 日志文件系统(JFS)布局347
20.2.3 ReiserFS文件系统布局349
20.2.4 XFS文件系统布局351
20.3 文件系统的调优机制353
20.3.1 Ext3的外部日志调优选项353
20.3.2 ReiserFS的外部日志调优选项357
20.3.3 JFS的外部日志调优选项358
20.3.4 XFS的调优选项359
20.4 I/O的测量方法361
20.4.1 iostat361
20.4.2 iostat与sar工具362
20.5 小结367
20.6 参考文献367
第21章 Linux系统网络性能实例分析369
21.1 引言369
21.2 实例分析中使用的基准测试369
21.2.1 NetBench370
21 2.2 Netperf3370
21.2.3 VolanoMark370
21.2.4 SPECWeb99370
21.3 Linux 2.4与2.6内核中的增强机制371
21.3.1 SendFile371
21.3.2 TCP分段卸载373
21.3.3 网络负荷中的进程与IRQ亲合性375
21.3.4 NAPI376
21.3.5 TCP卸载引擎378
21.4 示例分析379
21.4.1 NetBench380
21.4.2 Netperf3(千兆位以太网调优实例分析)381
21.4.3 VolanoMark383
21.4.4 SPECWeb99384
21.5 小结386
21.6 参考文献387
第22章 商用负载调优实例分析389
22.1 引言389
22.2 商用负载调优概述389
22.3 J2EE的标准商用负载模型390
22.4 商用负载模型实例:股票交易390
22.4.1 系统配置391
22.4.2 Trade3的详细信息392
22.4.3 性能分析方法395
22.5 性能分析试验397
22.5.1 Web服务器398
22.5.2 数据库后端程序399
22.5.3 Java虚拟机404
22.5.4 应用服务器406
22.5.5 超线程408
22.6 小结409
22.7 参考文献410
附录A 内核参数调优411
A.1 引言411
A.2 sysctl接口411
A.3 procfs接口412
A.4 sysfs(只针对Linux 2.6内核)413
A.5 通用内核参数413
A.5.1 共享内存413
A.5.2 进程414
A.5.3 信号414
A.5.4 概要分析/调试414
A.5.5 系统414
A.6 虚存参数415
A.7 文件系统参数416
A.8 网络内核参数417
A.8.1 网络核心参数418
A.8.2 ICMP418
A.8.3 邻居419
A.8.4 配置419
A.8.5 路由420
A.8.6 TCP420
A.8.7 IP分段421