一种流量调度方法及装置与流程

文档序号:12037751阅读:246来源:国知局
一种流量调度方法及装置与流程

本发明涉及计算机技术领域,特别涉及一种流量调度方法及装置。



背景技术:

随着计算机技术的发展,在社会生活中需要处理的数据越来越多,大数据技术作为处理庞大而复杂的数据的技术,已经受到越来越多的关注。

在大数据处理过程中,主要通过网络层中的各个交换机之间的链路,对数据流进行转发。每个交换机对数据流进行转发时,只根据该数据流对应的转发规则,选择相应的链路,而不考虑链路中的带宽利用率。这使得在数据流转发过程中,一部分链路十分拥堵,而另一部分链路又相对空闲,从而导致链路负载的均衡性较低。



技术实现要素:

本发明实施例提供了一种流量调度方法及装置,能提高链路负载的均衡性。

第一方面,本发明实施例提供了一种流量调度方法,包括:

确定轮询周期,并根据所述轮询周期,向至少一个交换机发送流量查询指令;

接收所述至少一个交换机根据所述流量查询指令发送的流量信息;

根据所述流量信息,确定每两个所述交换机之间对应的链路的带宽利用率;

当存在至少一条链路对应的带宽利用率大于预设阈值时,从带宽利用率大于预设阈值的至少一条链路中确定目标链路;

确定与所述目标链路对应的目标交换机,并从所述目标交换机中确定至少一个待调度数据流;

根据所述每两个所述交换机之间对应的链路的带宽利用率,确定至少一条目标路径;其中,所述目标路径中包括至少一个链路,且每一个链路的带宽利用率均不大于预设阈值;

将所述至少一个待调度数据流调度至所述目标路径,利用所述目标路径上对应的交换机对调度后的所述至少一个待调度数据流进行转发。

优选地,

所述根据所述流量信息,确定每两个所述交换机之间对应的链路的带宽利用率,包括:

针对每两个交换机之间对应的链路,均执行:

根据所述链路对应的两个交换机中,每一个交换机包括的每条所述数据流的流速,确定所述链路的带宽利用率。

优选地,

所述根据所述链路对应的两个交换机中,每一个交换机包括的每条所述数据流的流速,确定所述链路的带宽利用率,包括:

根据下述计算公式,计算所述链路的带宽利用率;

其中,hi,j表征交换机i和交换机j之间对应的链路的带宽利用率,maxi,j表征所述链路中的最大带宽,表征第k条所述数据流的流速,n表征所述数据流的数量。

优选地,

所述根据所述每两个所述交换机之间对应的链路的带宽利用率,确定至少一条目标路径,包括:

针对每两个交换机之间对应的链路,均执行:根据所述链路中对应的数据流的数量以及所述带宽利用率,确定所述链路对应的吞吐率;

根据确定出的各个链路分别对应的吞吐率,确定至少一个目标路径。

优选地,

所述根据所述链路中对应的数据流的数量以及所述带宽利用率,确定所述链路对应的吞吐率,包括:

根据以下计算公式,计算所述链路对应的吞吐率:

其中,w表征所述链路对应的吞吐率,sc表征所述链路中对应的数据流的数量,r表征所述链路的带宽利用率,α和β均为常数。

优选地,

所述从所述目标交换机中确定至少一个待调度数据流,包括:

从所述目标交换机中确定至少两个待排序数据流;

根据所述至少两个待排序数据流分别对应的转发规则,对所述至少两个待排序数据流进行排序;

根据排序结果,从所述至少两个待排序数据流中选择出至少一个待调度数据流。

第二方面,本发明实施例提供了一种流量调度装置,包括:带宽确定单元、链路确定单元、路径确定单元和调度单元;其中,

所述带宽确定单元,用于确定轮询周期,并根据所述轮询周期,向至少一个交换机发送流量查询指令;接收所述至少一个交换机根据所述流量查询指令发送的流量信息;并根据所述流量信息,确定每两个所述交换机之间对应的链路的带宽利用率;

所述链路确定单元,用于当存在至少一条链路对应的带宽利用率大于预设阈值时,从带宽利用率大于预设阈值的至少一条链路中确定目标链路;并从所述目标交换机中确定至少一个待调度数据流;

所述路径确定单元,用于根据所述带宽确定单元确定出的每两个所述交换机之间对应的链路的带宽利用率,确定至少一条目标路径;其中,所述目标路径中包括至少一个链路,且每一个链路的带宽利用率均不大于预设阈值;

所述调度单元,用于将所述链路确定单元确定出的至少一个待调度数据流调度至所述路径确定单元确定出的目标路径,利用所述目标路径上对应的交换机对调度后的所述至少一个待调度数据流进行转发。

优选地,

所述带宽确定单元,用于针对每两个交换机之间对应的链路,均执行:根据所述链路对应的两个交换机中,每一个交换机包括的每条所述数据流的流速,利用下述计算公式,计算所述链路的带宽利用率;

其中,hi,j表征交换机i和交换机j之间对应的链路的带宽利用率,maxi,j表征所述链路中的最大带宽,表征第k条所述数据流的流速,n表征所述数据流的数量。

优选地,

所述路径确定单元,用于针对每两个交换机之间对应的链路,均执行:根据所述链路中对应的数据流的数量以及所述带宽利用率,利用下述计算公式,计算所述链路对应的吞吐率;并根据确定出的各个链路分别对应的吞吐率,确定至少一个目标路径;

其中,w表征所述链路对应的吞吐率,sc表征所述链路中对应的数据流的数量,r表征所述链路的带宽利用率,α和β均为常数。

优选地,

所述链路确定单元,用于从所述目标交换机中确定至少两个待排序数据流;根据所述至少两个待排序数据流分别对应的转发规则,对所述至少两个待排序数据流进行排序;根据排序结果,从所述至少两个待排序数据流中选择出至少一个待调度数据流。

本发明实施例提供了一种流量调度方法及装置,通过确定出的轮询周期,向至少一个交换机发送流量查询指令,并接收交换机根据接收到的查询指令发送的流量信息,然后根据这些流量信息,确定每两个交换机之间的链路上的带宽利用率。当存在至少一条链路的带宽利用率大于预设阈值时,从带宽利用率大于预设阈值的至少一条链路中确定目标链路,并确定与目标链路对应的目标交换机,并从目标交换机中确定至少一个待调度数据流。然后将确定出的待调度数据流调度至带宽利用率不大于预设阈值的目标路径中,利用目标路径上对应的交换机对调度后的数据流进行转发。由此可定期将拥堵链路上的数据流调度至空闲链路中,从而提高了链路负载的均衡性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例提供的一种流量调度方法的流程图;

图2是本发明另一个实施例提供的一种流量调度方法的流程图;

图3是本发明一个实施例提供的一种流量调度装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种流量调度方法,该方法可以包括以下步骤:

步骤101:确定轮询周期,并根据所述轮询周期,向至少一个交换机发送流量查询指令;

步骤102:接收所述至少一个交换机根据所述流量查询指令发送的流量信息;

步骤103:根据所述流量信息,确定每两个所述交换机之间对应的链路的带宽利用率;

步骤104:当存在至少一条链路对应的带宽利用率大于预设阈值时,从带宽利用率大于预设阈值的至少一条链路中确定目标链路;

步骤105:确定与所述目标链路对应的目标交换机,并从所述目标交换机中确定至少一个待调度数据流;

步骤106:根据所述每两个所述交换机之间对应的链路的带宽利用率,确定至少一条目标路径;其中,所述目标路径中包括至少一个链路,且每一个链路的带宽利用率均不大于预设阈值;

步骤107:将所述至少一个待调度数据流调度至所述目标路径,利用所述目标路径上对应的交换机对调度后的所述至少一个待调度数据流进行转发。

上述实施例中,通过确定出的轮询周期,向至少一个交换机发送流量查询指令,并接收交换机根据接收到的查询指令发送的流量信息,然后根据这些流量信息,确定每两个交换机之间的链路上的带宽利用率。当存在至少一条链路的带宽利用率大于预设阈值时,从带宽利用率大于预设阈值的至少一条链路中确定目标链路,并确定与目标链路对应的目标交换机,并从目标交换机中确定至少一个待调度数据流。然后将确定出的待调度数据流调度至带宽利用率不大于预设阈值的目标路径中,利用目标路径上对应的交换机对调度后的数据流进行转发。由此可定期将拥堵链路上的数据流调度至空闲链路中,从而提高了链路负载的均衡性。

本发明一个实施例中,步骤103的具体实施方式,可以包括:

针对每两个交换机之间对应的链路,均执行:

根据所述链路对应的两个交换机中,每一个交换机包括的每条所述数据流的流速,确定所述链路的带宽利用率。

在这里,可通过链路两端对应的交换机的端口,统计经过此端口流入该交换机对应链路上的数据流的流速,然后根据此流速,利用下述计算公式(1),计算出该链路上的带宽利用率。在此过程中,仅需根据交换机的端口确定数据流的流速,方法简单易操作,从而便于准确确定各个链路的带宽利用率,进而提高流量调度的效率和准确性,由此进一步提高链路负载的均衡性。

其中,hi,j表征交换机i和交换机j之间对应的链路的带宽利用率,maxi,j表征所述链路中的最大带宽,表征第k条所述数据流的流速,n表征所述数据流的数量。

本发明一个实施例中,步骤107的具体实施方式,可以包括:

针对每两个交换机之间对应的链路,均执行:根据所述链路中对应的数据流的数量以及所述带宽利用率,确定所述链路对应的吞吐率;

根据确定出的各个链路分别对应的吞吐率,确定至少一个目标路径。

当确定出待调度数据流时,说明该数据流需要被迁移到新路径上去。而新路径上的吞吐率取决于这条路径上能够最拥挤链路的吞吐率,即当某个链路上充满了数据流,十分拥堵时,所有通过该链路的路径都不应当被选择。因此在这里,通过首先确定链路对应的吞吐率,再根据确定出的各个链路的吞吐率,确定目标路径。具体地,可利用下述计算公式(2),计算各个链路的吞吐率。由此可准确确定出各个路径的吞吐率,从而有利于准确确定出目标路径,由此进一步提高链路负载的均衡性。

其中,w表征所述链路对应的吞吐率,sc表征所述链路中对应的数据流的数量,r表征所述链路的带宽利用率,α和β均为常数。

本发明一个实施例中,步骤105的具体实施方式,可以包括:

从所述目标交换机中确定至少两个待排序数据流;

根据所述至少两个待排序数据流分别对应的转发规则,对所述至少两个待排序数据流进行排序;

根据排序结果,从所述至少两个待排序数据流中选择出至少一个待调度数据流。

举例来说,在目标交换机中存在数据流a和数据流b,根据两个数据流分别对应的转发规则,数据流a的优先级比数据流b的优先级高。由于数据调度需要一定的时间,例如,在硬件交换机上大约需要10ms,在软件交换机撒谎能够大约时100ms,因此对于转发优先级较高的数据流,说明其转发时效较高,因此不将其作为待调度数据流。在这里,可将数据流b作为待调度数据流。在此过程中,根据各个数据流的转发规则,对目标交换机中的各个数据流进行排序,根据排序结果再选择待调度数据流,从而有利于提高链路转发效率。

如图2所示,本发明实施例提供了一种流量调度方法,该方法可以包括以下步骤:

步骤201:确定轮询周期,并根据所述轮询周期,向至少一个交换机发送流量查询指令。

例如,设定的轮询周期为5s,则每隔5s向各个交换机发送流量查询指令,以使交换机报告自己的流量信息。

步骤202:接收所述至少一个交换机根据所述流量查询指令发送的流量信息。

每个交换机发送的流量信息中,包括其各自包括的至少一条数据流的流速。例如,交换机1中待转发的数据流有3条,交换机2中待转发的数据流有2条,则交换机1与交换机2根据接收到的流量查询指令,分别报告其各自对应的3条数据流和2条数据流对应的流速。

步骤203:根据每个交换机发送的所述流量信息中包括的每条数据流的流速,确定每两个交换机之间对应的链路的带宽利用率。

在这里,可通过链路两端对应的交换机的端口,统计经过此端口流入该交换机对应链路上的数据流的流速,然后根据此流速,利用计算公式计算出该链路上的带宽利用率。其中,该计算公式为其中,hi,j表征交换机i和交换机j之间对应的链路的带宽利用率,maxi,j表征所述链路中的最大带宽,表征第k条所述数据流的流速,n表征所述数据流的数量。

步骤204:当存在至少一条链路对应的带宽利用率大于预设阈值时,从带宽利用率大于预设阈值的至少一条链路中确定目标链路,并确定与所述目标链路对应的目标交换机。

当确定出目标链路后,则将此目标链路两端连接的交换机作为目标交换机。

步骤205:从所述目标交换机中确定至少两个待排序数据流,并根据所述至少两个待排序数据流分别对应的转发规则,对所述至少两个待排序数据流进行排序。

举例来说,在目标交换机中存在数据流a和数据流b,根据两个数据流分别对应的转发规则,数据流a的优先级比数据流b的优先级高,则可将数据流a和数据流b按照转发优先级由高到低进行排序。

步骤206:根据排序结果,从所述至少两个待排序数据流中选择出至少一个待调度数据流。

由于数据调度需要一定的时间,例如,在硬件交换机上大约需要10ms,在软件交换机撒谎能够大约时100ms,因此对于转发优先级较高的数据流,说明其转发时效较高,因此不将其作为待调度数据流。在这里,可选择数据流b作为待调度数据流。

步骤207:根据所述每两个所述交换机之间对应的链路的带宽利用率以及所述链路中对应的数据流的数量,确定各个链路分别对应的吞吐率。

具体地,可利用下述计算公式分别对各个链路的吞吐率进行计算,该计算公式可为:其中,w表征所述链路对应的吞吐率,sc表征所述链路中对应的数据流的数量,r表征所述链路的带宽利用率,α和β均为常数。

步骤208:根据确定出的各个链路分别对应的吞吐率,确定至少一条目标路径;其中,所述目标路径中包括至少一个链路,且每一个链路的带宽利用率均不大于预设阈值。

当确定出待调度数据流时,说明该数据流需要被迁移到新路径上去。而新路径上的吞吐率取决于这条路径上能够最拥挤链路的吞吐率,即当某个链路上充满了数据流,十分拥堵时,所有通过该链路的路径都不应当被选择。因此在这里,通过首先确定链路对应的吞吐率,再根据确定出的各个链路的吞吐率,确定目标路径。

步骤209:将所述至少一个待调度数据流调度至所述目标路径,利用所述目标路径上对应的交换机对调度后的所述至少一个待调度数据流进行转发。

上述实施例中,通过确定出的轮询周期,向至少一个交换机发送流量查询指令,并接收交换机根据接收到的查询指令发送的流量信息,然后根据这些流量信息,确定每两个交换机之间的链路上的带宽利用率。当存在至少一条链路的带宽利用率大于预设阈值时,从带宽利用率大于预设阈值的至少一条链路中确定目标链路,并确定与目标链路对应的目标交换机,并从目标交换机中确定至少一个待调度数据流。然后将确定出的待调度数据流调度至带宽利用率不大于预设阈值的目标路径中,利用目标路径上对应的交换机对调度后的数据流进行转发。由此可定期将拥堵链路上的数据流调度至空闲链路中,从而提高了链路负载的均衡性。

如图3所示,本发明实施例提供了一种流量调度装置,包括:带宽确定单元301、链路确定单元302、路径确定单元303和调度单元304;其中,

所述带宽确定单元301,用于确定轮询周期,并根据所述轮询周期,向至少一个交换机发送流量查询指令;接收所述至少一个交换机根据所述查询指令发送的流量信息;并根据所述流量信息,确定每两个所述交换机之间对应的链路的带宽利用率;

所述链路确定单元302,用于当存在至少一条链路对应的带宽利用率大于预设阈值时,从带宽利用率大于预设阈值的至少一条链路中确定目标链路;并从所述目标交换机中确定至少一个待调度数据流;

所述路径确定单元303,用于根据所述带宽确定单元301确定出的每两个所述交换机之间对应的链路的带宽利用率,确定至少一条目标路径;其中,所述目标路径中包括至少一个链路,且每一个链路的带宽利用率均不大于预设阈值;

所述调度单元304,用于将所述链路确定单元302确定出的至少一个待调度数据流调度至所述路径确定单元303确定出的目标路径,利用所述目标路径上对应的交换机对调度后的所述至少一个待调度数据流进行转发。

上述实施例中,通过确定出的轮询周期,向至少一个交换机发送流量查询指令,并接收交换机根据接收到的查询指令发送的流量信息,然后根据这些流量信息,确定每两个交换机之间的链路上的带宽利用率。当存在至少一条链路的带宽利用率大于预设阈值时,从带宽利用率大于预设阈值的至少一条链路中确定目标链路,并确定与目标链路对应的目标交换机,并从目标交换机中确定至少一个待调度数据流。然后将确定出的待调度数据流调度至带宽利用率不大于预设阈值的目标路径中,利用目标路径上对应的交换机对调度后的数据流进行转发。由此可定期将拥堵链路上的数据流调度至空闲链路中,从而提高了链路负载的均衡性。

本发明一个实施例中,所述带宽确定单元301,用于针对每两个交换机之间对应的链路,均执行:根据所述链路对应的两个交换机中,每一个交换机包括的每条所述数据流的流速,利用下述计算公式,计算所述链路的带宽利用率;

其中,hi,j表征交换机i和交换机j之间对应的链路的带宽利用率,maxi,j表征所述链路中的最大带宽,表征第k条所述数据流的流速,n表征所述数据流的数量。

在这里,可通过链路两端对应的交换机的端口,统计经过此端口流入该交换机对应链路上的数据流的流速,然后根据此流速,计算出该链路上的带宽利用率。在此过程中,仅需根据交换机的端口确定数据流的流速,方法简单易操作,从而便于准确确定各个链路的带宽利用率,进而提高流量调度的效率和准确性,由此进一步提高链路负载的均衡性。

本发明一个实施例中,所述路径确定单元303,用于针对每两个交换机之间对应的链路,均执行:根据所述链路中对应的数据流的数量以及所述带宽利用率,利用下述计算公式,计算所述链路对应的吞吐率;并根据确定出的各个链路分别对应的吞吐率,确定至少一个目标路径;

其中,w表征所述链路对应的吞吐率,sc表征所述链路中对应的数据流的数量,r表征所述链路的带宽利用率,α和β均为常数。

当确定出待调度数据流时,说明该数据流需要被迁移到新路径上去。而新路径上的吞吐率取决于这条路径上能够最拥挤链路的吞吐率,即当某个链路上充满了数据流,十分拥堵时,所有通过该链路的路径都不应当被选择。因此在这里,通过首先确定链路对应的吞吐率,再根据确定出的各个链路的吞吐率,确定目标路径。具体地,可利用上述计算公式,计算各个链路的吞吐率。由此可准确确定出各个路径的吞吐率,从而有利于准确确定出目标路径,由此进一步提高链路负载的均衡性。

本发明一个实施例中,所述链路确定单元302,用于从所述目标交换机中确定至少两个待排序数据流;根据所述至少两个待排序数据流分别对应的转发规则,对所述至少两个待排序数据流进行排序;根据排序结果,从所述至少两个待排序数据流中选择出至少一个待调度数据流。

举例来说,在目标交换机中存在数据流a和数据流b,根据两个数据流分别对应的转发规则,数据流a的优先级比数据流b的优先级高。由于数据调度需要一定的时间,例如,在硬件交换机上大约需要10ms,在软件交换机撒谎能够大约时100ms,因此对于转发优先级较高的数据流,说明其转发时效较高,因此不将其作为待调度数据流。在这里,可将数据流b作为待调度数据流。在此过程中,根据各个数据流的转发规则,对目标交换机中的各个数据流进行排序,根据排序结果再选择待调度数据流,从而有利于提高链路转发效率。

上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

本发明还提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行本发明上述任一实施例提供的方法。

另外,本发明还提供了一种存储控制器,包括:处理器、存储器和总线;所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行本发明上述任一实施例提供的方法。

综上所述,本发明的各个实施例至少具有如下有益效果:

1、在本发明实施例中,通过确定出的轮询周期,向至少一个交换机发送流量查询指令,并接收交换机根据接收到的查询指令发送的流量信息,然后根据这些流量信息,确定每两个交换机之间的链路上的带宽利用率。当存在至少一条链路的带宽利用率大于预设阈值时,从带宽利用率大于预设阈值的至少一条链路中确定目标链路,并确定与目标链路对应的目标交换机,并从目标交换机中确定至少一个待调度数据流。然后将确定出的待调度数据流调度至带宽利用率不大于预设阈值的目标路径中,利用目标路径上对应的交换机对调度后的数据流进行转发。由此可定期将拥堵链路上的数据流调度至空闲链路中,从而提高了链路负载的均衡性。

2、在本发明实施例中,可通过链路两端对应的交换机的端口,统计经过此端口流入该交换机对应链路上的数据流的流速,然后根据此流速,计算出该链路上的带宽利用率。在此过程中,仅需根据交换机的端口确定数据流的流速,方法简单易操作,从而便于准确确定各个链路的带宽利用率,进而提高流量调度的效率和准确性,由此进一步提高链路负载的均衡性。

3、在本发明实施例中,确定链路对应的吞吐率,再根据确定出的各个链路的吞吐率,确定目标路径,从而有利于准确确定出目标路径,由此进一步提高链路负载的均衡性。

4、在本发明实施例中,根据各个数据流的转发规则,对目标交换机中的各个数据流进行排序,根据排序结果再选择待调度数据流,从而有利于提高链路转发效率。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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