目录Contents 第1章深入理解Linux操作系统1 1.1Linux进程管理2 1.1.1进程的概念2 1.1.2进程的生命周期2 1.1.3线程的概念3 1.1.4进程优先级和Nice等级4 1.1.5上下文切换5 1.1.6中断处理5 1.1.7进程状态6 1.1.8进程的内存段7 1.1.9Linux CPU调度程序8 1.2Linux内存体系结构9 1.2.1物理内存和虚拟内存10 1.2.2虚拟内存管理11 1.3Linux文件系统14 1.3.1虚拟文件系统14 1.3.2文件系统日志14 1.3.3Ext215 1.3.4Ext316 1.3.5Ext417 1.3.6XFS20 1.3.7Btrfs21 1.3.8JFS22 1.3.9ReiserFS22 1.4Linux磁盘I/O子系统22 1.4.1I/O子系统的体系结构22 1.4.2Cache23◆Linux操作系统性能调优目录 1.4.3块层25 1.4.4I/O设备驱动程序27 1.4.5RAID与文件系统28 1.5Linux网络子系统29 1.5.1网络化的实现29 1.5.2TCP/IP32 1.5.3Offload34 1.5.4Bonding模块35 1.6Linux性能度量标准35 1.6.1处理器的度量标准35 1.6.2内存的度量标准36 1.6.3块设备的度量标准37 1.6.4网络接口的度量标准37 第2章监控工具38 2.1监控工具概述38 2.2常用监控工具38 2.3常用监控工具的使用39 2.3.1top39 2.3.2uptime41 2.3.3ps、pstree42 2.3.4free47 2.3.5mpstat50 2.3.6vmstat52 2.3.7iostat56 2.3.8netstat、ss60 2.3.9sar67 2.3.10numastat85 2.3.11pmap86 2.3.12iptraf89 2.3.13strace和ltrace92 2.3.14gnuplot98 2.3.15Gnome System Monitor107 第3章Benchmark工具120 3.1UNIXBench122 3.1.1安装与运行123 3.1.2Run的用法123 3.2STREAM124 3.3Bonnie++129 第4章分析性能瓶颈134 4.1识别系统瓶颈134 4.1.1收集信息134 4.1.2分析服务器性能136 4.2CPU瓶颈136 4.2.1查找CPU瓶颈137 4.2.2SMP137 4.2.3性能调整选项138 4.3内存瓶颈138 4.3.1查找内存瓶颈138 4.3.2性能调整选项140 4.4磁盘瓶颈140 4.4.1查找磁盘瓶颈140 4.4.2性能调整选项142 4.5网络瓶颈142 第5章调整操作系统143 5.1调整原则143 5.2安装注意事项144 5.2.1安装144 5.2.2检查当前的配置145 5.2.3最小化资源使用151 5.2.4SELinux155 5.2.5编译内核157 5.3更改内核参数158 5.3.1proc文件系统158 5.3.2存储参数的位置159 5.3.3使用sysctl命令160 5.4调整处理器子系统161 5.4.1调整进程优先级161 5.4.2CPU亲和力162 5.4.3平衡中断166 5.4.4NUMA系统167 5.5调整内存子系统171 5.5.1内存回收(设置内核交换和刷新脏数据行为)171 5.5.2调整swap173 5.5.3HugeTLBfs176 5.5.4内核同页合并179 5.6调整磁盘子系统181 5.6.1安装Linux前的硬件注意事项182 5.6.2I/O调度的调整和选择184 5.6.3文件系统的选择和调整188 5.6.4虚拟化存储193 5.7调整网络子系统195 5.7.1网卡绑定195 5.7.2巨帧197 5.7.3速度与双工模式199 5.7.4增加网络缓冲区200 5.7.5增加数据包队列203 5.7.6增加传输队列长度202 5.7.7配置offload203 5.7.8Netfilter对性能的影响206 5.7.9流量特性的注意事项208 5.7.10额外的TCP/IP调整210 5.8限制资源使用212