CN106454402B - 转码任务调度方法和装置 - Google Patents

转码任务调度方法和装置 Download PDF

Info

Publication number
CN106454402B
CN106454402B CN201610797463.4A CN201610797463A CN106454402B CN 106454402 B CN106454402 B CN 106454402B CN 201610797463 A CN201610797463 A CN 201610797463A CN 106454402 B CN106454402 B CN 106454402B
Authority
CN
China
Prior art keywords
transcoding
container
task
allocated
transcoding task
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610797463.4A
Other languages
English (en)
Other versions
CN106454402A (zh
Inventor
陈桂敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610797463.4A priority Critical patent/CN106454402B/zh
Publication of CN106454402A publication Critical patent/CN106454402A/zh
Application granted granted Critical
Publication of CN106454402B publication Critical patent/CN106454402B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

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

Description

转码任务调度方法和装置
技术领域
本发明涉及计算机应用领域,特别是涉及一种转码任务调度方法和装置。
背景技术
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(HighEfficiency 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)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (8)

1.一种转码任务调度方法,包括:
获取各个容器的转码任务承载量;
获取各个容器当前工作的转码任务量;
获取待分配的转码任务;
获取所述待分配的转码任务的需求优先级,所述需求优先级指分配的转码任务需要优先满足的条件;
将所述待分配的转码任务加入所述各个容器,根据所述各个容器的转码任务承载量和当前工作的转码任务量,获取所述各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时;
根据所述各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时,以及所述待分配的转码任务的需求优先级筛选出最佳容器;
将所述待分配的转码任务分配给所述最佳容器。
2.根据权利要求1所述的方法,其特征在于,所述获取各个容器的转码任务承载量,包括:
获取各个容器当前的参数条件;
根据所述当前的参数条件从预先建立的各个容器在不同参数条件下的转码任务量与转码吞吐量的映射关系得到所述各个容器在当前的参数条件下的转码任务承载量。
3.根据权利要求1所述的方法,其特征在于,在所述获取各个容器的转码任务承载量之前,所述方法还包括:
对各个容器在不同参数条件下进行转码任务量的测试,得到各个容器工作初始化在不同参数下的转码任务量与转码吞吐量的映射关系;
通过线上数据实时训练所述各个容器的转码任务量与转码吞吐量的映射关系,得到修正后的所述各个容器在不同参数条件下的转码任务量与转码吞吐量的映射关系。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述各个容器剩余的资源数据和所述待分配的转码任务的需求优先级;
根据所述各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时、所述各个容器剩余的资源数据和所述待分配的转码任务的需求优先级筛选出最佳容器。
5.一种转码任务调度装置,其特征在于,包括:
承载量获取模块,用于获取各个容器的转码任务承载量;
任务量获取模块,用于获取各个容器当前工作的转码任务量;
待分配任务获取模块,用于获取待分配的转码任务;
优先级获取模块,用于获取所述待分配的转码任务的需求优先级;
转码参数获取模块,用于将所述待分配的转码任务加入所述各个容器,根据所述各个容器的转码任务承载量和当前工作的转码任务量,获取所述各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时;
筛选模块,用于根据所述各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时,以及所述待分配的转码任务的需求优先级筛选出最佳容器;
调度模块,用于将所述待分配的转码任务分配给所述最佳容器。
6.根据权利要求5所述的装置,其特征在于,所述承载量获取模块还用于获取各个容器当前的参数条件,以及根据所述当前的参数条件从预先建立的各个容器在不同参数条件下的转码任务量与转码吞吐量的映射关系得到所述各个容器在当前的参数条件下的转码任务承载量。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
测试模块,用于在所述获取各个容器的转码任务承载量之前,对各个容器在不同参数条件下进行转码任务量的测试,得到各个容器工作初始化在不同参数下的转码任务量与转码吞吐量的映射关系;
训练模块,用于通过线上数据实时训练所述各个容器的转码任务量与转码吞吐量的映射关系,得到修正后的所述各个容器在不同参数条件下的转码任务量与转码吞吐量的映射关系。
8.根据权利要求5所述的装置,其特征在于,所述装置还包括:
数据获取模块,用于获取所述各个容器剩余的资源数据和所述待分配的转码任务的需求优先级;
所述筛选模块还用于根据所述各个容器中加入待分配的转码任务后的转码吞吐量和转码耗时、所述各个容器剩余的资源数据和所述待分配的转码任务的需求优先级筛选出最佳容器。
CN201610797463.4A 2016-08-31 2016-08-31 转码任务调度方法和装置 Active CN106454402B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610797463.4A CN106454402B (zh) 2016-08-31 2016-08-31 转码任务调度方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610797463.4A CN106454402B (zh) 2016-08-31 2016-08-31 转码任务调度方法和装置

Publications (2)

Publication Number Publication Date
CN106454402A CN106454402A (zh) 2017-02-22
CN106454402B true CN106454402B (zh) 2018-11-23

Family

ID=58165002

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610797463.4A Active CN106454402B (zh) 2016-08-31 2016-08-31 转码任务调度方法和装置

Country Status (1)

Country Link
CN (1) CN106454402B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108512817B (zh) * 2017-02-28 2020-09-04 北京大学 多视频转码调度方法及装置
CN108052384B (zh) * 2017-12-27 2022-01-18 联想(北京)有限公司 一种任务处理方法、服务平台及电子设备
CN108900865B (zh) * 2018-06-11 2021-06-15 网宿科技股份有限公司 服务器、转码任务的调度方法及执行方法
CN110830826A (zh) * 2018-08-08 2020-02-21 视联动力信息技术股份有限公司 视频转码设备调度方法及系统
CN110098918B (zh) * 2019-03-28 2022-11-22 中至数据集团股份有限公司 解密调度方法、装置、可读存储介质及计算机设备
CN110543352B (zh) * 2019-08-16 2022-06-07 浙江大华技术股份有限公司 调度系统的任务分配方法及其相关的装置
CN115695867B (zh) * 2023-01-03 2023-05-12 北京微吼时代科技有限公司 转码资源弹性伸缩的调度方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101909048A (zh) * 2009-12-08 2010-12-08 新奥特(北京)视频技术有限公司 一种集中式转码处理方法和装置
CN101917384A (zh) * 2009-11-17 2010-12-15 新奥特(北京)视频技术有限公司 一种分布式转码系统的任务分发方法及装置
CN104717517A (zh) * 2015-03-31 2015-06-17 北京奇艺世纪科技有限公司 一种视频转码任务调度方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090172685A1 (en) * 2007-10-01 2009-07-02 Mevio Inc. System and method for improved scheduling of content transcoding
CN101459848B (zh) * 2008-12-26 2010-11-10 西安交通大学 一种分布式多格式数字视频转码结构设计方法
CN101917326B (zh) * 2009-11-17 2012-11-28 新奥特(北京)视频技术有限公司 一种分布式转码系统及其任务调度方法
CN102882829A (zh) * 2011-07-11 2013-01-16 腾讯科技(深圳)有限公司 一种转码方法及系统
CN103686207A (zh) * 2013-12-04 2014-03-26 乐视网信息技术(北京)股份有限公司 转码任务的调度方法和系统
CN103699447B (zh) * 2014-01-08 2017-02-08 北京航空航天大学 一个基于云计算的视频会议的转码分发系统
CN104506881A (zh) * 2014-12-31 2015-04-08 成都东方盛行电子有限责任公司 一种音视频分片转码调度方法
CN105872595A (zh) * 2016-03-31 2016-08-17 乐视控股(北京)有限公司 转码任务分配方法及装置
CN105843687A (zh) * 2016-03-31 2016-08-10 乐视控股(北京)有限公司 一种任务资源的量化方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101917384A (zh) * 2009-11-17 2010-12-15 新奥特(北京)视频技术有限公司 一种分布式转码系统的任务分发方法及装置
CN101909048A (zh) * 2009-12-08 2010-12-08 新奥特(北京)视频技术有限公司 一种集中式转码处理方法和装置
CN104717517A (zh) * 2015-03-31 2015-06-17 北京奇艺世纪科技有限公司 一种视频转码任务调度方法及装置

Also Published As

Publication number Publication date
CN106454402A (zh) 2017-02-22

Similar Documents

Publication Publication Date Title
CN106454402B (zh) 转码任务调度方法和装置
DE102020203877A1 (de) Verfahren und einrichtungen zum steuern einer verarbeitung von telemetriedaten auf einer edge-plattform
CN110769278A (zh) 一种分布式视频转码方法及系统
CN107465936B (zh) 一种直播列表镜像展示方法、直播平台服务器及客户端
US9727389B2 (en) Methods and systems for distributed processing on consumer devices
DE112020003742T5 (de) Verfahren, systeme, erzeugnisse und vorrichtungen zur verbesserung von jobplanungseffizienz
DE112016006734T5 (de) Integriertes Android- und Windows-Gerät
US10536732B2 (en) Video coding method, system and server
DE112018000226T5 (de) Mobiles Cloud-Computing-Endgerät und Betriebsverfahren dafür
CN112291793B (zh) 网络接入设备的资源分配方法和装置
CN108829469B (zh) 一种应用程序页面展示方法及装置
CN108052395A (zh) 通用处理器和图形处理器之间的负载均衡
CN107209693A (zh) 缓冲器优化
CN103765384A (zh) 数据处理系统和在数据处理系统中进行任务调度的方法
CN105309029B (zh) 分配用于虚拟化联网的共享资源
DE102021211927A1 (de) Verfahren, systeme, herstellungsartikel und vorrichtungen zum stapeln von funktionen
DE112017003294T5 (de) Technologien für ein skalierbares Senden und Empfangen von Paketen
CN111552550A (zh) 一种基于图形处理器gpu资源的任务调度方法、设备及介质
CN113157418A (zh) 服务器资源分配方法和装置、存储介质及电子设备
CN109151966A (zh) 终端控制方法、装置、终端设备及存储介质
CN111381957B (zh) 面向分布式平台的服务实例精细化调度方法及系统
CN109523220A (zh) 物流无人机调度系统以及方法
CN107438175B (zh) 针对大规模视频的快速截图方法及系统
CN105721901A (zh) 视频转码适配方法、装置及系统
CN108632166A (zh) 一种基于dpdk的收包二级缓存方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant