开发工具:
文件大小: 701kb
下载次数: 0
上传时间: 2011-05-11
详细说明: 第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 配置RAID 6 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 ext2fs 23 2.7.3 LVM与RAID 24 2.7.4 磁盘卷组 24 2.7.5 设备相关文件 25 2.7.6 devfs 25 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/O 33 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 NUMA 39 3.9 小结 44 第Ⅱ部分 性能分析工具 第4章 系统性能监控 47 4.1 引言 47 4.2 Linux与性能分析的背景知识 47 4.3 CPU利用率 49 4.3.1 vmstat 51 4.3.2 top与gtop工具 53 4.3.3 sar 54 4.4 内存利用率 56 4.4.1 /proc/meminfo与/proc/slabinfo 56 4.4.2 ps 57 4.4.3 vmstat 59 4.5 I/O利用率 59 4.5.1 iostat 61 4.5.2 sar 62 4.6 网络利用率 63 4.6.1 网络统计信息 64 4.6.2 接口信息 66 4.6.3 TCP/IP协议统计数据 66 4.6.4 nfsstat 67 4.7 小结 67 4.8 参考文献 67 第5章 系统跟踪工具 69 5.1 引言 69 5.2 系统跟踪机制的需求 69 5.3 top 70 5.4 strace 72 5.5 OProfile 74 5.5.1 opcontrol 75 5.5.2 数据概况描述工具 76 5.6 Performance Inspector 82 5.6.1 Above Idle 83 5.6.2 Per-Thread Time 84 5.6.3 Trace Profiling 86 5.6.4 指令跟踪 89 5.6.5 Java Profiler 91 5.6.6 Java Lock Monitor 103 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-W 137 6.5.2 SPECjAppServer与ECPerf 138 6.5.3 其他应用基准测试 139 6.6 小结 139 第Ⅲ部分 系 统 调 优 第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_PENALTY 157 8.8.2 *CREDIT_LIMIT 157 8.8.3 *EXIT_WEIGHT 157 8.8.4 *INTERACTIVE_DELTA 157 8.8.5 *MAX_SLEEP_AVG 158 8.8.6 *MAX_TIMESLICE 158 8.8.7 *MIN_TIMESLICE 158 8.8.8 *PARENT_PENALTY 158 8.8.9 *PRIO_BONUS_RATIO 158 8.8.10 *STARVATION_LIMIT 158 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与objrmap 169 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 hdparm 197 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/O 202 11.8.2 异步I/O函数 202 11.9 原始磁盘I/O 203 11.9.1 在Linux上设置原始I/O 203 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 ReiserFS 210 11.11.1 ReiserFS的内核 配置支持 211 11.11.2 ReiserFS文件系统 调优方法 211 11.11.3 创建ReiserFS文件系统 211 11.11.4 建立外部日志 212 11.11.5 挂接ReiserFS文件系统 212 11.11.6 挂接选项 213 11.11.7 调优ReiserFS 213 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 调优JFS 217 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 调优XFS 220 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 semmni 238 13.4.2 semmns 239 13.4.3 semmsl 239 13.4.4 semopm 239 13.4.5 semvmx 239 13.4.6 未用的信号量参数 239 13.5 消息队列参数 240 13.5.1 msgmni 240 13.5.2 msgmax 240 13.5.3 msgmnb 241 13.5.4 未用的消息队列参数 241 13.6 共享内存段参数 241 13.6.1 shmmni 242 13.6.2 shmmax 242 13.6.3 shmmin 242 13.6.4 shmall 242 13.7 可配置IPC参数的动态 修改机制 242 13.7.1 使用/proc 242 13.7.2 使用sysctl 243 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 Socket 253 14.6.8 线程 256 14.6.9 同步 259 14.6.10 文件I/O 262 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与网络文件 系统/NAS 282 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/O 302 17.6.3 向量I/O 303 17.6.4 异步I/O 303 17.6.5 直接I/O 303 17.6.6 块I/O 304 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 第Ⅴ部分 调优案例分析 第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 iostat 361 20.4.2 iostat与sar工具 362 20.5 小结 367 20.6 参考文献 367 第21章 Linux系统网络性能 实例分析 369 21.1 引言 369 21.2 实例分析中使用的基准测试 369 21.2.1 NetBench 370 21.2.2 Netperf3 370 21.2.3 VolanoMark 370 21.2.4 SPECWeb99 370 21.3 Linux 2.4与2.6内核中 的增强机制 371 21.3.1 SendFile 371 21.3.2 TCP分段卸载 373 21.3.3 网络负荷中的进程与 IRQ亲合性 375 21.3.4 NAPI 376 21.3.5 TCP卸载引擎 378 21.4 示例分析 379 21.4.1 NetBench 380 21.4.2 Netperf3(千兆位以太网 调优实例分析) 381 21.4.3 VolanoMark 383 21.4.4 SPECWeb99 384 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 ICMP 418 A.8.3 邻居 419 A.8.4 配置 419 A.8.5 路由 420 A.8.6 TCP 420 A.8.7 IP分段 421 ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.