Linux性能优化PDF电子书下载
- 电子书积分:10 积分如何计算积分?
- 作 者:Phillip G.Ezolt著
- 出 版 社:北京:机械工业出版社
- 出版年份:2017
- ISBN:7111560173
- 页数:223 页
第1章 性能追踪建议 1
1.1 常用建议 2
1.1.1 记大量的笔记(记录所有的事情) 2
1.1.2 自动执行重复任务 3
1.1.3 尽可能选择低开销工具 4
1.1.4 使用多个工具来搞清楚问题 4
1.1.5 相信你的工具 5
1.1.6 利用其他人的经验(慎重) 5
1.2 性能调查概要 6
1.2.1 找到指标、基线和目标 6
1.2.2 追踪近似问题 7
1.2.3 查看问题是否早已解决 7
1.2.4 项目开始(启动调查) 8
1.2.5 记录,记录,记录 9
1.3 本章小结 9
第2章 性能工具:系统CPU 10
2.1 CPU性能统计信息 10
2.1.1 运行队列统计 10
2.1.2 上下文切换 11
2.1.3 中断 12
2.1.4 CPU使用率 12
2.2 Linux性能工具:CPU 12
2.2.1 vmstat(虚拟内存统计) 13
2.2.2 top(2.0.x版本) 16
2.2.3 top(3.x.x版本) 20
2.2.4 procinfo(从/proc文件系统显示信息) 24
2.2.5 gnome-system-monitor 26
2.2.6 mpstat(多处理器统计) 27
2.2.7 sar(系统活动报告) 29
2.2.8 oprofile 33
2.3 本章小结 39
第3章 性能工具:系统内存 40
3.1 内存性能统计信息 40
3.1.1 内存子系统和性能 40
3.1.2 内存子系统(虚拟存储器) 40
3.2 Linux性能工具:CPU与内存 42
3.2.1 vmstat(Ⅱ) 43
3.2.2 top(2.x和3.x) 47
3.2.3 procinfo(Ⅱ) 49
3.2.4 gnome-system-monitor(Ⅱ) 51
3.2.5 free 52
3.2.6 slabtop 54
3.2.7 sar(Ⅱ) 55
3.2.8 /proc/meminfo 58
3.3 本章小结 60
第4章 性能工具:特定进程CPU 61
4.1 进程性能统计信息 61
4.1.1 内核时间vs.用户时间 61
4.1.2 库时间vs.应用程序时间 62
4.1.3 细分应用程序时间 62
4.2 工具 62
4.2.1 time 62
4.2.2 strace 65
4.2.3 ltrace 67
4.2.4 ps(进程状态) 70
4.2.5 ld.so(动态加载器) 72
4.2.6 gprof 74
4.2.7 oprofile(Ⅱ) 77
4.2.8 语言:静态(C和C++)vs.动态(Java和Mono) 82
4.3 本章小结 82
第5章 性能工具:特定进程内存 83
5.1 Linux内存子系统 83
5.2 内存性能工具 84
5.2.1 ps(Ⅱ) 84
5.2.2 /proc/<PID> 85
5.2.3 memprof 88
5.2.4 valgrind(cachegrind) 90
5.2.5 kcachegrind 95
5.2.6 oprofile(Ⅲ) 99
5.2.7 ipcs 103
5.2.8 动态语言(Java和Mono) 107
5.3 本章小结 107
第6章 性能工具:磁盘I/O 108
6.1 磁盘I/O介绍 108
6.2 磁盘I/O性能工具 109
6.2.1 vmstat(Ⅲ) 109
6.2.2 iostat 113
6.2.3 sar(Ⅲ) 115
6.2.4 lsof(列出打开文件) 117
6.3 缺什么 119
6.4 本章小结 119
第7章 性能工具:网络 120
7.1 网络I/O介绍 120
7.1.1 链路层的网络流量 121
7.1.2 协议层网络流量 122
7.2 网络性能工具 122
7.2.1 mii-tool(媒体无关接口工具) 123
7.2.2 ethtool 123
7.2.3 ifconfig(接口配置) 124
7.2.4 ip 126
7.2.5 sar(Ⅳ) 127
7.2.6 gkrellm 129
7.2.7 iptraf 131
7.2.8 netstat 132
7.2.9 etherape 134
7.3 本章小结 136
第8章 实用工具:性能工具助手 137
8.1 性能工具助手 137
8.1.1 自动执行和记录命令 138
8.1.2 性能统计信息的绘图与分析 138
8.1.3 调查应用程序使用的库 138
8.1.4 创建和调试应用程序 138
8.2 工具 139
8.2.1 bash 139
8.2.2 tee 140
8.2.3 script 141
8.2.4 watch 142
8.2.5 gnumeric 144
8.2.6 ldd 146
8.2.7 objdump 146
8.2.8 GNU调试器(gdb) 147
8.2.9 gcc(GNU编译器套件) 149
8.3 本章小结 152
第9章 使用性能工具发现问题 153
9.1 并非总是万灵药 153
9.2 开始追踪 153
9.3 优化应用程序 154
9.3.1 内存使用有问题? 154
9.3.2 启动时间有问题? 154
9.3.3 加载器引入延迟了吗? 154
9.3.4 CPU使用(或完成时长)有问题? 155
9.3.5 应用程序的磁盘使用有问题? 155
9.3.6 应用程序的网络使用有问题? 155
9.4 优化系统 155
9.4.1 系统是受CPU限制的吗? 156
9.4.2 单个进程是受CPU限制的吗? 157
9.4.3 一个或多个进程使用了大多数的系统CPU吗? 157
9.4.4 一个或多个进程使用了单个CPU的大多数时间? 157
9.4.5 内核服务了许多中断吗? 157
9.4.6 内核的时间花在哪儿了? 158
9.4.7 交换空间的使用量在增加吗? 158
9.4.8 系统是受I/O限制的吗? 158
9.4.9 系统使用磁盘I/O吗? 158
9.4.10 系统使用网络I/O吗? 158
9.5 优化进程CPU使用情况 159
9.5.1 进程在用户还是内核空间花费了时间? 160
9.5.2 进程有哪些系统调用,完成它们花了多少时间? 160
9.5.3 进程在哪些函数上花了时间? 160
9.5.4 热点函数的调用树是怎样的? 160
9.5.5 Cache缺失与热点函数或源代码行是对应的吗? 161
9.6 优化内存使用情况 161
9.6.1 内核的内存使用量在增加吗? 161
9.6.2 内核使用的内存类型是什么? 161
9.6.3 特定进程的驻留集大小在增加吗? 162
9.6.4 共享内存的使用量增加了吗? 163
9.6.5 哪些进程使用了共享内存? 163
9.6.6 进程使用的内存类型是什么? 163
9.6.7 哪些函数正在使用全部的栈? 163
9.6.8 哪些函数的文本大小最大? 163
9.6.9 进程使用的库有多大? 164
9.6.10 哪些函数分配堆内存? 164
9.7 优化磁盘I/O使用情况 164
9.7.1 系统强调特定磁盘吗? 165
9.7.2 哪个应用程序访问了磁盘? 165
9.7.3 应用程序访问了哪些文件? 165
9.8 优化网络I/O使用情况 165
9.8.1 网络设备发送/接收量接近理论极限了吗? 166
9.8.2 网络设备产生了大量错误吗? 167
9.8.3 设备上流量的类型是什么? 167
9.8.4 特定进程要为流量负责吗? 167
9.8.5 流量是哪个远程系统发送的? 167
9.8.6 哪个应用程序套接字要为流量负责? 167
9.9 尾声 168
9.10 本章小结 168
第10章 性能追踪1:受CPU限制的应用程序(GIMP) 169
10.1 受CPU限制的应用程序 169
10.2 确定问题 170
10.3 找到基线/设置目标 170
10.4 为性能追踪配置应用程序 171
10.5 安装和配置性能工具 172
10.6 运行应用程序和性能工具 172
10.7 分析结果 173
10.8 转战网络 177
10.9 增加图像缓存 179
10.10 遇到(分片引发的)制约 179
10.11 解决问题 180
10.12 验证正确性 181
10.13 后续步骤 181
10.14 本章小结 182
第11章 性能追踪2:延迟敏感的应用程序(nautilus) 183
11.1 延迟敏感的应用程序 183
11.2 确定问题 184
11.3 找到基线/设置目标 184
11.4 为性能追踪配置应用程序 186
11.5 安装和配置性能工具 186
11.6 运行应用程序和性能工具 187
11.7 编译和检查源代码 191
11.8 使用gdb生成调用跟踪 193
11.9 找到时间差异 197
11.10 尝试一种可能的解决方案 197
11.11 本章小结 199
第12章 性能追踪3:系统级迟缓(prelink) 200
12.1 调查系统级迟缓 200
12.2 确定问题 200
12.3 找到基线/设置目标 201
12.4 为性能追踪配置应用程序 204
12.5 安装和配置性能工具 204
12.6 运行应用程序和性能工具 205
12.7 模拟解决方案 209
12.8 报告问题 212
12.9 测试解决方案 214
12.10 本章小结 215
第13章 性能工具:下一步是什么 216
13.1 Linux工具的现状 216
13.2 Linux还需要什么样的工具 216
13.2.1 漏洞1:性能统计信息分散 217
13.2.2 漏洞2:没有可靠并完整的调用树 217
13.2.3 漏洞3:I/O的归因 218
13.3 Linux的性能调优 218
13.3.1 可用的源代码 218
13.3.2 容易联系开发者 218
13.3.3 Linux还年轻 219
13.4 本章小结 219
附录A 性能工具的位置 220
附录B 安装oprofile 222
- 《联吡啶基钌光敏染料的结构与性能的理论研究》李明霞 2019
- 《NiFe2O4基惰性阳极材料的烧结行为及应用性能》杜金晶,王斌著 2019
- 《并行数据挖掘及性能优化》荀亚玲著 2020
- 《钻井液用烷基糖苷及其改性产品合成、性能及应用》司西强,王中华编著 2019
- 《高性能油墨产业专利信息分析及预警研究报告》国家知识产权局专利局专利审查协作广东中心编者;石陇辉责编 2019
- 《Laves相NbCr2化合物的力学性能及其应用》刘昕责编;聂小武 2019
- 《信息融合中估计算法的性能评估》毛艳慧著 2019
- 《纺织产品生态安全性能检测》田文主编 2019
- 《多级孔沸石分子筛合成及其催化性能研究》颜婷婷,喜冬阳,王俊海 2019
- 《特种陶瓷工艺与性能》毕见强编著 2018
- 《中风偏瘫 脑萎缩 痴呆 最新治疗原则与方法》孙作东著 2004
- 《水面舰艇编队作战运筹分析》谭安胜著 2009
- 《王蒙文集 新版 35 评点《红楼梦》 上》王蒙著 2020
- 《TED说话的力量 世界优秀演讲者的口才秘诀》(坦桑)阿卡什·P.卡里亚著 2019
- 《燕堂夜话》蒋忠和著 2019
- 《经久》静水边著 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《微表情密码》(波)卡西亚·韦佐夫斯基,(波)帕特里克·韦佐夫斯基著 2019
- 《看书琐记与作文秘诀》鲁迅著 2019
- 《酒国》莫言著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019