书籍详情
虚拟计算环境的运行时资源监控与内存泄漏检测技术
作者:肖如良 著
出版社:电子工业出版社
出版时间:2015-03-01
ISBN:9787121252648
定价:¥58.00
购买这本书可以去
内容简介
在云计算相关的虚拟计算环境中,不仅要对系统的资源占用进行运行时监控调整,而且要对系统所发生的内存泄漏进行检测与分析,这种可靠性保障技术极具挑战性。本书在介绍了相关研究工作及基础内容之后,主要针对资源监控调整与内存泄漏检测问题,构建了Xen虚拟机管理器中的自定义超级调用体系,研究了虚拟计算资源,包括内存资源与CPU资源的监控与调整机制、运行时内存泄漏检测等方面的关键技术,提出了基于自省机制的内存泄漏检测确认规则、虚拟计算环境的资源监测收集策略和资源调整策略,基于Xen虚拟机管理器设计并实现了虚拟计算环境的资源监控与调整子系统XResMonitor与虚拟计算环境的内存泄漏检测分析系统MLDA,最后介绍了GDI内存泄漏检测的工作。全书包含了以上主要关键技术的实现思路与技术细节,可供计算机专业相关工程技术人员、研究人员参考。
作者简介
肖如良,福建师范大学教授。中国通信学会云计算机专委委员、中国计算机学会学术工委委员、福建省人工智能学会常务理事,中国计算机学会高级会员,IEEE计算机学会会员、ACM会员。福建师范大学智能软件工程中心Web智能新技术研发实验室负责人,多个期刊及多个国际会议的论文审稿人。
目录
第1章 绪论 1
1.1 虚拟计算环境 1
1.2 虚拟计算环境的可靠性 2
1.3 资源监控与动态调整 3
1.4 内存泄漏检测 5
1.5 小结 6
第2章 虚拟计算环境可靠性的相关研究 7
2.1 内存泄漏国内外研究现状 7
2.1.1 与内存泄漏静态检测相关的研究工作 7
2.1.2 与内存泄漏动态检测相关的研究工作 8
2.1.3 存在的问题 11
2.2 虚拟计算环境内存泄漏检测技术的相关研究 12
2.2.1 概述 12
2.2.2 虚拟机性能信息的获取 13
2.2.3 虚拟机内存管理 13
2.2.4 基于虚拟环境的程序调试 15
2.2.5 基于虚拟计算环境的入侵检测 15
2.2.6 虚拟计算环境下存在的语义障碍 16
2.3 国内外典型的资源监测与资源调整工具 17
2.3.1 国内外相关研究 17
2.3.2 代表性资源监控系统的实现 19
2.4 小结 21
第3章 虚拟计算环境及内存泄漏检测基础 23
3.1 虚拟计算环境基础 23
3.1.1 概述 23
3.1.2 CPU虚拟化 24
3.1.3 内存虚拟化 25
3.1.4 输入/输出设备虚拟化 28
3.1.5 Xen的CPU虚拟化模型 29
3.1.6 Xen虚拟计算框架 32
3.1.7 虚拟计算环境下不同抽象级别间的语义障碍 36
3.2 内存泄漏检测技术基础 40
3.2.1 动态内存管理 40
3.2.2 动态代码执行分析 42
3.2.3 目标进程的控制方法 46
3.3 小结 49
第4章 多目标监测的通信进程管理 51
4.1 冲突问题描述 51
4.2 CSP理论 51
4.3 基于CSP的分布式内存泄漏检测分析系统模型 51
4.4 模型的正确性证明 53
4.5 小结 55
第5章 基于自省机制的运行时内存泄漏检测机制 57
5.1 虚拟计算环境中的监控机制与自省机制 57
5.2 基于自省机制的运行时内存泄漏检测模型 58
5.2.1 基于自省机制检测的流模型 59
5.2.2 内存泄漏判定基础 62
5.3 内存泄漏确认规则 64
5.3.1 实现内存对象分组 64
5.3.2 检测潜在的内存泄漏 65
5.3.3 内存泄漏的确认规则 66
5.4 虚拟计算环境内存泄漏检测机制的实现基础 66
5.5 VMLD中4个基础模块的职责 68
5.5.1 内部缓冲区维护模块(Maintain Buffer) 68
5.5.2 控制模块(Controller) 70
5.5.3 拦截模块(Interceptor) 70
5.5.4 监视模块(Monitor) 71
5.6 实验及结果分析 72
5.6.1 有效性实验分析 73
5.6.2 性能实验分析 74
5.7 小结 75
第6章 虚拟计算环境资源监控系统框架 77
6.1 设计思路 77
6.2 系统部署结构 78
6.3 XResMonitor系统功能模块 79
6.3.1 资源信息监测模块 79
6.3.2 资源调整模块 80
6.4 XResMonitor模块工作流程 82
6.4.1 资源信息监测流程 82
6.4.2 资源调整流程 83
6.5 XResMonitor系统特色 84
6.6 小结 85
第7章 虚拟计算环境资源监控系统的关键技术 87
7.1 虚拟机资源信息收集策略 87
7.1.1 Xen虚拟机的信息收集策略 87
7.1.2 XResMonitor系统的信息收集策略 88
7.2 资源实时监测 89
7.2.1 内存资源实时监测 90
7.2.2 CPU资源实时监测 95
7.3 资源调整策略 97
7.3.1 内存资源调整策略 97
7.3.2 VCPU资源调整 107
7.4 XResMonitor监测系统的原型实现 111
7.4.1 原型系统的实现环境 111
7.4.2 功能实现评估 112
7.4.3 原型系统的性能评估 116
7.5 小结 117
第8章 基于Xen的内存泄漏检测分析系统MLDA模块级关键技术 119
8.1 MLDA系统框架描述 119
8.1.1 控制模块 119
8.1.2 侵入模块 124
8.1.3 拦截模块 125
8.1.4 监视模块 129
8.1.5 内核支持模块 131
8.1.6 数据处理与存储模块 135
8.1.7 分析模块 140
8.1.8 用户交互模块 141
8.1.9 模块协作 148
8.2 控制模块和监视模块实现的关键技术 149
8.2.1 Windows下动态链接库注入技术 150
8.2.2 Linux下动态链接库注入技术 153
8.3 拦截模块和监视模块实现的关键技术 156
8.3.1 代码内存保护解除的实现 156
8.3.2 代码复制的实现 157
8.3.3 运行流程重定向代码的生成 160
8.3.4 堆访问情况的捕捉 162
8.4 监视模块和内核代码交互实现的关键技术 166
8.5 内核代码访问内存页表的实现 168
8.6 数据收集模块和数据处理模块交互的实现 171
8.7 数据处理过程 178
8.8 小结 179
第9章 MLDA的系统级技术实现 181
9.1 系统部署 181
9.1.1 Xen内核修改部分 181
9.1.2 监视端的安装 182
9.1.3 Windows下的安装 182
9.1.4 Linux下的安装 182
9.2 MLDA系统结构 184
9.3 MLDA系统的基础功能 184
9.3.1 动态链接库注入 184
9.3.2 超级调用 185
9.3.3 域间通信 185
9.3.4 进程堆内存地址空间页表访问 186
9.3.5 内存操作行为的捕捉 187
9.4 MLDA内存泄漏检测 188
9.5 MLDA内存泄漏预测 191
9.6 小结 193
第10章 GDI内存泄漏检测 195
10.1 概述 195
10.2 GDI拦截模块 195
10.2.1 注入DLL模块 196
10.2.2 修改函数导入表和模块导出表的地址 196
10.3 GDI监控模块 197
10.3.1 监控数据的组织 197
10.3.2 监控数据的采集过程及存储策略 197
10.4 GDI分析模块 198
10.5 GDI可视化模块 198
10.5.1 显示GDI内存泄漏嫌疑和故障信息 199
10.5.2 生成监测报告 200
第11章 结束语 205
11.1 总结 205
11.2 未来工作 207
附录A 基于Xen的内存泄漏检测技术的部分源代码 209
参考文献 237
1.1 虚拟计算环境 1
1.2 虚拟计算环境的可靠性 2
1.3 资源监控与动态调整 3
1.4 内存泄漏检测 5
1.5 小结 6
第2章 虚拟计算环境可靠性的相关研究 7
2.1 内存泄漏国内外研究现状 7
2.1.1 与内存泄漏静态检测相关的研究工作 7
2.1.2 与内存泄漏动态检测相关的研究工作 8
2.1.3 存在的问题 11
2.2 虚拟计算环境内存泄漏检测技术的相关研究 12
2.2.1 概述 12
2.2.2 虚拟机性能信息的获取 13
2.2.3 虚拟机内存管理 13
2.2.4 基于虚拟环境的程序调试 15
2.2.5 基于虚拟计算环境的入侵检测 15
2.2.6 虚拟计算环境下存在的语义障碍 16
2.3 国内外典型的资源监测与资源调整工具 17
2.3.1 国内外相关研究 17
2.3.2 代表性资源监控系统的实现 19
2.4 小结 21
第3章 虚拟计算环境及内存泄漏检测基础 23
3.1 虚拟计算环境基础 23
3.1.1 概述 23
3.1.2 CPU虚拟化 24
3.1.3 内存虚拟化 25
3.1.4 输入/输出设备虚拟化 28
3.1.5 Xen的CPU虚拟化模型 29
3.1.6 Xen虚拟计算框架 32
3.1.7 虚拟计算环境下不同抽象级别间的语义障碍 36
3.2 内存泄漏检测技术基础 40
3.2.1 动态内存管理 40
3.2.2 动态代码执行分析 42
3.2.3 目标进程的控制方法 46
3.3 小结 49
第4章 多目标监测的通信进程管理 51
4.1 冲突问题描述 51
4.2 CSP理论 51
4.3 基于CSP的分布式内存泄漏检测分析系统模型 51
4.4 模型的正确性证明 53
4.5 小结 55
第5章 基于自省机制的运行时内存泄漏检测机制 57
5.1 虚拟计算环境中的监控机制与自省机制 57
5.2 基于自省机制的运行时内存泄漏检测模型 58
5.2.1 基于自省机制检测的流模型 59
5.2.2 内存泄漏判定基础 62
5.3 内存泄漏确认规则 64
5.3.1 实现内存对象分组 64
5.3.2 检测潜在的内存泄漏 65
5.3.3 内存泄漏的确认规则 66
5.4 虚拟计算环境内存泄漏检测机制的实现基础 66
5.5 VMLD中4个基础模块的职责 68
5.5.1 内部缓冲区维护模块(Maintain Buffer) 68
5.5.2 控制模块(Controller) 70
5.5.3 拦截模块(Interceptor) 70
5.5.4 监视模块(Monitor) 71
5.6 实验及结果分析 72
5.6.1 有效性实验分析 73
5.6.2 性能实验分析 74
5.7 小结 75
第6章 虚拟计算环境资源监控系统框架 77
6.1 设计思路 77
6.2 系统部署结构 78
6.3 XResMonitor系统功能模块 79
6.3.1 资源信息监测模块 79
6.3.2 资源调整模块 80
6.4 XResMonitor模块工作流程 82
6.4.1 资源信息监测流程 82
6.4.2 资源调整流程 83
6.5 XResMonitor系统特色 84
6.6 小结 85
第7章 虚拟计算环境资源监控系统的关键技术 87
7.1 虚拟机资源信息收集策略 87
7.1.1 Xen虚拟机的信息收集策略 87
7.1.2 XResMonitor系统的信息收集策略 88
7.2 资源实时监测 89
7.2.1 内存资源实时监测 90
7.2.2 CPU资源实时监测 95
7.3 资源调整策略 97
7.3.1 内存资源调整策略 97
7.3.2 VCPU资源调整 107
7.4 XResMonitor监测系统的原型实现 111
7.4.1 原型系统的实现环境 111
7.4.2 功能实现评估 112
7.4.3 原型系统的性能评估 116
7.5 小结 117
第8章 基于Xen的内存泄漏检测分析系统MLDA模块级关键技术 119
8.1 MLDA系统框架描述 119
8.1.1 控制模块 119
8.1.2 侵入模块 124
8.1.3 拦截模块 125
8.1.4 监视模块 129
8.1.5 内核支持模块 131
8.1.6 数据处理与存储模块 135
8.1.7 分析模块 140
8.1.8 用户交互模块 141
8.1.9 模块协作 148
8.2 控制模块和监视模块实现的关键技术 149
8.2.1 Windows下动态链接库注入技术 150
8.2.2 Linux下动态链接库注入技术 153
8.3 拦截模块和监视模块实现的关键技术 156
8.3.1 代码内存保护解除的实现 156
8.3.2 代码复制的实现 157
8.3.3 运行流程重定向代码的生成 160
8.3.4 堆访问情况的捕捉 162
8.4 监视模块和内核代码交互实现的关键技术 166
8.5 内核代码访问内存页表的实现 168
8.6 数据收集模块和数据处理模块交互的实现 171
8.7 数据处理过程 178
8.8 小结 179
第9章 MLDA的系统级技术实现 181
9.1 系统部署 181
9.1.1 Xen内核修改部分 181
9.1.2 监视端的安装 182
9.1.3 Windows下的安装 182
9.1.4 Linux下的安装 182
9.2 MLDA系统结构 184
9.3 MLDA系统的基础功能 184
9.3.1 动态链接库注入 184
9.3.2 超级调用 185
9.3.3 域间通信 185
9.3.4 进程堆内存地址空间页表访问 186
9.3.5 内存操作行为的捕捉 187
9.4 MLDA内存泄漏检测 188
9.5 MLDA内存泄漏预测 191
9.6 小结 193
第10章 GDI内存泄漏检测 195
10.1 概述 195
10.2 GDI拦截模块 195
10.2.1 注入DLL模块 196
10.2.2 修改函数导入表和模块导出表的地址 196
10.3 GDI监控模块 197
10.3.1 监控数据的组织 197
10.3.2 监控数据的采集过程及存储策略 197
10.4 GDI分析模块 198
10.5 GDI可视化模块 198
10.5.1 显示GDI内存泄漏嫌疑和故障信息 199
10.5.2 生成监测报告 200
第11章 结束语 205
11.1 总结 205
11.2 未来工作 207
附录A 基于Xen的内存泄漏检测技术的部分源代码 209
参考文献 237
猜您喜欢