分布式系统测试技术研究及其应用

来源 :科技信息·下旬刊 | 被引量 : 0次 | 上传用户:t123
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:近年来,随着电脑以及汇集相关技术的飞速发展,其应用领域不断扩大,业务逻辑越来越复杂,因此越来越多的汇集应用采用分布式系统的方式进行构建。鉴于分布式系统的并发性、缺乏全局时钟和故障独立性等特征,很难将单模块测试方法应用到基于分布式系统的模块测试中。分布式系统测试过程中主要存在两个问题:第一是難以保证分布式系统测试结果的可靠性;第二是在进行大规模分布式系统的性能测试及其它系统级验证时,存在着搭建分布式系统困难、测试效率低等问题。本文在对上述问题进行深入研究和探讨的基础上,分析了当前主流的测试模型,提出了一种改进的通用测试模型。
  关键词:分布式;测试技术;研究应用
  随着搜索业务架构和策略越来越复杂,越来越多的搜索模块都是以分布式系统的方式进行构建的,以达到优化模块性能,并提高资源利用率及提高异常容错能力的目的。分布式系统具有很多新的特征,比如并发性、故障独立性、缺乏全局时钟性、异构性、安全性、可扩展性和透明性等。加上近年来分布式系统规模的不断扩大,给分布式系统的测试提出了更高的要求,使得很难将单模块测试方法应用到基于分布式系统的模块测试中。
  一、分布式系统测试概述
  1.分布式系统。(1)并发性,在分布式系统中,各个组件分布在不同的电脑上,可以并发的进行工作,必要时共享诸如文件之类的资源。(2)缺乏全局,当分布式系统中的组件需要协同工作时,仅仅是通过消息的交换来协调它们之间动作的一致性,因此紧密地协调经常依赖于组件动作发生时对时间达成共识。但是,由于汇集上电脑同步时钟的准确性会受到限制,这也导致了分布于汇集上的组件之间对于各自组件动作发生的时间难以达成共识。(3)故障独立性,所有的电脑系统都可能发生故障,分布式系统故障的发生总是基于汇集的故障,而汇集故障会隔离与之互联的电脑,但这并不意味着故障组件以外的组件会停止运行。也就是说系统的每个组件会单独地出现故障,而其它组件仍然能够正常运行,通常其它正常运行的组件无法检测出是汇集故障还是组件故障。
  2.分布式系统运行方式
  分布式系统普遍采用层次结构的运行方式,分为四层结构:操作系统、互通平台、编译器及支撑系统以及分布式系统模块。其中操作系统层主要是为分布式系统提供一个运行环境,进行底层支持。考虑到不同的电脑上可能使用不同的操作系统,所以这一层可能是异构的,如机器 A 使用的操作系统是 UNIX,而在机器 B 上使用的则是 Window NT。互通平台层是由各种互通协议构成的,通过使双方都采用 TCP/IP 协议或 PVM等,以达到屏蔽底层操作系统不同的目的,使得分布式系统成为一个各组件相互协作的有机整体。
  3.程序测试技术
  如何有效的保障程序质量一直是程序产业的重要课题,尤其是在程序应用领域越来越广泛的背景下。在开发过程中难免会出现程序错误,若能较早地发现并排除这些错误,就可以减少因后期排除错误而带来的巨大成本,同时也可以较大地提高程序开发过程中的效率。因此,程序测试在整个程序开发生命周期中是不可或缺的。
  二、分布式系统测试存在的问题
  1.可靠性测试中存在的问题
  (1)针对分布式系统的数据传输异常(丢失、延时、错包等)、连接异常、负载均衡以及调度策略验证等可靠性测试,目前很难站在集群的角度去观测和控制运行的状态困难,植入各种汇集互通异常,也没有很好的机制检查预期效果,导致测试效率和覆盖面很难保证(2)针对异步分布式系统测试中消息时序控制和故障发生时机控制困难,数据构造不一致等问题,没有低成本的解决方案,也没有合适的测试工具进行支撑,难以实现准确的测试控制。
  2.性能测试中存在的问题
  (1)多个模块项目的测试对稳定后端的依赖性强,但稳定后端资源有限,不能快速响应,项目需要排队,从而影响项目周期;(2)数据量以及连接关系和实际相差较远,导致准确性无法保证;(3)有些情况如模块的极限性能预估,无法准确的测试。通过研究和分析,造成这些问题的主要原因是数据源无法方便获取,实际环境的后端集群庞大,无法获得足够物理资源搭建环境。
  三、分布式系统的应用
  (1)应用背景
  随着搜索业务越来越复杂,模块 A 需要和多个分布式系统模块进行交互,因此,对模块 A
  进行测试时,搭建一套真实的环境需要较大的代价,而且搭建环境的规模也很难与真实环境中的规模相比。这也导致了在引入原型系统之前,对模块 A 进行性能测试的过程中,无法完整地构造整套真实环境进行数据的收集和分析,使用的测试方法是连接有限的后端环境进行新旧版本的横向性能对比,这样测试出来的性能数据并不能准确反映真实环境中实际的性能情况。基于以上背景,有必要引入原型系统来解决测试过程中分布式系统环境搭建困难以及数据源获取困难等问题,达到改进模块 A 测试的目的。
  (2)应用效果
  原型系统是为了支持通用测试模型设计和开发的,与具体业务无关,因此模块 A 引入原型系统进行可靠性测试和性能测试的改进,必然会带来一定的引入成本。下面首先分析引入原型系统带来的成本,然后从性能测试改进和可靠性改进两个层面介绍引入原型系统给模块 A 带来的效果收益。
  (3)引入原型系统成本分析
  针对模块 A,引入原型系统进行测试改进主要存在两方面成本:业务适配器PDU_Reader
  接口实现和根据业务可靠性需求注入汇集异常。在业务适配器 PDU_Reader 接口实现方面,需要按照模块 A 的互通协议对该适配器的构造函数、parse_data 接口以及 get_sign 接口进行实现。由于原型系统的协议无关性,只需把互通协议头长度当做参数传给构造函数,对互通协议不需要进行解析。因此,PDU_Reader 接口实现成本较低,修改相应的配置文件即可使用,甚至在有些模块的应用中,采用直接录制数据并顺序回放数据的方式,可以做到零开发成本。
  结束语:
  分布式系统测试的关键技术,即链路控制技术,通过接管模块间互通链路,为后续数据录制回放、汇集控制等奠定了基础;通过对分布式集群模拟技术的研究,提出了一种数据录制回放的方法,解决了搭建分布式系统环境困难和数据源获取困难等问题;通过对互通异常注入技术的研究,为分布式系统可靠性测试提供了一种新的解决方案;通过对高性能汇集库 libevent 和多线程技术的研究,实现了数据源高性能的获取.
  参考文献:
  [1]何腾蛟. 分布式系统测试模型与框架的研究与应用[D].电子科技大学,2009.
其他文献
摘要:森林资源是国家自然资源的重要组成部分,其不光影响着国家的经济发展,也与生态环境的平衡有着直接的关系。想要提高森林资源的生产质量,就一定要对其进行保护工作。森林在生长的过程中容易受到外界因素的影响,病虫害就是比较常见的影响因素,其对林业的生产建设有着严重的影响。因此,做好病虫害的防治工作是非常有必要,频振式杀虫灯可以进行森林测报也可以杀蚊灭虫,其在应用的过程中不会对周围的环境造成影响,而且成本
期刊
摘要:苯系物异丙苯是重要的基本有机化工原料,也可通过各种途径污染水质进而严重威胁人类健康。为建立一种简便、高效的水中苯系物异丙苯的检测方法,文章依托实验,研究讨论了液液萃取-毛细管气相色谱法的应用。  关键词:苯系物;气相色谱仪;液液萃取  苯系物是重要的化工原料,世界各国对于水中苯系物及挥发性有机物都有限定标准及法律法规,我国在《生活饮用水卫生标准》GB5749-2006 对其列入污染物监测范围
期刊
摘要:通過对GIS在城镇地籍管理中的应用进行研究,现行的地籍管理信息系统大多过于陈旧,管理的效率不高。为了能够保证地籍管理的效率和准确性,必须要引用计算机、网络等先进技术,建立多维时空城镇地籍管理信息系统,才能够实现地籍信息采集、分析和处理的自动化和规范化,建立多维城镇地籍管理信息系统可以避免传统管理方法的弊端,对规范地籍管理,更好的对土地资源进行开发,保障土地可持续利用具有重要的指导意义。具有广
期刊
摘要:众所周知,我国矿产资源丰富。随着经济发展与日俱增,人们对于资源的需求量越来越高。矿产开采成为中国推进经济发展的一个立足点。但是在矿产开采中容易遇到矿井老空水突水问题,根据老空水不同的情形采用合理的矿井下综掘工作面探放水技术能有效解决这一矿井安全问题。  关键词:矿井;综掘工作面;探放水技术  引言  现阶段,煤炭井下巷道掘进施工中,根据有掘必探的原则,采用常规的短探短掘防治水方法施工,探放水
期刊
摘要:我们主要结合某工程针对工程地质勘察研究以及地质灾害防治工作进行进一步探究,规模较大、效益较大以及复杂的地质条件是该工程的明显特征,所以在地质工作坝址选择工作方面面临一定的难度与挑战。在此过程当中,针对地质勘察以及灾害工作进行的研究起着相当重要的作用。这不仅可促使工程整体质量得到保障,并且最大限度的提升工作效率,为工程后续性能以及作用的发挥都有着较为积极的意义。  关键词:地质勘察;地质灾害;
期刊
摘要:社会经济的快速发展,人们的生活环境和生活质量水平都有所提高,在当前的发展形势下,人们对居住环境提出了更高的要求。建筑设计单位想要为城市居民营造一个舒适、优美的生活环境,则需要做好整体的建筑设计,同时也需要根据用户的应用需要来进行合理的室内空间设计,要明确二者之间的关系,了解建筑学设计和室内空间设计的相同点和不同点,使二者相辅相成、协调发展,保证建筑设计和室内设计满足用户居住需求。  关键词:
期刊
摘要:本文介绍了嵌入式设施的通用组态软件内图形组态设计,主要分析了在图形PC设计和实现缓解包含的各种关键内容,并在Linux的PC下实现了开发环境的流程编码,在依靠ucLinux的ARM芯片上实现了运行环境的流程编码。  关键词:嵌入式;姿态软件;图形设计  组态是指通过应用系统内含有的工具、办法,完成某个具体项目任务的环节。采用组态方法,通过“搭积木”的手段来建立控制平台,无需针对具体工作对程序
期刊
摘要:分布式系统诞生于20世纪70年代,它是建立在汇集之上的程序系统。在现代电脑应用中,已经从早期的以主机为核心转变为以汇集为核心,从而加大了对分布式系统的应用和发展,分布式系统已经成为构建应用的主要选择。随着搜索业务架构和策略越来越复杂,越来越多的搜索模块都是以分布式系统的方式进行构建的,以达到优化模块性能,并提高资源利用率及提高异常容错能力的目的。分布式系统具有很多新的特征,比如并发性、故障独
期刊
摘要:现代生物制药技术是当今生物技术应用和研究的重点,也是现代生物技术最先引入和普及的产业,经过多年的发展其应用范围、使用成效等方面,都取得了突破性进展。文章通过介绍现代生物医药的重点领域,对现代生物技术在医药领域的应用展开探讨。  关键词:现代生物技术;医药领域;应用  引言  现代生物技术作为一项高新技术,其与医药领域存在着密不可分的联系,现代生物技术发展一方面能够促进医学基础学科发生革命性转
期刊
摘要:在空中交通指挥管理系统中,机场通信导航台站发挥着关键性的作用,为航空安全提供了必要的保障。近年来,受雷击影响所引发的通信导航设施受损几率明显提高,对通信导航设备运行效果产生了负面作用,使飞机飞行的安全性下降。基于此,文章将民航机场通信导航台作为重点研究对象,阐述了综合防雷的有效措施。  关键词:民航机场;通信导航台;综合防雷  近年来,伴随导航设备的现代化发展,其内部电路精密性明显提升。在导
期刊