容器的I/O传输任务的调度方法和装置与流程

文档序号:16134153发布日期:2018-12-01 00:42阅读:361来源:国知局

本发明涉及通信技术领域,特别涉及一种容器的i/o传输任务的调度方法和装置。

背景技术

同一宿主机上容器集群对底层的物理资源(例如:cpu、磁盘、内存等)是完全共享的,各容器之间尤其是输入输出(input/output,简称i/o)密集型容器对磁盘i/o资源的竞争,很可能会导致整体系统的性能下降和延迟增大。

现有的容器i/o任务控制主要是,在各个容器创建时预设独立的磁盘i/o上限,从而防止某些容器因各种原因占用大量磁盘i/o带宽,因此能够一定程度上避免个别容器占用过多磁盘i/o而影响其他容器传输任务的情况。

但是,现有技术中,仅能对容器的磁盘i/o进行一个数量上的限制,对有大i/o需求的容器不能动态增加,对于i/o需求不多的容器也不会释放所分配的i/o资源,从而无法实现动态实时调度i/o传输任务。



技术实现要素:

本发明提供一种容器的i/o传输任务的调度方法和装置,用于实现动态实时调度i/o传输任务。

为实现上述目的,本发明提供了一种容器的i/o传输任务的调度方法,包括:

根据预先设置的容器的多个评价参数计算出容器列表中多个当前容器编号对应的容器的排序分数,每个所述当前容器编号用于标识对应的一个所述容器;

根据所述容器的排序分数对多个容器进行优先级排序;

对多个容器按优先级进行i/o传输任务的调度。

可选地,所述容器列表包括多个当前容器编号,每个当前容器编号对应于多个评价参数,多个评价参数包括容器已等待时间、i/o传输数据量、任务预计完成所需时长、同时间同类容器并发数量和预设所属容器的重要程度;

所述根据预先设置的容器的多个评价参数计算出容器列表中多个当前容器编号对应的容器的排序分数包括:

根据多个当前容器编号和多个评价参数,生成归一化三元矩阵;

根据所述归一化三元矩阵,计算出每个所述评价参数对应的权重系数;

根据所述归一化三元矩阵和每个所述评价参数对应的权重系数,计算出每个容器的排序分数。

可选地,所述根据多个当前容器编号和多个评价参数,生成归一化三元矩阵包括:

根据多个当前容器编号和多个评价参数,生成初始三元矩阵,所述初始三元矩阵其中,a为初始三元矩阵,cn为当前容器编号,n为容器数量,t为容器已等待时间,d为i/o传输数据量,c为任务预计完成所需时长,n为同时间同类容器并发数量,i为预设所属容器的重要程度,xij为初始三元矩阵的初始数值,i为列数,j为行数;

通过公式对所述初始三元矩阵中i/o传输数据量、任务预计完成所需时长和同时间同类容器并发数量所在行的初始数值进行计算,得出i/o传输数据量、任务预计完成所需时长和同时间同类容器并发数量所在行的归一化数值;

通过公式对所述初始三元矩阵中容器已等待时间和预设所属容器的重要程度所在行的初始数值进行计算,得出容器已等待时间和预设所属容器的重要程度所在行的归一化数值;

根据i/o传输数据量、任务预计完成所需时长和同时间同类容器并发数量所在行的归一化数值以及容器已等待时间和预设所属容器的重要程度所在行的归一化数值,生成归一化三元矩阵,所述归一化三元矩阵其中,b为归一化三元矩阵,yij为归一化三元矩阵的归一化数值。

可选地,所述根据所述归一化三元矩阵,计算出每个所述评价参数对应的权重系数包括:

根据所述归一化三元矩阵,通过公式计算出每个评价参数对应的比重,其中,pj为比重,j=1时p1为容器已等待时间对应的比重,j=2时p2为i/o传输数据量对应的比重,j=3时p3为任务预计完成所需时长对应的比重,j=4时p4为同时间同类容器并发数量对应的比重,j=5时p5为预设所属容器的重要程度对应的比重;

通过公式对每个评价参数对应的比值进行计算,得出每个评价参数对应的差异性系数,其中,gj为差异性系数,k=1/ln(n),j=1时g1为容器已等待时间对应的差异性系数,j=2时g2为i/o传输数据量对应的差异性系数,j=3时g3为任务预计完成所需时长对应的差异性系数,j=4时g4为同时间同类容器并发数量对应的差异性系数,j=5时g5为预设所属容器的重要程度对应的差异性系数;

通过公式对每个评价参数对应的差异性系数进行归一化处理,得出每个评价参数对应的权重系数,其中,wj为权重系数,m为评价参数的数量,j=1时w1为容器已等待时间对应的权重系数,j=2时w2为i/o传输数据量对应的权重系数,j=3时w3为任务预计完成所需时长对应的权重系数,j=4时w4为同时间同类容器并发数量对应的权重系数,j=5时w5为预设所属容器的重要程度对应的权重系数。

可选地,所述根据所述归一化三元矩阵和每个所述评价参数对应的权重系数,计算出每个容器的排序分数包括:

通过公式对每个评价参数对应的权重系数和归一化三元矩阵中每个评价参数所在行的归一化数值进行计算,得出每个容器的排序分数。

可选地,所述容器列表包括多个当前容器编号,每个当前容器编号对应于多个评价参数和一个下一个容器编号;

所述根据预先设置的容器的多个评价参数计算出容器列表中多个当前容器编号对应的容器的排序分数之前包括:

判断所述容器列表中每个当前容器编号对应的下一个容器编号是否为空;

若判断出所述容器列表中任一当前容器编号对应的下一个容器编号为空,执行所述根据预先设置的容器的多个评价参数计算出容器列表中多个当前容器编号对应的容器的排序分数的步骤。

可选地,所述容器列表包括多个容器,每个容器包括当前容器编号、多个评价参数和下一个容器编号;

所述根据所述容器的排序分数对多个容器进行优先级排序之后还包括:

根据容器的优先级顺序对每个当前容器编号对应的下一个容器编号进行更新;

所述对多个容器按优先级进行i/o传输任务的调度包括:

根据每个当前容器编号和与每个当前容器编号对应的下一个容器编号对多个容器进行i/o传输任务的调度。

为实现上述目的,本发明提供了一种容器的i/o传输任务的调度装置,包括:

计算模块,用于根据预先设置的容器的多个评价参数计算出容器列表中多个当前容器编号对应的容器的排序分数,每个所述当前容器编号用于标识对应的一个所述容器;

排序模块,用于根据所述容器的排序分数对多个容器进行优先级排序;

调度模块,用于对多个容器按优先级进行i/o传输任务的调度。

可选地,所述容器列表包括多个当前容器编号,每个当前容器编号对应于多个评价参数和一个下一个容器编号;

所述装置还包括:

判断模块,用于判断所述容器列表中每个当前容器编号对应的下一个容器编号是否为空;若判断出所述容器列表中任一当前容器编号对应的下一个容器编号为空,触发所述计算模块执行所述根据预先设置的容器的多个评价参数计算出容器列表中多个当前容器编号对应的容器的排序分数的步骤。

可选地,所述容器列表包括多个容器,每个容器包括当前容器编号、多个评价参数和下一个容器编号;

所述装置还包括:更新模块;

所述更新模块用于根据容器的优先级顺序对每个当前容器编号对应的下一个容器编号进行更新;

所述调度模块具体用于根据每个当前容器编号和与每个当前容器编号对应的下一个容器编号对多个容器进行i/o传输任务的调度。

本发明具有以下有益效果:

本发明提供的容器的i/o传输任务的调度方法和装置的技术方案中,根据预先设置的容器的多个评价参数计算出容器列表中多个当前容器编号对应的容器的排序分数,每个当前容器编号用于标识对应的一个容器,根据容器的排序分数对多个容器进行优先级排序,对多个容器按优先级进行i/o传输任务的调度,本发明通过容器的排序分数对容器进行优先级排序,从而实现了动态实时调度i/o传输任务。

附图说明

图1为本发明实施例一提供的一种容器i/o传输任务的调度方法的流程图;

图2为本发明实施例二提供的一种容器i/o传输任务的调度方法的流程图;

图3为本发明实施例三提供的一种容器的i/o传输任务的调度装置的结构示意图。

具体实施方式

为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图对本发明提供的容器的i/o传输任务的调度方法和装置进行详细描述。

图1为本发明实施例一提供的一种容器i/o传输任务的调度方法的流程图,如图1所示,该方法包括:

步骤101、根据预先设置的容器的多个评价参数计算出容器列表中多个当前容器编号对应的容器的排序分数,每个当前容器编号用于标识对应的一个容器。

步骤102、根据容器的排序分数对多个容器进行优先级排序。

步骤103、对多个容器按优先级进行i/o传输任务的调度。

本实施例提供的容器的i/o传输任务的调度方法的技术方案中,根据预先设置的容器的多个评价参数计算出容器列表中多个当前容器编号对应的容器的排序分数,每个当前容器编号用于标识对应的一个容器,根据容器的排序分数对多个容器进行优先级排序,对多个容器按优先级进行i/o传输任务的调度,本实施例通过容器的排序分数对容器进行优先级排序,从而实现了动态实时调度i/o传输任务。

图2为本发明实施例二提供的一种容器i/o传输任务的调度方法的流程图,如图2所示,该方法包括:

步骤201、获取容器列表,容器列表包括多个当前容器编号,并从数据库中获取与每个当前容器编号对应的下一个容器编号和多个评价参数,多个评价参数包括容器已等待时间、i/o传输数据量、任务预计完成所需时长、同时间同类容器并发数量和预设所属容器的重要程度。

本实施例中,定期获取已进入等待状态的当前容器编号,根据获取的已进入等待状态的当前容器编号形成容器列表,以实现获取容器列表。

本实施例中,数据库预先存储有多条容器数据,每条容器数据可包括一个当前容器编号、一个下一个容器编号和多个评价参数。其中,每条容器数据中下一个容器编号和多个评价参数与当前容器编号对应,换言之,每个当前容器编号对应于多个评价参数和一个下一个容器编号。本实施例中,可预先设置多个评价参数。数据库中存储的容器数据可以表示为:

其中,“container”表示容器数据;“containernumber”为当前容器编号;“waitingtime”为容器已等待时间,该容器已等待时间可用t表示;“datasize”为i/o传输数据量,该i/o传输数据量可用d表示,“costtime”为任务预计完成所需时长,该任务预计完成所需时长可用c表示,“concurrentnumber”为同时间同类容器并发数量,该同时间同类容器并发数量可用n表示,“importanceranking”为预设所属容器的重要程度,该预设所属容器的重要程度可用i表示。“nextcontainer”为下一个容器编号,下一个容器编号的初始值可以为空。其中,容器编号可以用cn表示,即:当前容器编号和下一个容器编号均可以用cn表示。

步骤202、判断容器列表中每个当前容器编号对应的的下一个容器编号是否为空,若是,则执行步骤203;若否,则执行步骤208。

本步骤中,若判断出所述容器列表中任一当前容器编号对应的下一个容器编号为空,则执行步骤203;若判断出容器列表中任一当前容器编号对应的下一个容器编号均不为空,则执行步骤208。

步骤203、根据多个当前容器编号和多个评价参数,生成归一化三元矩阵。

本实施例中,步骤203具体包括:

步骤2031、根据多个当前容器编号和多个评价参数,生成初始三元矩阵,初始三元矩阵其中,a为初始三元矩阵,cn为当前容器编号,n为容器数量,t为容器已等待时间,d为i/o传输数据量,c为任务预计完成所需时长,n为同时间同类容器并发数量,i为预设所属容器的重要程度,xij为初始三元矩阵的初始数值,i为列数,j为行数。

本实施例中,初始三元矩阵为当前容器编号、评价参数和初始数值构成的三元矩阵。

步骤2032、通过公式对初始三元矩阵中i/o传输数据量、任务预计完成所需时长和同时间同类容器并发数量所在行的初始数值进行计算,得出i/o传输数据量、任务预计完成所需时长和同时间同类容器并发数量所在行的归一化数值。

由于i/o传输数据量、任务预计完成所需时长和同时间同类容器并发数量均为逆向评价参数(即数值越小优先级越高),因此本步骤中,可通过上述公式,以模糊算法对初始三元矩阵中i/o传输数据量、任务预计完成所需时长和同时间同类容器并发数量所在行的初始数值进行计算进行数据归一化运算,以得出归一化数值。

步骤2033、通过公式对初始三元矩阵中容器已等待时间和预设所属容器的重要程度所在行的初始数值进行计算,得出容器已等待时间和预设所属容器的重要程度所在行的归一化数值。

由于容器已等待时间和预设所属容器的重要程度均为正向评价参数(即数值越大优先级越高),因此本步骤中,可通过上述公式,以模糊算法对初始三元矩阵中容器已等待时间和预设所属容器的重要程度所在行的初始数值进行数据归一化运算,以得出归一化数值。

步骤2034、根据i/o传输数据量、任务预计完成所需时长和同时间同类容器并发数量所在行的归一化数值以及容器已等待时间和预设所属容器的重要程度所在行的归一化数值,生成归一化三元矩阵,归一化三元矩阵其中,b为归一化三元矩阵,yij为归一化三元矩阵的归一化数值。

步骤204、根据归一化三元矩阵,计算出每个评价参数对应的权重系数。

本实施例中,步骤204具体包括:

步骤2041、根据归一化三元矩阵,通过公式计算出每个评价参数对应的比重,其中,pj为比重,j=1时p1为容器已等待时间对应的比重,j=2时p2为i/o传输数据量对应的比重,j=3时p3为任务预计完成所需时长对应的比重,j=4时p4为同时间同类容器并发数量对应的比重,j=5时p5为预设所属容器的重要程度对应的比重。

本步骤中,可通过上述公式,以熵值法计算出每个评价参数对应的比重。

步骤2042、通过公式对每个评价参数对应的比值进行计算,得出每个评价参数对应的差异性系数,其中,gj为差异性系数,k=1/ln(n),j=1时g1为容器已等待时间对应的差异性系数,j=2时g2为i/o传输数据量对应的差异性系数,j=3时g3为任务预计完成所需时长对应的差异性系数,j=4时g4为同时间同类容器并发数量对应的差异性系数,j=5时g5为预设所属容器的重要程度对应的差异性系数。

步骤2043、通过公式对每个评价参数对应的差异性系数进行归一化处理,得出每个评价参数对应的权重系数,其中,wj为权重系数,m为评价参数的数量,j=1时w1为容器已等待时间对应的权重系数,j=2时w2为i/o传输数据量对应的权重系数,j=3时w3为任务预计完成所需时长对应的权重系数,j=4时w4为同时间同类容器并发数量对应的权重系数,j=5时w5为预设所属容器的重要程度对应的权重系数。

本实施例中,评价参数的数量为5个,因此m可以为1至5。

步骤205、根据归一化三元矩阵和每个评价参数对应的权重系数,计算出每个容器的排序分数。

本实施例中,步骤205具体包括:

步骤2051、通过公式对每个评价参数对应的权重系数和归一化三元矩阵中每个评价参数所在行的归一化数值进行计算,得出多个容器的排序分数。

本实施例中,每个容器对应于一个排序分数。例如:当前容器编号c1对应于k1,因此k1为当前容器编号c1对应的容器的排序分数;当前容器编号c2对应于k2,因此k2为当前容器编号c2对应的容器的排序分数;以此类推,当前容器编号cn对应于kn,因此kn为当前容器编号cn对应的容器的排序分数。

步骤206、根据容器的排序分数对多个容器进行优先级排序。

本实施例中,可按容器的排序分数从高到低对多个容器进行优先级排序。排序分数越高,容器的优先级越高,则排序时顺序越靠前。

排序后的容器的顺序为容器列表中的当前容器编号的顺序,例如:c1、c5、cn、c7、……、c3。

步骤207、根据容器的优先级顺序对最后一个当前容器编号之外的其余每个当前容器编号对应的下一个容器编号进行更新。

例如:当前容器编号c1对应于下一个容器编号c5;当前容器编号c5对应于下一个容器编号cn;当前容器编号cn对应于下一个容器编号c7;最后一个当前容器编号c3对应的下一个容器编号不更新。

步骤208、根据每个当前容器编号和与每个当前容器编号对应的下一个容器编号对多个容器进行i/o传输任务的调度。

本实施例提供的容器的i/o传输任务的调度方法的技术方案中,根据预先设置的容器的多个评价参数计算出容器列表中多个当前容器编号对应的容器的排序分数,每个当前容器编号用于标识对应的一个容器,根据容器的排序分数对多个容器进行优先级排序,对多个容器按优先级进行i/o传输任务的调度,本实施例通过容器的排序分数对容器进行优先级排序,从而实现了动态实时调度i/o传输任务。本实施例通过设置下一个容器编号,从而避免了多次重复计算。

图3为本发明实施例三提供的一种容器的i/o传输任务的调度装置的结构示意图,如图3所示,该装置包括:计算模块11、排序模块12和调度模块13。

计算模块11用于根据预先设置的容器的多个评价参数计算出容器列表中多个当前容器编号对应的容器的排序分数,每个所述当前容器编号用于标识对应的一个所述容器。排序模块12用于根据所述容器的排序分数对多个容器进行优先级排序。调度模块13用于对多个容器按优先级进行i/o传输任务的调度。

进一步地,容器列表包括多个当前容器编号,每个当前容器编号对应于多个评价参数和一个下一个容器编号。

该装置还包括:判断模块14。

判断模块14用于判断所述容器列表中每个当前容器编号对应的下一个容器编号是否为空;若判断出所述容器列表中任一当前容器编号对应的下一个容器编号为空,触发计算模块11执行所述根据预先设置的容器的多个评价参数计算出容器列表中多个当前容器编号对应的容器的排序分数的步骤。

进一步地,容器列表包括多个容器,每个容器包括当前容器编号、多个评价参数和下一个容器编号。

该装置还包括:更新模块15。

更新模块15用于根据容器的优先级顺序对每个当前容器编号对应的下一个容器编号进行更新。调度模块13具体用于根据每个当前容器编号和与每个当前容器编号对应的下一个容器编号对多个容器进行i/o传输任务的调度。

本实施例中,计算模块11可用于执行步骤203至步骤205,此处不再重复描述。

本实施例提供的容器的i/o传输任务的调度装置的技术方案中,根据预先设置的容器的多个评价参数计算出容器列表中多个当前容器编号对应的容器的排序分数,每个当前容器编号用于标识对应的一个容器,根据容器的排序分数对多个容器进行优先级排序,对多个容器按优先级进行i/o传输任务的调度,本实施例通过容器的排序分数对容器进行优先级排序,从而实现了动态实时调度i/o传输任务。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

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