动态跟踪系统的性能模型研究及基于动态跟踪技术的机群监测软件的设计与实现

动态跟踪系统的性能模型研究及基于动态跟踪技术的机群监测软件的设计与实现

论文摘要

近10年来,个人电脑在性能有了长足进步的同时,其价格也越来越便宜。因此在需要服务器的领域和在需要一定的运算性能的领域,以廉价的个人电脑而组建的机群正在以其不俗的性能和更低廉的价格逐渐在中低端服务器市场和商用机群市场中抢得一席之地。这种机群大多以开源软件为基础进行构建。一个不可否认的现状是:虽然单机环境下的各种软件均已成熟,但在机群环境中各种管理和控制软件却仍有待进步。对于监测软件,单机中已有各种实现,可以说监测技术和监测软件本身已经没有什么难点了,扩展到机群环境中时只需考虑其功能的扩展性和易用性即可。但事实却相反,目前大多数的监测软件均只能查看简单的全局信息。这其中存在两个问题:一是机群监测软件均只针对通用化的平台和通用化的目的进行构建;二是各种机群监测软件的开发中忽视了扩展性和可定制性。因此构建一个具备“动态”、“可扩展”特性的“全面”且“多功能”的适用于自我组建的中小规模机群的“可定制”的机群监测软件成为一个必要。本文在详细分析了目前机群发展的现状和机群监测软件的现状之后,提出了评估机群监测软件的一系列标准。并针对这些标准进行了机群监测软件——DDTC/DDTS的设计和开发。该监测软件基于动态跟踪系统而构建,因此在功能性和扩展性方面能够满足要求。软件本身是一个只提供基本功能的运行框架,通过插件机制来满足所需的动态性和多功能性的要求。由于监测软件的一个重要评价标准是低侵扰性,因此在构建DDTC/DDTS前,本文还对动态跟踪系统(DTrace)进行了性能模型的分析,通过性能模型可以预判出监测软件在不同条件下会给被监测节点带来的性能影响情况。实践证明,在正常的使用情况下,对工作节点的侵扰度小于1%。

论文目录

  • 目录
  • 图表
  • 摘要
  • Abstract
  • 第一章 引言
  • 1.1 背景和工作
  • 1.2 全文结构
  • 第二章 机群及机群监测软件
  • 2.1 集群
  • 2.2 集群的分类
  • 2.2.1 按功能分类
  • 2.2.2 按体系结构分类
  • 2.2.3 按操作系统分类
  • 2.2.4 按来源分类
  • 2.2.5 按规模分类
  • 2.3 集群的优点
  • 2.4 机群
  • 2.5 系统监测
  • 2.5.1 单机的监测
  • 2.5.1.1 按触发机制分类
  • 2.5.1.2 按实现手段分类
  • 2.5.1.3 按进行数据分析的时机分类
  • 2.5.2 机群的监测
  • 2.5.2.1 监测数据的用途
  • 2.6 现有的机群监测软件
  • 2.6.1 Pablo
  • 2.6.2 MAT
  • 2.6.3 Paradyn
  • 2.6.4 Supermon
  • 2.6.5 Ganglia
  • 2.6.6 DCMM2
  • 2.6.7 ParaGraph
  • 2.6.8 VAMPIR
  • 2.6.9 IBM CSM
  • 2.6.10 RVision
  • 2.6.11 Shrimp
  • 2.6.12 DDCS
  • 2.7 机群监测系统的评估标准
  • 2.7.1 现有机群监测软件的评估及规律现象
  • 第三章 动态代码插桩技术
  • 3.1 代码插桩技术的分类
  • 3.2 动态二进制代码插桩
  • 3.2.1 基于即时编译的动态插桩技术
  • 3.2.2 结合虚拟化技术的动态插桩技术
  • 3.2.3 基于探测器方式的动态插桩技术
  • 3.3 动态插桩技术的取舍
  • 3.4 DTrace与SystemTap的比较
  • 3.5 进一步的工作
  • 第四章 动态跟踪系统运行机制的解析
  • 4.1 动态跟踪系统的软件架构
  • 4.2 一个典型的动态跟踪的执行过程
  • 4.3 探测器触发时的程序栈
  • 4.3.1 函数边界跟踪探测器的内核栈
  • 4.3.2 系统调用跟踪提供器的内核栈
  • 4.3.3 静态定义跟踪提供器的内核栈
  • 4.3.4 进程跟踪提供器的内核栈
  • 4.3.5 用户程序静态定义提供器的内核栈
  • 4.3.6 异步时钟提供器的内核栈
  • 4.4 探测器的触发流程
  • 4.4.1 内核函数边界跟踪提供器——FBT
  • 4.4.2 内核静态定义跟踪提供器——SDT
  • 4.4.3 系统调用跟踪提供器——Systrace
  • 4.4.4 快速陷阱元提供器——Fasttrap
  • 4.4.5 异步时钟提供器——Profile
  • 4.5 探测器复用和D虚拟机
  • 第五章 动态跟踪系统的性能模型
  • 5.1 探测器带来的影响
  • 5.2 DTrace用户进程带来的影响
  • 5.3 DTrace给系统带来的影响
  • 5.4 实测数据
  • 5.4.1 测试方法
  • 5.4.1.1 高分辨率时间戳的获取
  • 5.4.1.2 内存读写速度的测量
  • 5.4.2 实测环境
  • 5.4.3 测试用例
  • 5.4.4 模型参数测定
  • 5.4.4.1 虚拟指令的时耗
  • 5.4.4.2 内建变量的时耗
  • 5.4.4.3 动作的时耗
  • 5.4.4.4 探测器触发流程的时耗
  • 5.4.4.5 进程切换的时耗
  • 5.4.4.6 数据传递过程中的时耗
  • 5.4.4.7 DTrace用户进程的时耗
  • 5.5 模型验证
  • 5.5.1 验证程序的设计
  • 5.5.2 验证函数的选择
  • 5.5.3 验证数据的观测方法
  • 5.5.4 参数数据的验证
  • 5.5.5 线性增加的性能消耗的验证
  • 5.6 动态跟踪系统的评估
  • 第六章 动态跟踪系统的扩展
  • 6.1 DTrace的缺憾
  • 6.2 内核套接字(Kernel Socket)
  • 6.2.1 基本接口
  • 6.2.2 连接限制
  • 6.2.3 事件通知机制
  • 6.3 动态跟踪系统的改进
  • 6.3.1 新进程的分类
  • 6.3.2 mdtrace整体设计
  • 6.3.2.1 扩展的D脚本
  • 6.3.2.2 mdtrace的运行流程
  • t结构'>6.3.2.3 mdtracet结构
  • 6.3.3 Exec()系统调用的处理过程和改进方法
  • 6.3.4 Fork()系统调用的处理过程和改进方法
  • 6.4 mdtrace的代码流程
  • 6.4.1 动态发现的流程
  • 6.4.2 回调函数的流程
  • 6.5 fork和exec的时耗分析
  • 6.6 改进中的一些探讨
  • 6.6.1 使用内核套接字进行逆向通讯的原因
  • 6.6.2 "exec发现"和"fork发现"设计的比较
  • 6.6.3 工作线程的限制
  • 6.7 实用举例
  • 第七章 基于动态跟踪技术的机群监测软件
  • 7.1 设计目标
  • 7.2 功能列表
  • 7.2.1 DDTS的功能列表
  • 7.2.2 DDTC的功能列表
  • 7.3 机群监控软件的整体流程
  • 7.4 DDTS精灵进程的流程
  • 7.5 DDTS采集到的原始数据
  • 7.6 DDTC中各模块的工作流程
  • 7.6.1 节点管理
  • 7.6.1.1 机群配置文件
  • 7.6.2 心跳管理
  • 7.6.2.1 心跳检测的流程
  • 7.6.3 脚本分派
  • 扩展'>7.6.3.1扩展
  • 7.6.3.2 Nodename扩展
  • 7.6.4 响应控制
  • 7.6.4.1 自动反馈
  • 7.6.4.2 主动反馈
  • 7.6.5 数据存储
  • 7.6.5.1 原始数据的格式
  • 7.6.5.2 日志文件名
  • 7.6.5.3 日志文件的格式
  • 7.6.5.4 记录重放
  • 7.6.5.5 数据记录及日志重放模块的接口
  • 7.7 插件机制
  • 7.7.1 DDTC插件的功能
  • 7.7.2 开源图表库
  • 7.7.3 插件接口
  • 7.7.4 插件配置文件
  • 7.7.5 插件实例
  • 7.8 实测与分析
  • 7.8.1 机群搭建
  • 7.8.2 软件部署
  • 7.8.2.1 MPI的部署
  • 7.8.2.2 MPI测试
  • 7.8.3 机群监测的部署
  • 7.8.4 案例分析
  • 7.8.5 计算节点的负载
  • 7.8.6 控制节点的负载
  • 7.8.7 软件评估
  • 第八章 总结
  • 8.1 贡献与创新
  • 8.2 进一步的研究和工作
  • 附录
  • cpuusage2.d脚本
  • memusage.d脚本
  • tcpusage.d脚本
  • 参考文献
  • 攻读硕士学位期间发表的学术论文
  • 致谢
  • 相关论文文献

    • [1].主网设备安全监测软件的设计与实现[J]. 广西电力 2020(02)
    • [2].以开发出城市供水监测软件[J]. 中国科技信息 2008(16)
    • [3].测控数据实时监测软件设计方法研究[J]. 计算机测量与控制 2017(01)
    • [4].GPS自动变形监测软件设计与实现[J]. 工程勘察 2013(08)
    • [5].抽油机井功图液面过程监测软件的设计与应用[J]. 中国石油和化工标准与质量 2017(23)
    • [6].液压绞车状态监测软件系统设计研究[J]. 煤矿机械 2010(07)
    • [7].安徽省地理国情监测软件系统建设研究[J]. 江西测绘 2017(02)
    • [8].基于微顺序注射-阀上实验室药物浓度实时监测软件系统的开发与应用[J]. 分析仪器 2017(02)
    • [9].符合ITU建议的系统监测软件R&SARGUS[J]. 中国无线电 2014(09)
    • [10].TeeChart图形控件在通信监测软件中的应用[J]. 电脑编程技巧与维护 2009(22)
    • [11].面向工业应用的网页篡改监测软件设计[J]. 工业控制计算机 2020(06)
    • [12].CBTC系统无线通信监测软件的研究和开发[J]. 数字通信世界 2014(07)
    • [13].一种网络监测软件的分析与改进[J]. 南京邮电大学学报(自然科学版) 2011(01)
    • [14].一种广播遥控监测软件的设计与实现[J]. 广播电视信息 2019(07)
    • [15].基于LabVIEW的光纤光栅传感监测软件[J]. 中国新技术新产品 2015(07)
    • [16].基于MFC的组合导航监测软件快速实现方法[J]. 计算机应用 2013(S1)
    • [17].多画面监测软件在扬州电视台收录系统中的应用[J]. 电视工程 2014(01)
    • [18].基于Intouch10.1的CAN通信的设计[J]. 电脑编程技巧与维护 2018(12)
    • [19].出门伴侣 多功能空气监测软件推荐[J]. 移动信息 2013(Z1)
    • [20].首钢矿业公司烧结厂自主开发工艺设施监测软件[J]. 冶金自动化 2009(05)
    • [21].基于GPRS的配电变压器监测系统[J]. 电力系统通信 2008(08)
    • [22].基于无线传感网的精细农业监测软件的设计[J]. 电脑知识与技术 2009(29)
    • [23].配电网断线监测软件的设计与实现[J]. 农村电气化 2018(03)
    • [24].单台测震数据断记监测软件设计[J]. 地震地磁观测与研究 2016(05)
    • [25].实时监测软件结合集束化干预降低呼吸机相关性肺炎感染率[J]. 江苏医药 2015(06)
    • [26].轻量级监测软件在分布式网络监控中的应用实例[J]. 视听界(广播电视技术) 2013(03)
    • [27].基于Socket的采暖评价系统监测软件设计[J]. 山东建筑大学学报 2016(01)
    • [28].脑电波监测软件改善注意力分散情况[J]. 军民两用技术与产品 2014(14)
    • [29].R&S ARGUS监测软件——遵循ITU建议的系统软件[J]. 中国无线电 2011(11)
    • [30].基于DDE协议的列车牵引传动系统实时监测软件的研究[J]. 机电一体化 2011(06)

    标签:;  ;  ;  ;  ;  

    动态跟踪系统的性能模型研究及基于动态跟踪技术的机群监测软件的设计与实现
    下载Doc文档

    猜你喜欢