一种基于策略的网络测量方法、系统及测量机与流程

文档序号:12917329阅读:188来源:国知局
一种基于策略的网络测量方法、系统及测量机与流程

本发明属于通信网络技术领域,涉及一种测量方法及系统,特别是涉及一种基于策略的网络测量方法、系统及测量机。



背景技术:

互联网诞生以来,网络测量技术也随之产生。为了认识和理解现代互联网络的行为特征和性能表现、保证和提高现有网络服务质量、推动互联网和信息基础结构的健康发展,人们不停研究网络测量的各种方法。

传统网络测量对象大多针对网络层进行测量,如网络链路的传输延迟,丢包率,网络拓扑结构,路由等。随着互联网的发展,web,多媒体等应用的普及,dns、http、视频直播、视频点播等应用层网络测量势在必行。

网络测量持续时间长,测量节点数目众多,涉及的网络节点数目更多,网络测量对象多样复杂,测量需要能够配置简单化,分配自动化,高度可扩展。

nimi(nationalinternetmeasurementinfrastructure)项目利用ping,tracerute,mtrace等工具进行主动测量,它是一个可进行大规模网络测量的测量基础设施,创建了一个通用的架构,具有良好的可扩展性,可以灵活地在底层架构之上添加自己所需的测量工具。

现有技术中已提出dnmai(distributednetworkmeasurementandanalysisinfrastructure)方法,即具有很强包容性的分布式网络测量体系结构,能根据用户需求定制测量与分析方案,以解决灵活适用场景和可扩展性的问题。

现有测量体系结构的主要存在以下不足:

1、测量目标与测量机分配不灵活

nimi提出网格测量,即测量体系结构内每个目标对体系结构内的其他所有目标进行测量,这种方式有以下的局限性:

1)无法根据用户需求制定测量方案;

2)测量目标只局限在测量体系结构内;

3)国内运营商网络复杂,移动、长宽、教育网等小运营间网络连通性差,甚至同运营不同省份间的连通性也较差。

2、测量效率低,并发效率低或不支持并发,未实现资源隔离;

3、虽然现有网络测量体系结构及其实现方法能够根据用户需求定制测量方案,但需用户 人工在xml文件中配置测量目标与测量机的测量关系,由于网络测量规模大,涉及测量目标和测量机数量多,人工配置工作量大。

因此,如何提供一种基于策略的网络测量方法、系统及测量机,以解决现有技术中在进行网络测量时需人工配置测量目标与测量机的测量关系,但是如果遇到规模较大的网络,其涉及数据较多的测量目标和测量机,那么就会造成人工配置工作量大等缺陷,实已成为本领域从业者亟待解决的技术问题。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于策略的网络测量方法、系统及测量机,用于解决现有技术中在进行网络测量时需人工配置测量目标与测量机的测量关系,但是如果遇到规模较大的网络,其涉及数据较多的测量目标和测量机,那么就会造成人工配置工作量大的问题。

为实现上述目的及其他相关目的,本发明一方面提供一种基于策略的网络测量方法,用于对测量机进行测量任务配置以便测量机中的测试工具执行测量任务,所述基于策略的网络测量方法包括以下步骤:获取所述测量机上与用户需求相关联的测量任务的测量配置信息;所述测量任务的测量配置信息包括测量目标、调度策略、和/或测量参数;根据所述调度策略将测量目标分配给所述测量机以生成测量机与测量目标之间的测量关系,并为每一所述测量机生成测量目标配置文件;通过主动发送文件获取请求以获取测量任务,并调用所述测量工具来执行所述测量任务以得到测量结果数据。

于本发明的一实施例中,所述根据所述调度策略将测量目标分配给所述测量机以生成测量机与测量目标的测量关系,并为每一所述测量机生成测量目标配置文件的步骤包括:读取并解析所述测量任务的测量配置信息;判断所述测量配置信息是否为第一测量目标,若是,直接将所述第一测量目标放入一任务池以缓冲,解析所述调度策略,利用所述调度策略将测量目标分配给对应的测量机以生成测量机与测量目标之间的测量关系,根据生成的测量关系、测量参数为每一所述测量机生成测量目标配置文件,进入休眠期;若否,更新测量配置信息,将更新后的测量配置信息放入一测量目标任务队列中,遍历所述测量目标任务队列,判断所述测量目标任务队列中测量配置信息为第二测量目标还是为第三测量目标,若为第二测量目标,加载所述第二测量目标至所述任务池以更新所述任务池,进入休眠期;若为第三测量目标,加载所述第三测量目标至所述任务池以更新所述任务池,进入休眠期;在遍历所述测量目标任务队列的同时,并行执行解析所述调度策略,利用所述调度策略将测量目标分配给对应的测量机以生成测量机与测量目标之间的测量关系,根据生成的测量关系、测量参数为每 一所述测量机生成测量目标配置文件,进入休眠期。

于本发明的一实施例中,所述第一测量目标为ip列表或域名列表;所述第二测量目标为http接口;所述第三测量目标为数据表。

于本发明的一实施例中,所述周期性发送文件获取请求以获取测量任务,并调用所述测量工具来执行所述测量任务以得到测量结果数据的步骤包括:周期性发送文件获取请求以获取测量任务的测量配置信息,所述测量配置信息包括解析脚本、数据装配脚本、及测量任务的资源配额;判断所述解析脚本及数据装配脚本是否更新;若是,更新所述解析脚本及数据装配脚本,并判断所述测量工具是否需要更新;若否,直接判断所述测量工具是否需要更新;若是,输出重新配置所述测量工具的命令,调用所述更新的解析脚本解析所述测量配置信息,并将其放入任务池以缓冲,遍历所述任务池;若否,直接进入休眠期,待休眠期结束后返回遍历所述任务池的步骤;根据各测量任务的资源配额读取测量任务,并从所述任务池中提取所述测量任务;调用所述测量工具执行所述测量任务以获取测量结果数据,在执行完测试任务后利用所述数据装配脚本装配所述测量结果数据以将其封装成用户需求数据格式的测量结果数据。

于本发明的一实施例中,所述调度策略包括所述测量机的数量、分配策略的组合、和排除策略的组合。

于本发明的一实施例中,所述分配策略包括:随机分配策略、根据地理域组合而成的分配策略、同运营商同省份策略、同运营商大区域策略、指定运营商策略、每个省份运营商分配策略、同运营商每个省份分配策略、和/或全部分配策略。

本发明另一方面提供一种基于策略的网络测量系统,用于对测量机进行测量任务配置以便测试工具执行测量任务,所述基于策略的网络测量系统包括:调度中心,用于获取与用户需求相关联的的测量任务的测量配置信息,所述测量任务的测量配置信息包括测量目标、调度策略、和/或测量参数;并根据所述调度策略将测量目标分配给所述测量机以生成测量机与测量目标之间的测量关系,并为每一所述测量机生成测量目标配置文件;测量框架,与所述调度中心模块连接,用于通过接收文件获取请求以获取测量任务,并调用所述测量工具来执行所述测量任务以得到测量结果数据。

于本发明的一实施例中,所述调度中心包括:任务解析模块,用于读取并解析所述测量任务的测量配置信息,判断所述测量配置信息是否为第一测量目标,若所述任务解析模块判断所述测量配置信息为第一测量目标,所述任务解析模块直接将所述第一测量目标放入一任务池以缓冲,任务调度模块,用于解析所述调度策略,利用所述调度策略将测量目标分配给 对应的测量机以生成测量机与测量目标之间的测量关系的任务调度模块;配置文件生成模块,与所述任务调度模块连接,用于根据生成的测量关系、测量参数为每一所述测量机生成测量目标配置文件;若所述任务解析模块判断所述测量配置信息不为第一测量目标,所述任务解析模块更新测量配置信息,将更新后的测量配置信息放入一测量目标任务队列中,与任务解析模块连接的任务加载模块遍历所述测量目标任务队列,判断所述测量目标任务队列中测量配置信息为第二测量目标还是为第三测量目标,若为第二测量目标,任务加载模块用于加载所述第二测量目标至所述任务池以更新所述任务池,进入休眠期;若为第三测量目标,所述任务加载模块用于加载所述第三测量目标至所述任务池以更新所述任务池,进入休眠期;在所述任务加载模块遍历所述测量目标任务队列的同时,所述任务调度模块并行执行解析所述调度策略,利用所述调度策略将测量目标分配给对应的测量机以生成测量机与测量目标之间的测量关系以便所述配置文件生成模块根据生成的测量关系、测量参数为每一所述测量机生成测量目标配置文件。

于本发明的一实施例中,所述测量框架包括:交互模块,用于周期性发送文件获取请求以获取测量任务的测量配置信息、解析脚本、数据装配脚本、及测量任务的资源配额;任务配置管理模块,与所述交互模块连接,用于判断所述解析脚本及数据装配脚本是否更新;若是,更新所述解析脚本及数据装配脚本,并判断所述测量工具是否需要更新;若否,直接判断所述测量工具是否需要更新;若是,输出重新配置所述测量工具的命令,调用所述更新的解析脚本解析所述测量配置信息,并将其放入任务池以缓冲,遍历所述任务池;若否,直接进入休眠期,待休眠期结束后执行遍历所述任务池;作业调度模块,与所述任务配置管理模块和任务池连接,用于根据各测量任务的资源配额读取测量任务,并从所述任务池中提取所述测量任务;作业执行模块,与所述作业调度模块连接,用于调用所述测量工具执行所述测量任务以获取测量结果数据;数据装配模块,与所述作业执行模块连接,用于在执行完测试任务后利用所述数据装配脚本装配所述测量结果数据以将其封装成用户需求数据格式的测量结果数据。

本发明又一方面提供一种测量机,所述的基于策略的网络测量系统

如上所述,本发明的基于策略的网络测量方法、系统及测量机,具有以下有益效果:

本发明所述的基于策略的网络测量方法、系统及测量机具有以下几个优点:

1、测量任务配置简单灵活;

2、调度策略丰富,实现测量目标与测量机自动分配;

3、两级调度,减少网络通信开销;

4、高并发测量,进行资源隔离避免并发任务干扰;

5、高度扩展性。

附图说明

图1显示为本发明的分布式测量结构于一实施例中的结构示意图。

图2显示为本发明的基于策略的网络测量方法于一实施例中的流程示意图。

图3显示为本发明的网络测量模型的一种结构示意图。

图4显示为本发明的网络测量模型的另一种结构示意图。

图5显示为本发明的基于策略的网络测量方法中步骤s2的流程示意图。

图6显示为本发明的基于策略的网络测量方法中步骤s3的流程示意图。

图7显示为本发明的基于策略的网络测量系统于一实施例中的原理结构示意图。

图8显示为本发明的基于策略的网络测量系统中调度中心的原理结构示意图。

图9显示为本发明的基于策略的网络测量系统中测量框架的原理结构示意图。

图10显示为本发明的测量机的原理结构示意图。

元件标号说明

1分布式测量结构

11配置中心

12调度中心

13测量框架

14测量工具

15数据库

2基于策略的网络测量系统

21配置中心

22数据库

23调度中心

24测量框架

231任务解析模块

232任务池

233任务调度模块

234配置文件生成模块

235配置下发模块

236任务加载模块

241交互模块

242任务配置管理模块

243任务池

244作业调度模块

245数据装配模块

246作业执行模块

s1~s3步骤

s21~s30步骤

s31~s40步骤

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

实施例一

本实施例提供一种基于策略的网络测量方法,用于对测量机进行测量任务配置以便测试工具执行测量任务,所述基于策略的网络测量方法包括以下步骤:

获取所述测量机上与用户需求相关联的测量任务的测量配置信息;所述测量任务的测量配置信息包括测量目标、调度策略、和/或测量参数;

根据所述调度策略将测量目标分配给所述测量机以生成测量机与测量目标之间的测量关系,并为每一所述测量机生成测量目标配置文件;

通过主动发送文件获取请求以获取测量任务,并调用所述测量工具来执行所述测量任务 以得到测量结果数据。

以下将结合图示对本实施例所述的基于策略的网络测量方法,该方法用于对测量机进行测量任务配置以便测量工具执行测量任务。在本实施例中,所述基于策略的网络测量方法是针对两级调度的分布式测量结构1提出的,请参阅图1,显示为分布式测量结构于一实施例中的结构示意图。如图1所示,该分布式测量结构1分为配置中心11、调度中心12、测量框架13、测量工具14四个层次,并将配置中心11中配置的测量任务的测量配置信息存储于与所述调度中心12连接的数据库15中。本实施例所述的基于策略的网络测量方法的技术原理如下:

用户通过在配置中心11提供的网页上配置与用户需求相关联的测量任务的测量配置信息,在用户添加完测量任务后,管理员需审核,审核通过后,调度中心12读取测量任务的测量配置信息,完成测量目标和测量机的自动分配,并根据调度策略和测量机的地理域信息自动生成测量目标和测量机的测量关系。在调度中心12生成测量目标和测量机的测量关系后,测量框架13定期向调度中心12发送请求,获取最新的测量任务,所述测量框架13根据测量任务的测量周期,对测量任务进行日程调度。最后通过测量工具执行测量任务。每种测量工具都被定义为一种作业类型。作业类型包括http、ping、dns、snmp等,目前针对http、ping、dns、snmp四种作业利用linuxepoll或libevent机制开发出高效批量测量工具wspoll(http)、wsping(ping)、wsdig(dns)、wssnmp(snmp)。其他一些不支持批量任务有测量框架的线程池来控制并发等。作业类型的配置包含:作业类型、测量工具路径、测量工具是否支持批量等信息。在本实施例中可以通过对测量工具的配置实现测量工具动态新增或卸载。

请参阅图2,显示为基于策略的网络测量方法于一实施例中的流程示意图。如图2所示,所述基于策略的网络测量方法具体包括以下几个步骤:

s1,所述测量机获取与用户需求相关联的测量任务的测量配置信息;所述测量任务的测量配置信息包括测量目标、调度策略、测量参数、测量任务名称、测量任务目标列表、测量工具的配置、测量任务配置、lua脚本、和/或策略目标配置等等。其中,测量任务配置包括测量任务名称、作业类型、各测量任务的数据装配lua脚本名、测量任配置解析lua脚本名、测量任务的资源配额等等。在本实施例中,用户还需要通过配置中心维护测量任务的测量配置信息,测量任务的解析脚本配置,数据装配脚本配置,测量任务配置,并将这些配置保存于所述数据库中。由于测量任务差异性较大,配置采用扩展性较好的json或xml格式。其中,所述测量任务目标列表提供测量目标的运营商、省份等地理域信息,提供的地理 域信息越多,可支持调度策略越丰富。测量目标通过http接口或数据表提供,如是ip或域名列表则可直接在页面配置。

所述调度策略包括测量机数量、分配策略的组合和排除策略的组合。其中,所述测量机数量表示每个测量目标由多台测量机进行测量,例如,测量机数量为3即表示每个测量目标都分配3台测量机进行测量。特殊定义0为分配给满足条件的所有测量机。

所述分配策略表示使用何种分配方式来匹配测量目标和测量机,例如,通过匹配运营商,为测量目标匹配同运营商的测量机。如果与测量目标匹配的测量机有多台,本实施例将采用一致性哈希分配保证测量任务的均衡性和一致性。在本实施例中,提供以下几种分配策略:

i.随机分配策略:表示每个测量目标随机分配给测量机,分配的测量机数量可配置,数量为0表示每个测量目标都分配给所有的测量机

ii.根据地理域组合而成的分配策略,包含但不限于以下几种策略:

iii.同运营商同省份分配策略:表示每个测量目标可被与该目标运营商和省份信息相同的测量机执行,如目标ip为1.1.1.1的运营商为电信,省份为北京,则该任务可被北京电信的所有测量机执行。

iv.同运营商大区域分配策略:表示每个测量目标可被与该目标运营商和大区域信息相同的测量机执行,如目标ip为1.1.1.1的运营商为电信,省份为北京,北京归属华北地区,则该任务可被华北电信的所有测量机执行。

v.指定运营商分配策略:表示每个测量目标可被指定运营商的测量机执行,如目标ip为1.1.1.1,指定电信、联通运营商,则该任务可被运营商为电信、联通的测量机执行。

vi.每个省份运营商分配策略,表示将测量机按照省份运营商划分为一个域,每个域中选出n(n由用户配置)台对测量目标测量。

vii.同运营商每个省份分配策略,标识为每个测量目标匹配运营商信息相同的测量机,且将这些匹配到测量机按照省份划分为一个域,每个域中选出n(n由用户配置)台对测量目标测量。

本实施例不局限于以上所列举的分配策略,凡是适用于本实施例的分配策略都包含在本发明中。

在本实施例中,调度策略采用分配策略组合或排除策略组合,且策略的配置顺序为策略的优先级。例如,一个测量任务可以指定:同运营商同省份策略>同运营商大区域策略>同运营策略>全部分配策略在测量资源较为匮乏的区域,这样组合的策略能够实现选择较优的测量机进行测量。

在本实施例中,提供以下几种排除策略:

所述排除策略指定测量目标不可分配的测量机范围,本实施例提供如下几种排除策略:

i.排除同机房策略:表示每个测量目标不能被与该目标所属相同机房的测量机执行,如目标ip为1.1.1.1的机房为“北京安华机房”,则该任务不能被“北京安华机房”的所有测量机执行。

ii.排除同运营商同省份策略:表示每个测量目标不能被与该目标运营商和省份信息相同的测量机执行,如目标ip为1.1.1.1的运营商为电信,省份为北京,则该任务不能被北京电信的所有测量机执行。

iii.同运营商大区域策略:表示每个测量目标不能被与该目标运营商和大区域信息相同的测量机执行,如目标ip为1.1.1.1的运营商为电信,省份为北京,北京归属华北地区,则该任务不能被华北电信的所有测量机执行。

本实施例不局限于以上所列举的排除策略,凡是适用于本实施例的排除策略都包含在本发明中。

通过以上所述调度策略能够实现构建较为复杂网络测量模型,如测量目标为测量机,分配策略为随机分配,分配数量为0时,每台测量机都会对其余所有的测量机进行测量,构造出一种网络测量模型如图3所示。多个测量任务组合可构建更为复杂的又一种网络测量模型如图4所示。将一批测量目标分为2个任务a,b,测量任务a分配策略配置为同运营商每个省份的分配策略,测量任务b分配策略配置为不同运营商分配策略。所以图4中的网络测量模型是利用了同运营商和不同运营商间的网络性能。

所述测量参数为测量框架执行测量任务时所需要的参数,每种作业类型的参数可能不同,如作业类型为http时,测量参数有周期、url、超时时间等,作业类型为ping时,测量参数有周期、发送报文数量、发包间隔等。

s2,所述测量机根据所述调度策略将测量目标分配给所述测量机以生成测量机与测量目标之间的测量关系,并为每一所述测量机生成测量目标配置文件。请参阅图5,显示为步骤s2的流程示意图。如图5所示,所述步骤s2具体包括以下几个步骤:

s20,读取并解析所述测量任务的测量配置信息。在本步骤中需要解析出所述测量任务的测量配置信息为测量目标的配置类型以便执行下一步骤。在本实施例中,测量目标的配置类型包括第一测量目标,第二测量目标,及第三测量目标。所述第一测量目标是指ip列表或域名列表,第二测量目标是指http接口,第三测量目标为数据表。

s21,判断所述测量配置信息,即判断测量目标的配置类型是否为第一测量目标,即ip 列表或域名列表,则执行步骤s22。若否,即测量目标的配置类型不是第一测量目标,则执行步骤s23。

s22在判断出测量目标的配置类型为第一测量目标时,直接将所述第一测量目标放入一任务池以缓冲。在本实施例中,所述任务池是一数据缓存层,其用于缓冲测量任务的测量配置信息,例如,缓冲测量任务目标列表,调度策略,测量参数等信息。

s24,解析所述调度策略以配置调度策略的组成策略,将所述测量任务的测量配置信息更新至所述任务池,并遍历所述测量目标列表。在本实施例中,通过用户配置的调度策略名称,调用策略对应的java类利用组合模式生成组合策略,例如,同运营商同省份策略对应调度中心的java类sameispprovincestrategy。

s26,读取每个测量任务的测量目标列表、调度策略,测量参数,测量机列表,利用所述调度策略将测量目标分配给对应的测量机以生成测量机与测量目标之间的测量关系。例如,调度策略为同运营商分配,测量目标ip有1.1.1.1、2.2.2.2,运营商分配电信、网通,测量机ip有111.1.1.1、222.2.2.2,运营商分配为电信、网通,按照调度策略将测量目标ip1.1.1.1将分配给测量机ip111.1.1.1,将测量目标ip2.2.2.2将分配给测量机ip222.2.2.2。

s28,根据生成的测量关系、测量参数为每一所述测量机生成测量目标配置文件,进入休眠期,休眠期结束后,重新返回步骤s20。在本实施例中,所述测量目标配置文件为xml格式,包括4个部分:测量目标名称以<name>表示,作业类型以<jobtype>表示,测量参数以<param>表示,测量目标列表以<tasks>表示。测量参数因测作业类型的而异,http作业包含周期<cycle>表示,超时时间<timeout>标识。测量目标列表由<task>组成,一个task包含测量目标<dest>、监控对象<monobj>。

s30,所述调度中心通过周期性接收所述测量框架主动发送的获取测量目标配置文件的获取请求以获取测量任务,根据所述测量机的唯一标识id,反馈与该测量机相对应的测量目标配置文件。所述测量目标配置文件包括测量机标识id特有的测量目标配置和公共的lua脚本,作业配置信息、测量任务配置。作业类型配置信息包括作业类型、作业列表、测量工具的路径、测量工具是否支持批量,测量任务配置包括测量任务名、作业类型、测量任务的数据装配lua脚本名、配置解析lua脚本名、测量任务的资源配额。

s23,在判断出测量目标的配置类型非第一测量目标时,更新测量配置信息,即更新测量配置信息中的测量目标,将更新后的测量配置信息(即更新后的测量目标)放入一测量目标任务队列。

s25,遍历所述测量目标任务队列,读取所述测量目标任务队列中的测量配置信息。

s27,判断所述测量目标任务队列中的测量配置信息为第二测量目标还是为第三测量目标,若为第二测量目标,即为http接口,执行步骤s29,若为第三测量目标,即为数据表,执行步骤s29’。

在本实施例中,更新测量配置信息中的测量目标之后,与重新读取所述任务的测量配置信息,并判断所述测量配置信息为第二测量目标还是为第三测量目标并行执行的步骤为s24。即若判断出测量目标的配置类型非第一测量目标,更新测量配置信息中的测量目标之后,同时执行步骤s24,解析所述调度策略以配置调度策略的组成策略,将所述测量任务的测量配置信息更新至所述任务池,并遍历所述测量目标列表。

s29,加载所述第二测量目标至所述任务池以更新所述任务池中的测量目标,进入休眠期,休眠期结束后,重新返回步骤s25。

s29’,加载所述第三测量目标至所述任务池以更新所述任务池中测量目标,进入休眠期,休眠期结束后,重新返回步骤s25。

s3,所述测量机通过交互以获取测量任务,并调用所述测量工具来执行所述测量任务以得到测量结果数据。请参阅图6,显示为步骤s3的流程示意图。如图6所示,所述步骤s3具体包括以下几个步骤:

s31,周期性发送文件获取请求以接收所述测量目标配置文件,通过测量目标配置文件中的解析脚本解析所述测量目标配置文件中包含的测量任务的测量配置信息、测量任务配置等,所述测量任务配置包括测量任务的作业类型、解析脚本、数据装配脚本、及测量任务的资源配额等。在本实施例中,所述解析脚本为lua解析脚本,所述数据装配脚本为lua数据装配脚本。所述lua解析脚本解析测量任务的测量配置信息以获取测量框架可识别的数据格式。

s32,判断所述解析脚本及数据装配脚本是否更新,若是,执行步骤s33,若否,则直接执行步骤s34。由于周期性获取最新的测量目标配置文件,所以允许测量目标配置文件中的内容设置是文件格式变更,若测量目标配置文件变更为json格式,修改lua脚本,测量框架就能完成对新的测量目标配置文件的处理,无需重新部署测量框架。

s33,若所述解析脚本及数据装配脚本需要更新,则更新所述解析脚本及数据装配脚本,即修改解析脚本和数据装配脚本,并转入下一步骤。

s34,判断所述测量工具是否需要更新;若是,则执行步骤s35,输出重新配置测量工具的命令以便工作人员知悉重新对测量工具进行配置,并转入步骤s36。若否,则直接执行步骤s36’,即调用所述测量目标配置文件中获取的解析脚本来解析所述测量配置信息,并将其放入任务池以缓冲。

s36,调用所述更新的解析脚本解析所述测量配置信息,并将其放入任务池以缓冲。

s37,根据所述作业类型遍历所述任务池。

s38,判断所述任务池中是否有测量任务。若是,则执行步骤s39,若否,则执行步骤s40,直接进入休眠期,待休眠期结束后返回步骤s37,即重新根据所述作业类型遍历所述任务池。

s38,根据各测量任务的资源配额批量从任务池中读取测量任务,并从所述任务池中提取所述测量任务。在本实施例中,测量任务是一批一批的提取并执行,执行完当前提取的测量任务后,才会重新从任务池中提取另一批量测量任务。在本实施例中,步骤s38还具体包括以下内容:

在作业调度周期到来后,遍历所述作业配置中包含的作业列表,判断作业状态为执行(running)或空闲(idle),若是空闲(idle),那么将作业状态置为running,根据测量任务的资源配额批量从任务池中读取测量任务以便执行该测量任务;

判断测量工具是否支持批量作业,若是,将批量的测量任务放入批量作业线程池以便执行,执行完毕后进入休眠期;若否,将非批量的测量任务放入非批量作业线程池,通过每个线程调用对应的测量工具来执行测量任务。

s39,调用所述测量工具执行所述测量任务以获取测量结果数据,在执行完测试任务后利用所述数据装配脚本装配所述测量结果数据以将其封装成用户需求数据格式的测量结果数据,待装配脚本执行结束后,将作业状态置为空闲(idle),并将测量结果数据上报给指定目标。

以下为应用本实施例所述的基于策略的网络测量方法的和第二具体实例:

第一具体实例中测量任务为在相同运营商相同省份内的网络延迟、丢包率,测量过程如下:

1.用户登录配置中心web界面添加测量任务,添加完成后状态变为待审核,需要配置如下信息:

1)测量任务名test_ping

2)作业类型为ping

3)测量目标通过http方式获取,配置http接口

4)分配策略为同运营商同省份策略,为了保障测量数据的可靠性,每个目标使用2台测量

5)配置测量任务参数,测量周期2分钟、发送报文10、报文发送间隔为100ms。

2.管理员配置中心web审核页面对测量任务进行审核和校验,流程如下:

1)ping任务使用通过测量工具wsping(一款利用linuxepoll机制开发高并发ping测量工具),故无需进行测量工具配置。如果测量工具为新增工具,需要在测量机上部署测量工具,并在配置中心添加测量工具的作业类型、安装路径等作业配置

2)指定任务配置解析lua脚本,数据装配lua脚本

3)校验配置无误后,将状态置为审核通过

3.完成以上2个步骤后,调度中心将自动完成任务分配,测量框架根据用户需求,周期性执行测量任务,直到用户禁用或删除任务。调度中心执行以下步骤:

1)从数据表读取已审核的测量任务

2)解析测量目标配置,目标为http接口,调用http加载模块向http接口请求测量目标列表,测量任务有1.1.1.1等2000个目标,将目标放入到线程池(任务池)。

3)解析调度策略,调度策略为同运营商同省份分别策略,创建一个组合策略类,类仅有sameispprovincestrategy(同运营商同省份策略)类。

4)获取测量机列表,测量机有111.1.1.1,111.1.1.2等500台机器。

5)调用组合策略类,遍历2000个测量目标,从500台测量机选出满足策略的测量机,再依据一致性哈希(一种哈希算法),选出2台测量机。如:测量目标1.1.1.1运营商为联通,测量机111.1.1.1–111.1.1.4这4台机器,用一致性哈希选出111.1.1.1、111.1.1.2,这里就有两个测量机与测量目标的关系,111.1.1.1的测量目标为1.1.1.1,111.1.1.2的测量目标也为1.1.1.1。

4.生成测量机的配置文件(测量目标配置文件),如测量机111.1.1.1承担test_ping任务,作业类型为ping,测量参数测量周期2分钟(120秒)、发送报文10、报文发送间隔为100毫秒(ms),测量目标1.1.1.1生成xml配置文件。

第二具体实例中测量任务为测量a.com在中国各运营商省份的服务质量:

1.用户登录配置中心web界面添加测量任务,添加完成后状态变为待审核,需要配置如下信息:

1)测量任务名test_http

2)作业类型为http

3)测量目标为a.com,

4)分配策略为每个运营商省份策略,测量机数量为1即,每个运营商省份都分配1台测量机

5)配置测量任务参数,测量周期1分钟、超时时间为10s

2.管理员配置中心web审核页面对测量任务进行审核和校验,流程如下:

1)http任务使用通过测量工具wspoll(一款利用libevent开发高并发http测量工具),故无需进行测量工具配置。如果测量工具为新增工具,需要在测量机上部署测量工具,并在配置中心添加测量工具的作业类型、安装路径等作业配置

2)指定任务配置解析lua脚本,数据装配lua脚本

3)校验配置无误后,将状态置为审核通过

3.完成以上2个步骤后,中心调度将自动完成任务分配测量框架根据用户配置,周期性执行测量任务,直到用户禁用或删除任务。中心调度的任务分配步骤如下:

1)从数据表读取已审核的测量任务

2)解析测量目标配置,目标a.com,将目标放入到线程池;

3)解析调度策略,调度策略为同运营商同省份分配策略,创建一个组合策略类,类仅有perispprovincestrategy(每个运营商省份分配)类。

4)获取测量机列表,测量机有111.1.1.1,111.1.1.2等500台机器。

5)调用组合策略类,测量目标只有a.com,测量机有500台,perispprovincestrategy将500台测量机按照运营商省份分类,每个运营商省份挑出1台测量机。111.1.1.1,111.1.1.2这2台机器,运营商省份信息分别为电信北京、电信上海,111.1.1.1的测量目标为a.com,111.1.1.2的测量目标也为a.com。

4.生成测量机的配置文件,如测量机111.1.1.1承担test_http任务,作业类型为http,测量参数测量周期1分钟(60s)、超时时间为10s,测量目标a.com等信息生成xml配置文件。

本实施例所述的基于策略的网络测量方法具有以下几个优点:

1、测量任务配置简单灵活;

2、调度策略丰富,实现测量目标与测量机自动分配;

3、两级调度,减少网络通信开销;

4、高并发测量,进行资源隔离避免并发任务干扰;

5、高度扩展性。

实施例二

本实施例提供一种基于策略的网络测量系统,用于对测量机进行测量任务配置以便测量机中的测试工具执行测量任务,所述基于策略的网络测量系统包括:

调度中心,用于获取与用户需求相关联的的测量任务的测量配置信息,所述测量任务的测量配置信息包括测量目标、调度策略、和/或测量参数;并根据所述调度策略将测量目标分 配给所述测量机以生成测量机与测量目标之间的测量关系,并为每一所述测量机生成测量目标配置文件;

测量框架,与所述调度中心模块连接,用于通过主动发送文件获取请求以获取测量任务,并调用所述测量工具来执行所述测量任务以得到测量结果数据。

以下将结合图示对本实施例所述的基于策略的网络测量系统进行详细阐述。请参阅图7,显示基于策略的网络测量系统于一实施例中的原理结构示意图。如图7所示,所述基于策略的网络测量系统2包括配置中心21、数据库22、调度中心23、及测量框架24。

所述配置中心21用于提供网页服务。用户通过在配置中心21提供的网页上配置与用户需求相关联的测量任务的测量配置信息,在用户添加完测量任务后,管理员需审核,审核通过后,调度中心23读取测量任务的测量配置信息,完成测量目标和测量机的自动分配,并根据调度策略和测量机的地理域信息自动生成测量目标和测量机的测量关系。在调度中心23生成测量目标和测量机的测量关系后,测量框架24定期向调度中心23发送请求,获取最新的测量任务,所述测量框架24根据测量任务的测量周期,对测量任务进行日程调度。最后通过调用测量工具执行测量任务。每种测量工具都被定义为一种作业类型。作业类型包括http、ping、dns、snmp等,目前针对http、ping、dns、snmp四种作业利用linuxepoll或libevent机制开发出高效批量测量工具wspoll(http)、wsping(ping)、wsdig(dns)、wssnmp(snmp)。其他一些不支持批量任务有测量框架的线程池来控制并发等。作业类型的配置包含:作业类型、测量工具路径、测量工具是否支持批量等信息。在本实施例中可以通过对测量工具的配置实现测量工具动态新增或卸载。在本实施例中,新增一个测量任务只需要用户在配置中心页面进行配置,删除测量任务在配置中心页面删除即可,通过动态添加和删除实现高度扩展性。若需要新增一种作业类型,需要管理员在配置中心上作业类型,测量工具路径,如机器上无此测量工具,还需要将测量工具部署到测量机上,安装路径要与配置中心配置的测量工具路径一致。测量机的测量目标配置文件使用lua脚本解析,就允许中心调度变更配置文件格式。测量结果同样使用lua脚本装配,能够为每个测量任务实现特殊的定制化。

与所述配置中心21连接的数据库22用于存储与用户需求相关联的测量任务的测量配置信息;所述测量任务的测量配置信息包括测量目标、调度策略、测量参数、测量任务名称、作业类型、测量任务的解析脚本配置,数据装配脚本配置,测量任务配置、和/或测量任务目标列表等等。所述调度策略包括测量机数量、分配策略的组合和排除策略的组合。其中,所述测量机数量表示每个测量目标由多台测量机进行测量,例如,测量机数量为3即表示每个 测量目标都分配3台测量机进行测量。特殊定义0为分配给满足条件的所有测量机。

与所述数据库22连接的调度中心23用于获取所述测量机上与用户需求相关联的测量任务的测量配置信息,根据测量任务的测量配置信息中的所述调度策略将测量目标分配给所述测量机以生成测量机与测量目标之间的测量关系,并为每一所述测量机生成测量目标配置文件。请继续参阅图8,图8中显示所述调度中心23的具体结构。所述调度中心23包括:任务解析模块231、任务池232、任务调度模块233、配置文件生成模块234、配置下发模块235、及任务加载模块236。

任务解析模块231用于获取所述测量机上与用户需求相关联的测量任务的测量配置信息读取并解析所述测量任务的测量配置信息。在本实施例中需要解析出所述测量任务的测量配置信息为测量目标的配置类型以便下述模块继续运行。在本实施例中,测量目标的配置类型包括第一测量目标,第二测量目标,及第三测量目标。所述第一测量目标是指ip列表或域名列表,第二测量目标是指http接口,第三测量目标为数据表。

所述任务解析模块231还用于判断所述测量配置信息,即判断测量目标的配置类型是否为第一测量目标,即ip列表或域名列表。若否,即测量目标的配置类型不是第一测量目标

在判断出测量目标的配置类型为第一测量目标时,所述任务解析模块231直接将所述第一测量目标放入一任务池232以缓冲。在本实施例中,所述任务池是一数据缓存层,其用于缓冲测量任务的测量配置信息,例如,缓冲测量任务目标列表,调度策略,测量参数等配置信息。

所述任务解析模块231还用于解析所述调度策略以配置调度策略的组成策略,将所述测量任务的测量配置信息更新至所述任务池,并遍历所述测量目标列表。在本实施例中,通过用户配置的调度策略名称,调用策略对应的java类利用组合模式生成组合策略,例如,同运营商同省份策略对应调度中心的java类sameispprovincestrategy。

与所述任务池232连接的任务调度模块233用于读取每个测量任务的测量目标列表、调度策略,测量参数,测量机列表,利用所述调度策略将测量目标分配给对应的测量机以生成测量机与测量目标之间的测量关系。例如,调度策略为同运营商分配,测量目标ip有1.1.1.1、2.2.2.2,运营商分配电信、网通,测量机ip有111.1.1.1、222.2.2.2,运营商分配为电信、网通,按照调度策略将测量目标ip1.1.1.1将分配给测量机ip111.1.1.1,将测量目标ip2.2.2.2将分配给测量机ip222.2.2.2。

与所述任务调度模块233连接的配置文件生成模块234用于根据生成的测量关系、测量参数为每一所述测量机生成测量目标配置文件,进入休眠期,待休眠期结束后,重新调用所 述任务解析模块231。在本实施例中,所述测量目标配置文件为xml格式,包括4个部分:测量目标名称以<name>表示,作业类型以<jobtype>表示,测量参数以<param>表示,测量目标列表以<tasks>表示。测量参数因测作业类型的而异,http作业包含周期<cycle>表示,超时时间<timeout>标识。测量目标列表由<task>组成,一个task包含测量目标<dest>、监控对象<monobj>。

与所述配置文件生成模块234连接的配置下发模块235用于周期性接收测量机中测量框架主动发送的获取测量目标配置文件的获取请求以获取测量任务,根据所述测量机的唯一标识id,反馈与该测量机相对应的测量目标配置文件。所述测量目标配置文件包括测量机标识id特有的测量目标配置和公共的lua脚本,作业配置信息、测量任务配置。作业类型配置信息包括作业类型、作业列表、测量工具的路径、测量工具是否支持批量,测量任务配置包括测量任务名、作业类型、测量任务的数据装配lua脚本名、配置解析lua脚本名、测量任务的资源配额。

与所述任务解析模块231在判断出测量目标的配置类型非第一测量目标时,更新测量配置信息,将更新后的测量配置信息放入一测量目标任务队列中。

与所述任务解析模块231和任务池232连接的任务加载模块236用于在所述任务解析模块231判断出测量目标的配置类型非第一测量目标时,遍历所述测量目标任务队列,读取所述测量目标任务队列中的测量配置信息,并判断所述测量配置信息为第二测量目标还是为第三测量目标,若为第二测量目标,即为http接口,加载所述第二测量目标至所述任务池以更新所述任务池中的测量目标,进入休眠期,待休眠期结束后,继续遍历所述测量目标任务队列;若为第三测量目标,即为数据表,加载所述第三测量目标至所述任务池以更新所述任务池中测量目标,进入休眠期,待休眠期结束后,继续遍历所述测量目标任务队列。在本实施例中,当所述任务解析模块231判断所述测量配置信息非第一测量目标时,更新测量配置信息,即更新测量配置信息中的测量目标之后,在所述任务加载模块遍历所述测量目标任务队列的同时,所述任务调度模块233并行执行解析所述调度策略,利用所述调度策略将测量目标分配给对应的测量机以生成测量机与测量目标之间的测量关系以便所述配置文件生成模块根据生成的测量关系、测量参数为每一所述测量机生成测量目标配置文件。

与所述调度中心23连接的测量框架24用于通过与所述调度中心交互以获取测量任务,并调用所述测量工具来执行所述测量任务以得到测量结果数据。请参阅图9,显示为测量框架的原理结构示意图。如图9所示,所述测量框架24具体包括:交互模块241、任务配置管理模块242、任务池243、作业调度模块244、数据装配模块245、作业执行模块246、

交互模块241用于周期性发送文件获取请求以接收所述测量目标配置文件,通过测量目标配置文件中的解析脚本解析所述测量目标配置文件中包含的测量任务的测量配置信息、测量任务配置等,所述测量任务配置包括测量任务的作业类型、解析脚本、数据装配脚本、及测量任务的资源配额等。在本实施例中,所述解析脚本为lua解析脚本,所述数据装配脚本为lua数据装配脚本。所述lua解析脚本解析测量任务的测量配置信息以获取测量框架可识别的数据格式。

与所述交互模块241连接的任务配置管理模块242用于判断所述解析脚本及数据装配脚本是否更新,若所述解析脚本及数据装配脚本需要更新,则更新所述解析脚本及数据装配脚本,即修改解析脚本和数据装配脚本,若否,则判断所述测量工具是否需要更新。由于周期性获取最新的测量目标配置文件,所以允许测量目标配置文件中的内容设置是文件格式变更,若测量目标配置文件变更为json格式,修改lua脚本,测量框架就能完成对新的测量目标配置文件的处理,无需重新部署测量框架。

所述任务配置管理模块242判断所述测量工具是否需要更新;若是,则输出重新配置测量工具的命令以便工作人员知悉重新对测量工具进行配置,并调用所述更新的解析脚本解析所述测量配置信息,并将其放入任务池243以缓冲,遍历所述任务池243。若否,则直接进入休眠期,待休眠期结束执行遍历所述任务池的功能。

与所述任务池243连接的作业调度模块244用于判断所述任务池中是否有测量任务。若是,则根据各测量任务的资源配额批量从任务池中读取测量任务,并从所述任务池中提取所述测量任务。在本实施例中,测量任务是一批一批的提取并执行,再执行完当前提取的测量任务后,才会重新从任务池中提取另一批量测量任务,若否,则所述数据装配模块245调用所述数据装配脚本直接对测量数据进行装配封装成用户需求数据格式的测量结果数据,并将测量结果数据上报给指定目标。

在本实施例中,作业调度模块244还具体包括以下内容:

在作业调度周期到来后,遍历所述作业配置中包含的作业列表,判断作业状态为执行(running)或空闲(idle),若是idle,那么将作业状态置为running,根据测量任务的资源配额批量从任务池中读取测量任务以便执行该测量任务;

判断测量工具是否支持批量作业,若是,将批量的测量任务放入批量作业线程池以便执行,执行完毕后进入休眠期;若否,将非批量的测量任务放入非批量作业线程池,通过每个线程调用对应的测量工具来执行测量任务。

所述作业执行模块246调用所述测量工具执行所述测量任务以获取测量结果数据,在执 行完测试任务后所述数据装配模块245利用所述数据装配脚本装配所述测量结果数据以将其封装成用户需求数据格式的测量结果数据,并将测量结果数据上报给指定目标。

在本实施例中,测量框架24批量作业执行具体过程为:线程池自动调用回调函数执行作业,作业完成后调用数据装配lua脚本装配数据,同时将作业状态置为空闲(idle),并更新测量任务测量时间,放入任务池,等待下一轮的测量。

测量框架24在执行非批量作业执行具体过程为:

线程池自动调用回调函数执行任务,任务完成后,判断该批次的所有任务是否都完成,如果未完成则任务执行结束,若完成则调用数据装配lua脚本装配数据,同时将作业状态置为空闲(idle),并更新测量任务测量时间,放入任务池,等待下一轮的测量。

本实施例还包括一种测量机3,请参阅图10,显示为测量机于一实施例中的原理结构示意图。如图10所示,所述测量机3包括上述的基于策略的网络测量系统2。

综上所述,本发明所述的基于策略的网络测量方法、系统及测量机具有几点益处:

第一,测量任务配置简单灵活:添加一个测量任务用户只需要在页面上配置测量任务名,作业类型,测量目标列表,调度策略,测量参数。测量目标列表可以支持http接口和数据表配置,中心调度会定期读取。用户添加完任务后,管理员进行审核,并为该任务指定配置解析lua脚本,数据装配lua脚本。通常各个测量任务的配置文件格式差别不大,可以共享一个配置解析脚本,每个作业类型装配lua脚本也可以共享。管理员审核通过后,中心调度会读取测量任务信息,开始进行任务调度。

第二,调度策略丰富,实现测量目标与测量机自动分配:调度策略可配置测量机数量、分配策略、排除策略,分配策略为组合策略、可实现全部分配,指定测量机以及各个地理域策略组合策略。中心调度根据调度策略和测量机的地理域信息自动生成测量任务和测量机映射关系。

第三,两级调度,减少网络通信开销:调度中心只生成测量任务和测量机的分配关系,测量框架周期向中心调度请求,获取最新的测量任务。测量框架根据任务的测量周期,对测量任务进行日程调度,在周期内完成所有的测量任务。调度中心负责第一级的测量任务和测量机分配,实际测量第二级调度即测量框架的调度模块负责,多数的测量任务都是持续时间很长的周期性任务,二级调度大大减少测量机与中心调度的通信开销。

第四,高并发测量,进行资源隔离避免并发任务干扰:定制开发通用测量工具,利用linuxepoll或libevent实现测量工具高效并发测试。对于无法支持批量的任务,采用测量框架的线程池进程批量测试。每个测量任务每次运行都有资源配置,每次只运行一定数量的测量目标, 完成一批任务后,再对该测量任务下一批目标进行测试。

第五,高度扩展性:新增一个测量任务只需要用户在配置中心页面进行配置,删除测量任务在配置中心页面删除即可。若需要新增一种作业类型,需要管理员在配置中心上配置作业类型,测量工具路径,如机器上无此测量工具,还需要将测量工具部署到测量机上,安装路径要与配置中心配置的测量工具路径一致。测量机的测量目标配置文件使用lua脚本解析,就允许中心调度变更配置文件格式。测量结果同样使用lua脚本装配,能够为每个测量任务实现特殊的定制化。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1