转码任务调度方法和装置与流程

文档序号:12279757阅读:382来源:国知局
转码任务调度方法和装置与流程

本发明涉及计算机应用领域,特别是涉及一种转码任务调度方法和装置。



背景技术:

docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux(操作系统)机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

在传统的视频转码过程中,控制器将任务队列里的任务分配到不同的物理机或者docker进行处理。然而随机分配到不同的物理机或docker处理,会导致部分资源拥挤,部分资源闲置,造成了处理器和内存资源的浪费。



技术实现要素:

基于此,有必要针对传统的视频转码因随机分配资源造成处理器和内存资源的浪费的问题,提供一种转码任务调度方法和装置,能提高处理器和内存资源的利用率。

一种转码任务调度方法,包括:

获取各个容器的转码任务承载量;

获取各个容器当前工作的转码任务量;

获取待分配的转码任务;

将所述待分配的转码任务加入所述各个容器,根据所述各个容器的转码任务承载量和当前工作的转码任务量,获取所述各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时;

根据所述各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时筛选出最佳容器;

将所述待分配的转码任务分配给所述最佳容器。

一种转码任务调度装置,包括:

承载量获取模块,用于获取各个容器的转码任务承载量;

任务量获取模块,用于获取各个容器当前工作的转码任务量;

待分配任务获取模块,用于获取待分配的转码任务;

转码参数获取模块,用于将所述待分配的转码任务加入所述各个容器,根据所述各个容器的转码任务承载量和当前工作的转码任务量,获取所述各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时;

筛选模块,用于根据所述各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时筛选出最佳容器;

调度模块,用于将所述待分配的转码任务分配给所述最佳容器。

上述转码任务调度方法和装置,通过获取到各个容器的转码任务承载量和当前工作的转码任务量,并将待分配的转码任务加入到各个容器,获取各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时,根据转码吞吐量和转码耗时筛选出最佳容器,将待分配的转码任务分配给最佳容器,从而达到了系统资源的最大利用率,提高了处理器和内存资源的利用率,不至于造成一些容器承载量过大,一些容器没有承载,造成资源浪费。

附图说明

图1为一个实施例中转码任务调度方法的应用环境示意图;

图2为一个实施例中任务调度服务器的内部结构示意图;

图3为一个实施例中转码任务调度方法的流程图;

图4为一个实施例中容器的任务量对应的转码吞吐量的关系示意图;

图5为一个实施例中任务分配的示意图;

图6为另一个实施例中转码任务调度方法的流程图;

图7为一个实施例中转码任务调度装置的结构框图;

图8为另一个实施例中转码任务调度装置的结构框图;

图9为另一个实施例中转码任务调度装置的结构框图;

图10为另一个实施例中转码任务调度装置的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为一个实施例中转码任务调度方法的应用环境示意图。如图1所示,该应用环境包括任务调度服务器110和容器所在的转码服务器120。任务调度服务器110从任务队列中获取待分配的转码任务,获取各个转码服务器120上的容器的转码任务承载量及当前工作的转码任务量,将待分配的转码任务加入到各个容器,计算各个容器的转码吞吐量和转码耗时,根据转码吞吐量和转码耗时筛选最佳容器,将待分配任务调度给该最佳容器。

图2为一个实施例中任务调度服务器(或云端等)的内部结构示意图。如图2所示,该任务调度服务器包括通过系统总线连接的处理器、非易失性存储介质、内存储器和网络接口。其中,该任务调度服务器的非易失性存储介质存储有操作系统、数据库和转码任务调度装置,数据库中存储有任务列表和不同参数条件下的容器的转码任务量与吞吐量的映射关系等,该转码任务调度装置用于实现适用于任务调度服务器的一种转码任务调度方法。该任务调度服务器的处理器用于提供计算和控制能力,支撑整个任务调度服务器的运行。该任务调度服务器的内存储器为非易失性存储介质中的转码任务调度装置的运行提供环境,该内存储器中可储存有计算机可读指令,该计算机可读指令被所述处理器执行时,可使得所述处理器执行一种转码任务调度方法。该任务调度服务器的网络接口用于据以与外部的终端通过网络连接通信,比如接收终端发送的任务分配请求以及向终端返回分配的转码服务器地址等。任务调度服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

图3为一个实施例中转码任务调度方法的流程图。如图3所示,一种转码任务调度方法,运行于图1中的任务调度服务器上,包括步骤302至步骤312,其中:

步骤302,获取各个容器的转码任务承载量。

本实施例中,容器类似于虚拟机,不同的是由母机支配CPU(中央处理器)和内存资源给容器。容器的转码任务承载量是指容器的最优工作任务量。在不同参数条件下,容器的最优工作任务量不同。此处获取的是各个容器在当前的参数条件下的转码任务承载量。

参数可包括清晰度、视频编码方式、分辨率、频道、平台等中一种或多种。清晰度是指影像上各细部影纹及其边界的清晰程度。视频编码方式是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式,例如可为H264、HEVC(High Efficiency Video Coding)等。分辨率是指单位英寸中所包含的像素点,如1080p、720p、480p等。频道可为动漫、综艺等频道。平台是指显示端类型,如电视机或计算机等。在不同的参数条件下转码效率不同。平台主要是使用端,譬如PC(Personal Computer,个人计算机)类适用PC端,同样也可以用在移动端的app(应用程序),TV(Television,电视机)类适用TV端。

在一个实施例中,该获取各个容器的转码任务承载量,包括:获取各个容器当前的参数条件;根据该当前的参数条件从预先建立的各个容器在不同参数条件下的转码任务量与转码吞吐量的映射关系得到该各个容器在当前的参数条件下的转码任务承载量。

本实施例中,首先预先建立各个容器在不同参数条件下的转码任务量与转码吞吐量之间的映射关系。不同参数条件下的转码任务量与转码吞吐量之间的映射关系可分布在不同的任务调度服务器上,便于提高获取转码任务承载量的效率。

获取到容器当前的参数条件后,从预先建立的各个容器在不同参数条件下的转码任务量与转码吞吐量的映射关系得到该各个容器在当前的参数条件下的转码任务承载量。转码吞吐量是指单位时间内的视频时长。转码任务量是指容器工作能处理的任务数。

如图4所示,容器在不同任务数对应的转码吞吐量,横坐标为任务数,单位为个,纵坐标为视频时长,单位为秒。

步骤304,获取各个容器当前工作的转码任务量。

本实施例中,各个容器当前工作的转码任务量是指各个容器当前正在工作的转码任务数。

步骤306,获取待分配的转码任务。

本实施例中,任务调度服务器获取到待分配的转码任务后,待分配的转码任务存储在转码任务分配队列中,再从转码任务分配队列中按照顺序依次取出待分配的转码任务进行分配。

需要说明的是:调度模型为推拉模型,转码服务器拉任务,任务调度服务器推送任务。转码服务器(即容器)请求任务,同时计算该机器不同清晰度的转码能力,任务调度服务器将任务队列的任务,挑选合适的任务推给请求任务的转码服务器。

步骤308,将该待分配的转码任务加入该各个容器,根据该各个容器的转码任务承载量和当前工作的转码任务量,获取该各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时。

本实施例中,将待分配的转码任务加入各个容器是指将待分配的转码任务加入分别加入到各个容器,再分别计算各个容器的转码吞吐量和转码耗时。

将待分配的转码任务加入容器后,将待分配的转码任务和容器已有的转码任务在容器上进行训练,从容器的转码任务量与转码吞吐量之间的映射关系得到该容器中加入待分配的转码任务后的转码吞吐量。

通过实时监控转码数据,反馈训练转码模型。

可通过获取待分配的转码任务的参数,根据待分配的转码任务的参数与预先训练得到的各个容器在不同参数条件下的转码任务与转码耗时之间的映射关系,得到各个容器中加入待分配的转码任务后的转码耗时。

步骤310,根据该各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时筛选出最佳容器。

本实施例中,根据各个容器在加入待分配的转码任务后的转码吞吐量筛选出转码吞吐量最大的容器,可将该转码吞吐量最大的容器作为最佳容器。或者,筛选转码吞吐量最大且转码耗时最短的容器作为最佳容器。或者将各个容器在加入待分配的转码任务后的转码吞吐量按照进行排序,按照转码吞吐量从大到小筛选且转码耗时不大于时间阈值的容器,作为最佳容器。

步骤312,将该待分配的转码任务分配给该最佳容器。

本实施例中,将待分配的转码任务分配给最佳容器进行转码。

图5为一个实施例中任务分配的示意图。如图5所示,任务队列中的任务被任务分配器逐一取出,然后根据各个容器的承载情况,将转码任务分配给对应的容器。

步骤302、步骤304和步骤306没有先后顺序,此处仅为描述方便采用此顺序描述,但不作为对其顺序的限定。

上述转码任务调度方法,通过获取到各个容器的转码任务承载量和当前工作的转码任务量,并将待分配的转码任务加入到各个容器,获取各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时,根据转码吞吐量和转码耗时筛选出最佳容器,将待分配的转码任务分配给最佳容器,从而达到了系统资源的最大利用率,提高了处理器和内存资源的利用率,不至于造成一些容器承载量过大,一些容器没有承载,造成资源浪费。

图6为另一个实施例中转码任务调度方法的流程图。如图6所示,在一个实施例中,上述转码任务调度方法包括步骤602至步骤616,其中:

步骤602,对各个容器在不同参数条件下进行转码任务量的测试,得到各个容器工作初始化在不同参数下的转码任务量与转码吞吐量的映射关系。

通过对各个容器在不同参数条件下进行转码任务量的多次测试,得到各个容器工作初始化在不同参数下的转码任务量与转码吞吐量的映射关系。如分辨率为640P时,第一容器在3个任务量时的吞吐量最大,第二容器在4个任务量时的吞吐量最大,第三容器在5个任务量时的吞吐量最大。

步骤604,通过线上数据实时训练该各个容器的转码任务量与转码吞吐量的映射关系,得到修正后的该各个容器在不同参数条件下的转码任务量与转码吞吐量的映射关系。

本实施例中,通过线上数据实时训练转码模型,得到各个容器的转码任务量与转码吞吐量的映射关系,如H264/H265升级、参数调整等均会造成转码模型的变化,利用线上数据实时训练转码模型。

步骤606,获取各个容器的转码任务承载量。

本实施例中,容器类似于虚拟机,不同的是由母机支配CPU和内存资源给容器。容器的转码任务承载量是指容器的最优工作任务量。在不同参数条件下,容器的最优工作任务量不同。此处获取的是各个容器在当前的参数条件下的转码任务承载量。

参数可包括清晰度、视频编码方式、分辨率、频道、平台等中一种或多种。

在一个实施例中,该获取各个容器的转码任务承载量,包括:获取各个容器当前的参数条件;根据该当前的参数条件从预先建立的各个容器在不同参数条件下的转码任务量与转码吞吐量的映射关系得到该各个容器在当前的参数条件下的转码任务承载量。

本实施例中,首先预先建立各个容器在不同参数条件下的转码任务量与转码吞吐量之间的映射关系。不同参数条件下的转码任务量与转码吞吐量之间的映射关系可分布在不同的任务调度服务器上,便于提高获取转码任务承载量的效率。

获取到容器当前的参数条件后,从预先建立的各个容器在不同参数条件下的转码任务量与转码吞吐量的映射关系,得到该各个容器在当前的参数条件下的转码任务承载量。转码吞吐量是指单位时间内的视频时长。转码任务量是指容器工作能处理的任务数。

步骤608,获取各个容器当前工作的转码任务量。

本实施例中,各个容器当前工作的转码任务量是指各个容器当前正在工作的转码任务数。

步骤610,获取待分配的转码任务。

本实施例中,任务调度服务器获取到待分配的转码任务后,待分配的转码任务存储在转码任务分配队列中,再从转码任务分配队列中按照顺序依次取出待分配的转码任务进行分配。

步骤612,将该待分配的转码任务加入该各个容器,根据该各个容器的转码任务承载量和当前工作的转码任务量,获取该各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时。

本实施例中,将待分配的转码任务加入各个容器是指将待分配的转码任务加入分别加入到各个容器,再分别计算各个容器的转码吞吐量和转码耗时。

将待分配的转码任务加入容器后,将待分配的转码任务和容器已有的转码任务在容器上进行训练,从容器的转码任务量与转码吞吐量之间的映射关系得到该容器中加入待分配的转码任务后的转码吞吐量。

可通过获取待分配的转码任务的参数,根据待分配的转码任务的参数与预先训练得到的各个容器在不同参数条件下的转码任务与转码耗时之间的映射关系得到各个容器中加入待分配的转码任务后的转码耗时。

步骤614,根据该各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时筛选出最佳容器。

本实施例中,根据各个容器在加入待分配的转码任务后的转码吞吐量筛选出转码吞吐量最大的容器,可将该转码吞吐量最大的容器作为最佳容器。或者,筛选转码吞吐量最大且转码耗时最短的容器作为最佳容器。或者将各个容器在加入待分配的转码任务后的转码吞吐量按照进行排序,按照转码吞吐量从大到小筛选且转码耗时不大于时间阈值的容器,作为最佳容器。

步骤616,将该待分配的转码任务分配给该最佳容器。

本实施例中,将待分配的转码任务分配给最佳容器进行转码。

上述转码任务调度方法,通过获取到各个容器的转码任务承载量和当前工作的转码任务量,并将待分配的转码任务加入到各个容器,获取各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时,根据转码吞吐量和转码耗时筛选出最佳容器,将待分配的转码任务分配给最佳容器,从而达到了系统资源的最大利用率,提高了处理器和内存资源的利用率,不至于造成一些容器承载量过大,一些容器没有承载,造成资源浪费。

在一个实施例中,上述转码任务调度方法还包括:获取该待分配的转码任务的需求优先级;根据该各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时,以及该待分配的转码任务的需求优先级筛选出最佳容器。

本实施例中,待分配的转码任务的需求优先级是指待分配的转码任务需要优先满足的条件,例如待分配的转码任务的分辨率是1080p,则需要转码吞吐量大的容器处理,则筛选出加入待分配的转码任务后的转码吞吐量最大的容器作为最佳容器,再将待分配的转码任务分配筛选出的最佳容器。再如,待分配的转码任务需要转码时间最短,则筛选出加入待分配的转码任务后的转码耗时最短的容器作为最佳容器,再将待分配的转码任务分配筛选出的最佳容器。通过各个容器中加入待分配的转码任务后的转码吞吐量、转码耗时、以及待分配的转码任务的需求优先级,进一步筛选出合适的容器,提高资源的利用率。

在一个实施例中,上述转码任务调度方法还包括:获取该各个容器剩余的资源数据和该待分配的转码任务的需求优先级;根据该各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时、该各个容器剩余的资源数据和该待分配的转码任务的需求优先级筛选出最佳容器。

本实施例中,容器剩余的资源数据可包括剩余CPU和剩余内存等。待分配的转码任务的需求优先级是指待分配的转码任务需要优先满足的条件,例如待分配的转码任务的分辨率是1080p,则需要转码吞吐量大的容器处理,再结合容器剩余的资源数据,则筛选出加入待分配的转码任务后的转码吞吐量大且容器剩余的资源数据充足的容器作为最佳容器,再将待分配的转码任务分配筛选出的最佳容器。再如,待分配的转码任务需要转码时间最短,则筛选出加入待分配的转码任务后的转码耗时短且容器剩余的资源数据充足的容器作为最佳容器,再将待分配的转码任务分配筛选出的最佳容器。结合容器的转码吞吐量、转码耗时、剩余的资源数据及待分配的转码任务的需求优先级更加合理的分配容器,提高资源的利用率。

在一个实施例中,容器所在的机器在不同清晰度转码工具(OneTrans和PoolTrans)的转码吞吐量以及最佳进程数不同。例如如表1所示,包含了B7机型的机器进行不同清晰度的转码任务时对应的转码吞吐量以及推荐最佳任务量。将这些数据作为线上转码调度模型智能化训练的初始化数据,通过不停地学习和训练,计算出机器B上存在n个转码任务,加入第(n+1)个任务,FHD、SHD或HD480的转码任务是最佳被调度任务。

加入第(n+1)个任务,计算最大转码吞吐量的函数为F1(x)=Max(f1(xi)*e1(yj+yj+1+…))。其中,F1(x)表示最大转码吞吐量,f1(xi)是指容器的转码吞吐量,xi是指任务队列里的第i个不同清晰度的转码任务,yj是指机器上已运行的第j个清晰度转码任务,e1(y)为系数,Max()为取最大值。e1(y)通过训练得到。

其中,OneTrans和PoolTrans是两种不同的转码方式,对应不同的转码能力(采用转码吞吐量表示)。PoolTrans能单进程或者两个进程将CPU利用完,是一个转码能力非常强的转码工具;OneTrans相比,CPU利用率较弱,需要多进程并发才能得到合理利用CPU的目标,可计算最佳进程数OneTrans达到最大转码吞吐量。

表1

其中,B7是一种服务器型号。FHD全写Full High Definition,为全高清。SHD是Super High Definition,为超高清。分辨率可达到1920*1080。HD480是指High Definition的横向像素点为640,纵向像素点为480。HD360是指High Definition的横向像素点为360,纵向像素点为640。MD是指Medium Definition,中等清晰度。SD是指Standard Definition,标准清晰度。

机器不同清晰度转码工具(OneTrans和PoolTrans)的转码耗时不同。在机器上存在n个转码任务,加入第(n+1)个任务,计算转码任务的转码耗时。可以根据转码任务的需求优先级,通过控制机器任务数,实现转码任务的弹性转码。

加入第(n+1)个任务,计算转码耗时的函数为F2(x)=f2(xi)*e2(yj+yj+1+…))。其中,F2(x)表示转码耗时,f2(xi)是指容器的转码耗时,xi是指任务队列里的第i个不同清晰度的转码任务,yj是指机器上已运行的第j个清晰度转码任务,e2(y)为系数。e2(y)通过训练得到。

图7为一个实施例中转码任务调度装置的结构框图。如图7所示,一种转码任务调度装置,运行于图1中的任务调度服务器上,包括承载量获取模块702、任务量获取模块704、待分配任务获取模块706、转码参数获取模块708、筛选模块710和调度模块712。其中:

承载量获取模块702用于获取各个容器的转码任务承载量。

本实施例中,容器的转码任务承载量是指容器的最优工作任务量。在不同参数条件下,容器的最优工作任务量不同。此处获取的是各个容器在当前的参数条件下的转码任务承载量。

参数可包括清晰度、视频编码方式、分辨率、频道、平台等中一种或多种。清晰度是指影像上各细部影纹及其边界的清晰程度。

任务量获取模块704用于获取各个容器当前工作的转码任务量。

本实施例中,各个容器当前工作的转码任务量是指各个容器当前正在工作的转码任务数。

待分配任务获取模块706用于获取待分配的转码任务。

本实施例中,任务调度服务器获取到待分配的转码任务后,待分配的转码任务存储在转码任务分配队列中,再从转码任务分配队列中按照顺序依次取出待分配的转码任务进行分配。

转码参数获取模块708用于将该待分配的转码任务加入该各个容器,根据该各个容器的转码任务承载量和当前工作的转码任务量,获取该各个容器的转码吞吐量和转码耗时。

本实施例中,将待分配的转码任务加入各个容器是指将待分配的转码任务加入分别加入到各个容器,再分别计算各个容器的转码吞吐量和转码耗时。

将待分配的转码任务加入容器后,将待分配的转码任务和容器已有的转码任务在容器上进行训练,从容器的转码任务量与转码吞吐量之间的映射关系得到该容器中加入待分配的转码任务后的转码吞吐量。

可通过获取待分配的转码任务的参数,根据待分配的转码任务的参数与预先训练得到的各个容器在不同参数条件下的转码任务与转码耗时之间的映射关系得到各个容器中加入待分配的转码任务后的转码耗时。

筛选模块710用于根据该各个容器的转码吞吐量和转码耗时筛选出最佳容器。

本实施例中,根据各个容器在加入待分配的转码任务后的转码吞吐量筛选出转码吞吐量最大的容器,可将该转码吞吐量最大的容器作为最佳容器。或者,筛选转码吞吐量最大且转码耗时最短的容器作为最佳容器。或者将各个容器在加入待分配的转码任务后的转码吞吐量按照进行排序,按照转码吞吐量从大到小筛选且转码耗时不大于时间阈值的容器,作为最佳容器。

调度模块712用于将该待分配的转码任务分配给该最佳容器。

上述转码任务调度装置,通过获取到各个容器的转码任务承载量和当前工作的转码任务量,并将待分配的转码任务加入到各个容器,获取各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时,根据转码吞吐量和转码耗时筛选出最佳容器,将待分配的转码任务分配给最佳容器,从而达到了系统资源的最大利用率,提高了处理器和内存资源的利用率,不至于造成一些容器承载量过大,一些容器没有承载,造成资源浪费。

在一个实施例中,该承载量获取模块702还用于获取各个容器当前的参数条件,以及根据该当前的参数条件从预先建立的各个容器在不同参数条件下的转码任务量与转码吞吐量的映射关系得到该各个容器在当前的参数条件下的转码任务承载量。

图8为另一个实施例中转码任务调度装置的结构框图。如图8所示,一种转码任务调度装置,运行于图1中的任务调度服务器上,除了包括承载量获取模块702、任务量获取模块704、待分配任务获取模块706、转码参数获取模块708、筛选模块710和调度模块712,还包括测试模块714和训练模块716。其中:

测试模块714用于在该获取各个容器的转码任务承载量之前,对各个容器在不同参数条件下进行转码任务量的测试,得到各个容器工作初始化在不同参数下的转码任务量与转码吞吐量的映射关系。

通过对各个容器在不同参数条件下进行转码任务量的多次测试,得到各个容器工作初始化在不同参数下的转码任务量与转码吞吐量的映射关系。

训练模块716用于通过线上数据实时训练该各个容器的转码任务量与转码吞吐量的映射关系,得到修正后的该各个容器在不同参数条件下的转码任务量与转码吞吐量的映射关系。

图9为另一个实施例中转码任务调度装置的结构框图。如图9所示,一种转码任务调度装置,运行于图1中的任务调度服务器上,除了包括承载量获取模块702、任务量获取模块704、待分配任务获取模块706、转码参数获取模块708、筛选模块710和调度模块712,还包括优先级获取模块718。

优先级获取模块718用于获取该待分配的转码任务的需求优先级。

该筛选模块710还用于根据该各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时,以及该待分配的转码任务的需求优先级筛选出最佳容器。

本实施例中,待分配的转码任务的需求优先级是指待分配的转码任务需要优先满足的条件,例如待分配的转码任务的分辨率是1080p,则需要转码吞吐量大的容器处理,则筛选出加入待分配的转码任务后的转码吞吐量最大的容器作为最佳容器,再将待分配的转码任务分配筛选出的最佳容器。再如,待分配的转码任务需要转码时间最短,则筛选出加入待分配的转码任务后的转码耗时最短的容器作为最佳容器,再将待分配的转码任务分配筛选出的最佳容器。通过各个容器中加入待分配的转码任务后的转码吞吐量、转码耗时、以及待分配的转码任务的需求优先级,进一步筛选出合适的容器,提高资源的利用率。

图10为另一个实施例中转码任务调度装置的结构框图。如图10所示,一种转码任务调度装置,运行于图1中的任务调度服务器上,除了包括承载量获取模块702、任务量获取模块704、待分配任务获取模块706、转码参数获取模块708、筛选模块710和调度模块712,还包括数据获取模块720。

数据获取模块720用于获取该各个容器剩余的资源数据和该待分配的转码任务的需求优先级。

该筛选模块710还用于根据该各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时、该各个容器剩余的资源数据和该待分配的转码任务的需求优先级筛选出最佳容器。

本实施例中,容器剩余的资源数据可包括剩余CPU和剩余内存等。待分配的转码任务的需求优先级是指待分配的转码任务需要优先满足的条件,例如待分配的转码任务的分辨率是1080p,则需要转码吞吐量大的容器处理,再结合容器剩余的资源数据,则筛选出加入待分配的转码任务后的转码吞吐量大且容器剩余的资源数据充足的容器作为最佳容器,再将待分配的转码任务分配筛选出的最佳容器。再如,待分配的转码任务需要转码时间最短,则筛选出加入待分配的转码任务后的转码耗时短且容器剩余的资源数据充足的容器作为最佳容器,再将待分配的转码任务分配筛选出的最佳容器。结合容器的转码吞吐量、转码耗时、剩余的资源数据及待分配的转码任务的需求优先级更加合理的分配容器,提高资源的利用率。

在其他实施例中,一种转码任务调度装置,运行于图1中的任务调度服务器上,除了包括承载量获取模块702、任务量获取模块704、待分配任务获取模块706、转码参数获取模块708、筛选模块710、调度模块712、测试模块714和训练模块716、优先级获取模块718、数据获取模块720中各种可能的组合。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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