一种数据调度方法及系统与流程

文档序号:12730992阅读:317来源:国知局
一种数据调度方法及系统与流程

本发明涉及通信领域中的服务器集群管理技术,尤其涉及一种数据调度方法及系统。



背景技术:

随着进入大数据时代,大数据发展已经成为国家战略,随着硬件水平的不断发展,数据中心的软硬件设施性能在不断的提升。其中网络带宽瓶颈不断被突破,目前万兆网络已经成为数据中心的标准配置。服务器的存储和计算能力也遵循摩尔定律不断升级和优化。然而多数基于传统数据分发调度策略已经不能满足当前大数据环境下对于大数据量、实时性数据传输的要求。

这些调度策略在一定程度上解决了数据传输中的连接、调度问题,但是已经不适应现在的大数据环境下数据传输需求以及硬件配置的飞速发展。比如,以下几种方式:轮循(Round Robin),选择这种方式就意味着能力比较弱的服务器也会在下一轮循环中接受轮循,即使这个服务器已经不能再处理当前这个请求了。这可能导致能力较弱的服务器超载。加权轮循(Weighted Round Robin),管理员只是简单的通过服务器的处理能力来定义各台服务器的权重。最少连接数(Least Connection),传入的请求是根据每台服务器当前所打开的连接数来分配的。即活跃连接数最少的服务器会自动接收下一个传入的请求。但是,如果所有的服务器是相同的,那么基本上总是会优先选择第一台服务器。最少连接数慢启动时间(Least Connection Slow Start Time),基于管理人员配置的过渡时间进行处理。加权最少连接(Weighted Least Connection),也是需要由管理员根据服务器情况定制的权重所决定的活跃连接数,来进行数据调度。固定权重(Fixed Weighted),这种方式中每个真实服务器的权重需要基于服务器优先级来 配置。加权响应(Weighted Response),这种方式假定服务器心跳检测是基于机器的快慢,但是这种假设也许不总是能够成立。源IP哈希(Source IP Hash),对于同一主机来说他对应的服务器总是相同,使用这种方式,可能导致服务器负载不平衡。

可以看出,上述现有技术中提供的多种调度方式,都无法保证根据服务器的属性进行性能的分析进而进行调度,从而无法为数据调度的及时处理提供保证。



技术实现要素:

有鉴于此,本发明的目的在于提供一种数据调度方法及系统,能至少解决现有技术中存在的上述问题。

为达到上述目的,本发明的技术方案是这样实现的:

本发明实施例提供了一种数据调度方法,所述方法包括:

基于至少一个服务器的历史处理性能数据,确定所述历史处理性能数据中包括的至少一种属性,以及每一种属性对应的至少一种类别;

基于所述至少一个服务器的历史处理性能数据,建立服务器测评模型;其中,所述服务器测评模型中包括:由至少一个属性以及至少一个类别构成的至少一条分支路径,以及由测评结果构成的每一条分支路径的叶子节点;

基于所述服务器测评模型,对所述服务器集群中的至少一个服务器进行测评得到针对所述至少一个服务器中的每一个服务器的测评结果;

根据所述至少一个服务器中每一个服务器的测评结果进行数据调度。

本发明实施例提供了一种数据调度系统,包括:

数据预处理单元,用于基于至少一个服务器的历史处理性能数据,确定所述历史处理性能数据中包括的至少一种属性,以及每一种属性对应的至少一种类别;

模型建立单元,用于基于所述至少一个服务器的历史处理性能数据,建立服务器测评模型;其中,所述服务器测评模型中包括:由至少一个属性以及至 少一个类别构成的至少一条分支路径,以及由测评结果构成的每一条分支路径的叶子节点;

服务器测评单元,用于基于所述服务器测评模型,对所述服务器集群中的至少一个服务器进行测评得到针对所述至少一个服务器中的每一个服务器的测评结果;

调度单元,用于根据所述至少一个服务器中每一个服务器的测评结果进行数据调度。

本发明实施例提供了数据调度方法及系统,首先根据服务器集群中各个服务器对应的历史处理性能数据的至少一种属性以及至少一个类别,建立服务器决策模型,进而对机器性能数据进行实时计算从而判断机器是空闲还是繁忙状态,基于此判断结果将数据分发到较为空闲到机器上去。如此,充分考虑到机器性能的多种属性,基于多种属性进行性能分析,进而提升数据调度的准确性,提升数据处理的及时性。

附图说明

图1为本发明实施数据调度方法流程示意图;

图2为本发明实施例模型建立方法流程示意图;

图3为本发明实施例数据调度系统组成结构示意图。

具体实施方式

下面结合附图及具体实施例对本发明再作进一步详细的说明。

实施例一、

本实施例提供了一种数据调度方法,如图1所示,所述方法包括:

步骤101:基于至少一个服务器的历史处理性能数据,确定所述历史处理性能数据中包括的至少一种属性,以及每一种属性对应的至少一种类别;

步骤102:基于所述至少一个服务器的历史处理性能数据,建立服务器测评模型;其中,所述服务器测评模型中包括:由至少一个属性以及至少一个类 别构成的至少一条分支路径,以及由测评结果构成的每一条分支路径的叶子节点;

步骤103:基于所述服务器测评模型,对所述服务器集群中的至少一个服务器进行测评得到针对所述至少一个服务器中的每一个服务器的测评结果;

步骤104:根据所述至少一个服务器中每一个服务器的测评结果进行数据调度。

本实施例提供的方法可以应用于服务器集群中。

所述服务器测评模型中的测评结果即叶子节点可以为服务器的空闲程度,比如,可以为服务器空闲、繁忙以及正常。

进一步地,本实施例中基于至少一个服务器的历史处理性能数据,确定所述历史处理性能数据中包括的至少一种属性,以及每一种属性对应的至少一种类别,可以为一种预处理操作。

其中,所述历史处理性能数据还可以包括:服务器的标识信息、服务器的空闲程度等信息。

所述至少一种属性可以有CPU空闲情况、内存占用情况、网络拥塞情况、磁盘读写情况、客户端连接数量等。相应的类别可以有CPU空闲、繁忙、正常,内存占用高、内存占用正常、内存占用低,网络拥塞情况严重、网络拥塞情况正常、网络拥塞情况无,磁盘读写情况正常、磁盘读写情况异常,客户端链接数量多、客户端链接数量少、客户端连接数量正常等等。

具体的,假设有一数据集D,数据集D的属性为A1、A2、…、Ak,将其标注为c1、c2、…、cn这n个类别。比如,集群中机器的属性:网络IO、硬盘IO、CPU、内存等作为属性数据集,把每个属性的繁忙程度作为类别,如空闲、繁忙、适中等。

所述基于所述至少一个服务器的历史处理性能数据,建立服务器测评模型,包括:

基于所述历史处理性能数据中的至少一种属性对应的类别,计算得到所述历史处理性能数据的熵,并分别计算每一种属性对应的熵;

基于每一种属性的熵以及历史处理性能数据的熵,确定每一种属性的信息增益,基于所述每一种属性的信息增益对所述至少一种属性进行排序,得到排序后的至少一种属性;

基于所述至少一种属性的排序,建立由至少一个属性以及至少一个类别构成的至少一条分支路径,以及由测评结果构成的每一条分支路径的叶子节点。

在本步骤中,基于数据预处理后的数据集构建分类器,此步骤中使用ID3决策树算法进行实现。决策树算法通过递归地分隔训练数据,每一个递归都选择最佳分类属性作为分隔当前数据集的属性,最佳分类属性的选择通过混杂度函数实现;ID3决策树算法使用信息增量作为混杂度函数,信息增益基于信息论中的熵,熵是事物不确定性的衡量,熵越大说明事物不确定性越高。

上述基于所述历史处理性能数据中的至少一种属性对应的类别,计算得到所述历史处理性能数据的熵,并分别计算每一种属性对应的熵,具体如下:假设有一数据集D,数据集D的属性为A1、A2、…、Ak,且包含c1、c2、…、cn这n个类别,则原始状态下数据集D的熵可用下式表示:

其中,p()用于表示计算概率,也就是说p(cj)为计算第j个类别在整个训练元组中出现的概率,可以用属于此类别元素的数量除以训练元组元素总数量作为估计。熵的实际意义表示是D中元组的类标号所需要的平均信息量。

上述基于每一种属性的熵以及历史处理性能数据的熵,确定每一种属性的信息增益,基于所述每一种属性的信息增益对所述至少一种属性进行排序,得到排序后的至少一种属性;其中,所述计算每一种属性的信息增益的计算方式,可以如下:

若使用属性Ai可将D划分成v个不相交的子集D1、...、Dv,则使用属性Ai划分后数据集D的熵为:

则属性Ai的信息增益为:使用某一属 性进行数据分隔造成的信息增益越大,说明该属性进行数据分隔的效果越好。

基于所述每一种属性的信息增益对所述至少一种属性进行排序,得到排序后的至少一种属性,可以为将每一种属性的信息增益按照从大到小的顺序进行排序。

所述基于所述至少一种属性的排序,建立由至少一个属性以及至少一个类别构成的至少一条分支路径,以及由测评结果构成的每一条分支路径的叶子节点,可以为:

选取信息增益最大的一个属性作为最佳分类属性,也就是说,将这个最佳分配属性作为根节点;

然后依次按照排序,将其他属性作为不同分支路径中不同类别对应的节点,最终将测评结果作为每一条分支路径的叶子节点。

递归终止的条件是使最终分隔所得到的各个数据子集尽可能的纯净,算法所得到分类器是一颗树的形式,每个分叉路径则代表的某个可能的属性值,每个叶子结点对应一个类别。

优选地,所述方法还包括:当在所述服务器集群中添加新的服务器时,采集所述新的服务器的处理性能数据;对所述新的服务器的处理性能数据进行处理,得到至少一个属性以及至少一个类型;利用至少一个属性以及至少一个类型以及所述服务器测评模型,确定所述新的服务器的测评结果。根据决策树,对系统的服务器的属性信息进行分类操作,并根据分类结果选取空闲机器将任务调度到较为空闲的机器上。如果根据决策树分类结果为均值也就是表明集群系统中所有机器处于相同的状态,这是可以采用随机选取的方法任意选取部分机器作为数据传输对象。

所述根据所述至少一个服务器中每一个服务器的测评结果进行数据调度,包括:确定需要分配目标数据时,基于服务器集群中至少一个服务器对应的处理能力的测评结果,选取得到符合第一预设条件的目标服务器,其中,所述第一预设条件表征目标服务器的所述处理能力的测评结果为空闲;将所述目标数 据调度至所述目标服务器。

根据前面决策树算法执行的结果选取较为空闲的机器作为数据分发的目标机器。

进一步地,所述将所述目标数据调度至所述目标服务器之后,所述方法还包括:获取所述目标服务器针对所述目标数据进行处理的处理时长;判断所述处理时长是否大于预设门限值,若大于预设门限值,则控制重新建立服务器测评模型。根据决策树执行结果预估任务执行时间并与时间任务执行时间对比。如果任务实际执行时间大于预估时间较多,如:

|T执行-T预估|>>△T(设定可以接受的时间差作为门限值)

说明本条属性信息为较差的样本数据,将本条属性信息从测试集中去掉。经过多伦测试比对测试集中的无效数据会被剔除,实现了动态调整测试集的功能。

所述重新建立服务器测评模型,包括:

将当前服务器评测模型中的根节点对应的属性删除;

再基于所述至少一个服务器的历史处理性能数据,建立服务器测评模型。

进行重新建立服务器测评模型的方式可以为周期性的调整,在系统运行一段时间(这个时间长度可以根据具体情况调整)后,利用当前采集得到的历史处理性能数据更新数据信息,重复上述步骤。

传统方案基于历史经验值设置调度分发策略缺乏对硬件环境和具体应用场景的考虑。即使有的算法考虑到连接延时也没用充分将软硬件环境因素加入到数据调度的因素里。

本实施例提供的方案,能够首先根据服务器集群中各个服务器对应的历史处理性能数据的至少一种属性以及至少一个类别,建立服务器决策模型,进而对机器性能数据进行实时计算从而判断机器是空闲还是繁忙状态,基于此判断结果将数据分发到较为空闲到机器上去。如此,充分考虑到机器性能的多种属性,基于多种属性进行性能分析,进而提升数据调度的准确性,提 升数据处理的及时性。

另外,本实施例还提供了重新建立服务器测评模型的方法,如此还能够保证提供灵活的策略动态调整的机制。

实施例二、

ID3决策树算法的具体实施步骤如图2所示:

首先进行参数初始化,得到数据集D、属性集A、类别cj、并创建决策树T;

判断当前数据集D中是否只有一个类别cj,若是,则直接将cj添加到T的叶子节点中,作为决策节点;

若不是,则属性集A是否为空,若为空,则将数据集D中占比最高的cj作为叶子节点;

若不为空,则计算数据集D的熵,并且计算每一个属性的熵;

选取信息增益最大的一个属性作为最佳分类属性Ag;

判断最佳分类属性Ag的信息增益是否小于门限值,若小于,则将数据集D中占比最高的cj作为叶子节点;

若不小于,则将所述Ag作为决策树中的一个决策节点Ag,并且利用Ag划分数据集D;

将计算指针加1,设置j=j+1;

判断第j个子数据集是否为空,若是,则再将计算指针加1,再次判断第j个子数据集为空;

若不为空,则为决策树增加一个分支Tj,再次计算数据集中是否只包含一个类别cj,直至遍历完数据集中的属性以及类型。

实施例三、

本实施例提供了一种数据调度系统,如图3所示,包括:

数据预处理单元31,用于基于至少一个服务器的历史处理性能数据,确定 所述历史处理性能数据中包括的至少一种属性,以及每一种属性对应的至少一种类别;

模型建立单元32,用于基于所述至少一个服务器的历史处理性能数据,建立服务器测评模型;其中,所述服务器测评模型中包括:由至少一个属性以及至少一个类别构成的至少一条分支路径,以及由测评结果构成的每一条分支路径的叶子节点;

服务器测评单元33,用于基于所述服务器测评模型,对所述服务器集群中的至少一个服务器进行测评得到针对所述至少一个服务器中的每一个服务器的测评结果;

调度单元34,用于根据所述至少一个服务器中每一个服务器的测评结果进行数据调度。

本实施例提供的系统可以应用于服务器集群中的管理服务器,具体的,上述四个模块可以全部设置于一个管理服务器中,也可以分别设置于不同的具备管理功能的服务器中。

所述服务器测评模型中的测评结果即叶子节点可以为服务器的空闲程度,比如,可以为服务器空闲、繁忙以及正常。

进一步地,本实施例中基于至少一个服务器的历史处理性能数据,确定所述历史处理性能数据中包括的至少一种属性,以及每一种属性对应的至少一种类别,可以为一种预处理操作。

其中,所述历史处理性能数据还可以包括:服务器的标识信息、服务器的空闲程度等信息。

所述至少一种属性可以有CPU空闲情况、内存占用情况、网络拥塞情况、磁盘读写情况、客户端连接数量等。相应的类别可以有CPU空闲、繁忙、正常,内存占用高、内存占用正常、内存占用低,网络拥塞情况严重、网络拥塞情况正常、网络拥塞情况无,磁盘读写情况正常、磁盘读写情况异常,客户端链接数量多、客户端链接数量少、客户端连接数量正常等等。

具体的,假设有一数据集D,数据集D的属性为A1、A2、…、Ak,将 其标注为c1、c2、…、cn这n个类别。比如,集群中机器的属性:网络IO、硬盘IO、CPU、内存等作为属性数据集,把每个属性的繁忙程度作为类别,如空闲、繁忙、适中等。

所述模型建立单元,用于基于所述历史处理性能数据中的至少一种属性对应的类别,计算得到所述历史处理性能数据的熵,并分别计算每一种属性对应的熵;基于每一种属性的熵以及历史处理性能数据的熵,确定每一种属性的信息增益,基于所述每一种属性的信息增益对所述至少一种属性进行排序,得到排序后的至少一种属性;基于所述至少一种属性的排序,建立由至少一个属性以及至少一个类别构成的至少一条分支路径,以及由测评结果构成的每一条分支路径的叶子节点。

在本步骤中,基于数据预处理后的数据集构建分类器,此步骤中使用ID3决策树算法进行实现。决策树算法通过递归地分隔训练数据,每一个递归都选择最佳分类属性作为分隔当前数据集的属性,最佳分类属性的选择通过混杂度函数实现;ID3决策树算法使用信息增量作为混杂度函数,信息增益基于信息论中的熵,熵是事物不确定性的衡量,熵越大说明事物不确定性越高。

上述基于所述历史处理性能数据中的至少一种属性对应的类别,计算得到所述历史处理性能数据的熵,并分别计算每一种属性对应的熵,具体如下:假设有一数据集D,数据集D的属性为A1、A2、…、Ak,且包含c1、c2、…、cn这n个类别,则原始状态下数据集D的熵可用下式表示:

其中,p()用于表示计算概率,也就是说p(cj)为计算第j个类别在整个训练元组中出现的概率,可以用属于此类别元素的数量除以训练元组元素总数量作为估计。熵的实际意义表示是D中元组的类标号所需要的平均信息量。

上述基于每一种属性的熵以及历史处理性能数据的熵,确定每一种属性的信息增益,基于所述每一种属性的信息增益对所述至少一种属性进行排序,得 到排序后的至少一种属性;其中,所述计算每一种属性的信息增益的计算方式,可以如下:

若使用属性Ai可将D划分成v个不相交的子集D1、...、Dv,则使用属性Ai划分后数据集D的熵为:

则属性Ai的信息增益为:使用某一属性进行数据分隔造成的信息增益越大,说明该属性进行数据分隔的效果越好。

基于所述每一种属性的信息增益对所述至少一种属性进行排序,得到排序后的至少一种属性,可以为将每一种属性的信息增益按照从大到小的顺序进行排序。

所述基于所述至少一种属性的排序,建立由至少一个属性以及至少一个类别构成的至少一条分支路径,以及由测评结果构成的每一条分支路径的叶子节点,可以为:

选取信息增益最大的一个属性作为最佳分类属性,也就是说,将这个最佳分配属性作为根节点;

然后依次按照排序,将其他属性作为不同分支路径中不同类别对应的节点,最终将测评结果作为每一条分支路径的叶子节点。

递归终止的条件是使最终分隔所得到的各个数据子集尽可能的纯净,算法所得到分类器是一颗树的形式,每个分叉路径则代表的某个可能的属性值,每个叶子结点对应一个类别。

优选地,所述服务器测评单元,用于当在所述服务器集群中添加新的服务器时,采集所述新的服务器的处理性能数据;对所述新的服务器的处理性能数据进行处理,得到至少一个属性以及至少一个类型;利用至少一个属性以及至少一个类型以及所述服务器测评模型,确定所述新的服务器的测评结果。根据决策树,对系统的服务器的属性信息进行分类操作,并根据分类结果选取空闲机器将任务调度到较为空闲的机器上。如果根据决策树分类结果为均值也 就是表明集群系统中所有机器处于相同的状态,这是可以采用随机选取的方法任意选取部分机器作为数据传输对象。

所述调度单元,用于确定需要分配目标数据时,基于服务器集群中至少一个服务器对应的处理能力的测评结果,选取得到符合第一预设条件的目标服务器,其中,所述第一预设条件表征目标服务器的所述处理能力的测评结果为空闲;将所述目标数据调度至所述目标服务器。

根据前面决策树算法执行的结果选取较为空闲的机器作为数据分发的目标机器。

进一步地,所述调度单元,用于获取所述目标服务器针对所述目标数据进行处理的处理时长;判断所述处理时长是否大于预设门限值,若大于预设门限值,则控制所述模型建立单元重新建立服务器测评模型。根据决策树执行结果预估任务执行时间并与时间任务执行时间对比。如果任务实际执行时间大于预估时间较多,如:

|T执行-T预估|>>△T(设定可以接受的时间差作为门限值)

说明本条属性信息为较差的样本数据,将本条属性信息从测试集中去掉。经过多伦测试比对测试集中的无效数据会被剔除,实现了动态调整测试集的功能。

所述模型建立单元,用于将当前服务器评测模型中的根节点对应的属性删除;再基于所述至少一个服务器的历史处理性能数据,建立服务器测评模型。

进行重新建立服务器测评模型的方式可以为周期性的调整,在系统运行一段时间(这个时间长度可以根据具体情况调整)后,利用当前采集得到的历史处理性能数据更新数据信息,重复上述步骤。

传统方案基于历史经验值设置调度分发策略缺乏对硬件环境和具体应用场景的考虑。即使有的算法考虑到连接延时也没用充分将软硬件环境因素加入到数据调度的因素里。

本实施例提供的方案,能够首先根据服务器集群中各个服务器对应的历史处理性能数据的至少一种属性以及至少一个类别,建立服务器决策模型, 进而对机器性能数据进行实时计算从而判断机器是空闲还是繁忙状态,基于此判断结果将数据分发到较为空闲到机器上去。如此,充分考虑到机器性能的多种属性,基于多种属性进行性能分析,进而提升数据调度的准确性。

另外,本实施例还提供了建立服务器测评模型的更新方法,如此还能够保证提供灵活的策略动态调整的机制。

本发明实施例所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、基站、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

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