一种视频分析任务的调度方法及系统的制作方法

文档序号:10665708阅读:392来源:国知局
一种视频分析任务的调度方法及系统的制作方法
【专利摘要】本发明公开了一种视频分析任务的调度方法及系统。所述方法包括:评估接收到的视频分析任务后,将视频分析任务下发到集群执行;实时监控任务执行的状态,确定是否需要针对任务进行动态调整;以及当需要针对任务进行动态调整时,根据任务优先级,为任务调整分配的资源,其中,所述调整分配的资源是以保证低优先级的任务能够正常执行为前提,将所述低优先级的任务的部分资源提供给需要更多资源的高优先级的任务。本发明的方案,通过自动调整任务资源分配,完成资源的自动合理整合和充分利用,实现了自动负载均衡,有效地避免了出现由于硬件资源异常导致高优先级任务运行、执行的时间过长,视频分析处理效率低下的缺陷。
【专利说明】
一种视频分析任务的调度方法及系统
技术领域
[0001]本发明涉及智能分析技术领域,特别涉及一种视频分析任务的调度方法及系统。
【背景技术】
[0002]智能视频分析技术是监控技术第三个发展阶段“机器眼+机器脑”中的“机器脑”部分,利用机器,将“人脑”对于视频画面的监控判断,进行数据分析提炼特征形成算法植入机器,形成“机器脑”对视频画面自动检测分析,并作出报警或其他动作。它借助计算机强大的数据处理能力过滤掉视频画面无用的或干扰信息、自动分析、抽取视频源中的关键有用信息,从而使摄像机不但成为人的眼睛,也使计算机成为人的大脑。
[0003]而在智能视频分析技术的分析处理过程中所涉及的视频分析任务,是一种较为复杂的任务,其针对的应用场景有人脸、车牌、行为等等。在视频分析任务中,每一个视频里出现的目标物的稠密度(即每一帧分析时出现的目标物数量,例如人、车等目标数的数量),会极大程度地影响视频分析的效率,比如:数量越多则分析效率越低速度越慢;同时每一种场景对承载的硬件资源的资源消耗量、需求等也不同,进一步由于视频分析领域采用特有的分析手段,即帧分析,还需要保持帧的连续性,不可以随意以图像帧方式切分视频段,这样,由于每一帧分析都与前后帧有关联,如果单从一帧角度看可能会造成结果偏差,多个帧看则会造成分析的结果反复出现。所以最恰当的方式是保证分析任务执行期间不会失败或者异常中断,这样也就要求设计的智能视频分析任务的调度机制必须以保持任务最低运行条件为前提,保证任务可以持续完成为目标。
[0004]目前,现有技术中的任务调度方法主要包括以下几类:
[0005]1.采用均匀分配算法对任务占用资源进行配置,此类方法虽然表面上看是基于公平分配的原则,但是实质上会造成资源浪费;
[0006]2.采用优先级对任务进度调度,此类方法容易造成任务堵塞,此外,人为设定的优先级并不能准确地表述任务真正的优先程度,很有可能让真正重要的任务一直处于排队状态;
[0007]3.采用优先级或者均匀分配方式进行任务初始化分配,任务执行过程中进行任务资源动态分派,但由于没有对任务最低消耗资源进行分析,容易导致任务运行速度很慢甚至死亡。

【发明内容】

[0008]本发明提供一种视频分析任务的调度方法及系统,解决能够保证任务执行过程中自行动态调整所分配给任务的资源的问题,从而实现任务动态调整、资源充分利用、且负载自动均衡,进而有效地避免由于硬件资源异常导致高优先级任务长时间运行的情况。
[0009]根据本发明的一个方面,提供一种视频分析任务的调度方法,所述方法包括:评估接收到的视频分析任务后,将视频分析任务下发到集群执行;实时监控任务执行的状态,确定是否需要针对任务进行动态调整;以及当需要针对任务进行动态调整时,根据任务优先级,为任务调整分配的资源,其中,所述调整分配的资源是以保证低优先级的任务能够正常执行为前提,将所述低优先级的任务的部分资源提供给需要更多资源的高优先级的任务。
[0010] 其中,在本发明中,所述评估接收到的视频分析任务后,将视频分析任务下发到集群执行的步骤包括:对接收的视频分析任务进行分析以确定该视频分析任务的执行时间; 根据所述分析确定的该视频分析任务的执行时间,确定将所述任务整体或将所述任务按照时间片方式切分成若干个子任务后,下发到集群以执行。[〇〇11] 其中,在本发明中,所述将视频分析任务下发到集群以执行的步骤包括:基于所述分析确定的视频分析任务的执行时间和预设的任务时间阈值,将该视频分析任务切分成若干个子任务或将该视频分析任务整体下发到集群以执行。
[0012]其中,在本发明中,所述实时监控任务执行的状态的步骤中的任务执行的状态包括:任务的执行时间和/或执行任务的资源;当任务的执行时间超过预期执行时间,和/或执行任务的资源出现异常,则表明对该任务需要进行动态调整。
[0013]其中,在本发明中,所述实时监控任务执行的状态的步骤包括:实时检查任务的执行时间和/或执行任务的资源状态;当监控到该任务的执行时间未超过预期执行时间,且执行该任务的硬件资源也未出现异常则表明该任务运行正常;当监控到该任务的执行时间超过预期执行时间,和/或,执行该任务的硬件资源出现异常,则表明对该任务需要进行动态调整。
[0014]其中,在本发明中,所述为任务调整分配的资源的步骤包括:当需要针对任务进行动态调整时,检查所有分配了硬件资源正在执行的任务所形成的任务池是否已满;如果任务池未满,则将空余的资源分配到需要资源的高优先级任务,以保证该任务的执行;如果任务池已满,则在保证低优先级任务可以正常运行的基础上,将该低优先级任务减少或释放的资源,分配到需要资源的高优先级任务。
[0015]其中,在本发明中,所述为任务调整分配的资源的步骤包括:当需要针对任务进行动态调整时,在保证低优先级任务可以正常运行的基础上,将该低优先级任务减少或释放的资源,分配到需要资源的高优先级任务。
[0016]其中,在本发明中,所述将该低优先级任务减少或释放的资源,分配到需要资源的尚优先级任务的步骤包括:基于监控获得的任务执行状态,从确定执行存在异常的任务中找出高优先级的任务,以及从确定执行正常的任务中找出低优先级的任务;基于确定的存在异常的高优先级任务和正常的低优先级任务,在保证低优先级任务的正常执行的基础上,将低优先级任务的部分资源释放和/或减少,以分配给存在异常的高优先级任务。
[0017]其中,在本发明中,还包括:所述高优先级任务为具备高优先级且执行时间大于标准时间的任务;所述低优先级任务为具备低优先级且执行时间不大于标准时间的任务。
[0018]根据本发明的另一方面,提供一种视频分析任务的调度系统,所述系统包括:评估单元,用于评估接收到的视频分析任务后,将视频分析任务下发到集群执行;监控单元,连接到所述评估单元,用于实时监控任务执行的状态,确定是否需要针对任务进行动态调整; 和调整单元,连接到所述监控单元,用于当需要针对任务进行动态调整时,根据任务优先级,为任务调整分配的资源,其中,所述调整分配的资源是以保证低优先级的任务能够正常执行为前提,将所述低优先级的任务的部分资源提供给需要更多资源的高优先级的任务。
[0019]其中,本发明中,所述评估单元至少包括分析模块和下发模块;所述分析模块用于对接收的视频分析任务进行分析以确定该视频分析任务的执行时间;所述下发模块用于根据确定的所述该视频分析任务的执行时间,确定将所述任务整体或将所述任务按照时间片方式切分成若干个子任务后,下发到集群以执行。
[0020]根据本发明的视频分析任务的调度方法及系统,应用于智能视频分析领域中,改进其分析技术所涉及的任务调度技术。在当任务执行过程中出现任务执行问题时,本发明的方案能够实现自行对任务进行动态调整,主要可以在保证低优先级任务不失败的前提下,通过自动调整分配给任务的硬件资源,使得高优先级任务能充分利用硬件资源。本发明的方案,通过自动调整任务资源分配,完成资源的自动合理整合和充分利用,实现了自动负载均衡,有效地避免了出现由于硬件资源异常导致高优先级任务运行、执行的时间过长,视频分析处理效率低下的缺陷。
【附图说明】
[0021]图1显示了根据本发明的视频分析任务的调度方法的一实施例的流程图;
[0022]图2显示了图1中步骤SI的一实施例的流程图;
[0023]图3显示了图1中步骤S3的一实施例的流程图;
[0024]图4显示了图3中步骤S33的一实施例的流程图;
[0025]图5显示了根据本发明的视频分析任务的调度系统的一实施例的结构示意图;
[0026]图6显示了图5中评估单元的一实施例的结构示意图;
[0027]图7显示了图5中调整单元的一实施例的结构示意图;
[0028]图8显示了图7中第二调整模块的一实施例的结构示意图。
【具体实施方式】
[0029]为使本发明的目的、技术方案和优点更加清楚明了,下面结合【具体实施方式】并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
[0030]这里,先说明在本发明的方案中,涉及视频分析的“任务调度方法”。智能视频分析领域的任务调度方法:是指对海量视频分析任务进行全局化任务调度,按照优先级、复杂度等甚至其变化,分配硬件资源、调整任务执行顺序的方法。
[0031]下面结合图1所示本发明的视频分析任务的调度方法的一实施例的流程图,具体说明本发明的视频分析任务的调度方法。
[0032]在步骤SI中,评估接收到的视频分析任务后,将视频分析任务下发到集群执行。
[0033]在一个实施方式中,可以由任一个或多个用户发出对视频数据进行分析处理的请求,和/或,设定发出进行视频数据分析处理的请求的时间点而自动发出该用户请求。接收该请求,也即说,接收来自用户请求所指示的对视频进行视频分析的任务。对接收到的该视频分析任务,先进行评估,例如,评估该任务的执行时间长短等,再将该任务或该任务的子任务下发到集群执行。该评估可以包括对任务的预先分析和初步处理。
[0034]在一个实施方式中,参见图2所示的流程图,对评估(包括:预先分析、初步处理等)和下发任务的过程做进一步说明。
[0035]步骤S11,对接收的视频分析任务进行分析以确定该视频分析任务的执行时间。
[0036]在一个实施方式中,每个视频分析任务(下称任务)都有相应的执行处理(即该视频分析)所需要的完成时间,即任务的执行时间。这样的任务本身的分析时间段,可以由用户自行定义,例如:分析一天内的12小时的视频数据。
[0037]步骤S12,根据所述分析确定的该视频分析任务的执行时间,确定将所述任务整体或将所述任务按照时间片方式切分成若干个子任务后,下发到集群以执行。
[0038]在一个实施方式中,先对收到的用户发起的任务预先分析其执行时间后,再基于该执行时间进行任务处理。比如,可以预设任务时间阈值,例如1小时为一个划分子任务的时间片等,根据分析的任务执行时间来确定是否需要切分该任务。比如一任务需要执行分析12个小时,则根据1小时划分子任务的任务时间阈值来看,其可以划分(切分)12个子任务。而如果任务时间阈值预设为12小时,则该需要执行分析12小时的任务无需按时间片划分成子任务。进一步,根据该任务的执行时间的长短,确定是否需要按时间片方式切分。 如果不需要,则直接将该任务按照一个任务整体下发给集群执行该任务;而如果需要切分, 则按照时间片方式切分成若干个子任务后下发给集群执行。
[0039]进行视频分析任务处理的集群,在收到任务或子任务的执行请求后,会在集群内按照每个任务、子任务预估的条件(比如:该子任务或任务需要的执行时间、需要的资源等)挑选合适的执行者(硬件资源,如:处理器、内存等),由该执行者执行任务。
[0040]其中,可以通过对同一场景的反复测试,预估出执行时间和最佳分配资源。
[0041]其中,预估条件中,对于完整任务的执行时间、或者单个子任务的执行时间的一种预估方式可以是,采用步骤S11中对任务或子任务自身分析获得的(如:对同一场景反复测试后由用户预定的)。进而,子任务的总体执行时间总和即为其对应的完整的一个任务的执行时间。
[0042]其中,预估条件中,需要的资源,主要是硬件资源,如处理器等,一种方式可以通过任务大小(如:对同一场景反复测试后,确定需要执行时间长短、优先级等)来确定分配多少个处理器给相应的任务的方式来获得。
[0043]在步骤S2中,实时监控任务执行的状态,确定是否需要针对任务进行动态调整。
[0044]其中,动态调整,是指在保证最低优先级任务能正常运行的前提下,对运行的任务根据实时监控到的任务执行状态的变化,来实时重新分配资源或者说调整资源的配置。
[0045]其中,实时的任务执行状态监控包括例如:实时检查任务的已执行时间/预期结束时间,和/或,执行任务的资源状态(包括:资源使用率、新任务优先级较高需要将其分配到某些执行者的资源状态),等等。并且,该实时监控,是对任务池中的每个任务运行时候的执行状态进行扫描,不间断地检查任务的执行状况,例如,任务已经执行的时间、是否到了执行结束的时间点等时间状态,和/或任务的执行资源(如执行者的使用率)的状态是否异常,和/或新任务来到分配到执行资源的状态是否异常,等等。
[0046]在一个实施方式中,具体可以通过预期时间的设置或硬件资源异常等作为监控判断是否需要动态调整任务的条件。具体地,该监控过程中,不间断获取正在运行(或执行) 中的任务的状态,其中,实时任务执行状态可以包括:已经执行的时间/已执行时间、占有的硬件资源使用率的状态、等等。
[0047]当监控到该任务的已执行时间未超过预期执行时间(即该已执行时间未逾期),且执行该任务的硬件资源也未出现异常(如资源使用率:处理器内存占用量未超过90% 等),则表明该任务运行正常。此时,继续对任务的执行状况进行监控。即确认无需对该任务进行动态的调整(如资源调整、时间调整等),不进行下一步动作,持续监控扫描现有任务池中每个运行的任务。
[0048]当监控到该任务的执行时间超过预期执行时间(即该已执行时间过长,已经逾期或超期),和/或,执行该任务的硬件资源出现异常(如:处理器内存占用量超过90%等), 则表明对该任务需要进行动态调整。比如:加速高优先级的任务的处理,或者,释放即将运行完成的任务不再需要的部分资源而重新分配给高优先级的任务或新来的任务,等等。
[0049]进一步,在监控过程中,如果发现任务的执行时间超过预期执行时间或者资源出现异常,很可能会导致该任务实际上无法继续执行、任务超期执行而处理出错、运行出现死循环等现象,此时,确认需要对任务进行动态调整,以保证需要执行的任务正常运行,结束的任务释放占用的资源给需要的任务使用,或者加速高优先级别的任务以保证其顺利高效地执彳丁,等等。
[0050]其中,可以预设预期执行时间(即预期的任务执行结束时间、完成时间等)、和/或对硬件资源异常状态的判断条件等。预期执行时间,例如:可以根据步骤S12中的执行时间来设置,如二者时长相等、或预期执行时间可以在步骤S12中获得的执行时间长度上稍微延长一定时间,或者,以该任务几点开始执行为依据预设其执行结束时间为几点,等等。硬件资源的异常,例如,可以根据诸如操作系统0S、云处理等对系统运行中硬件资源的异常检测的经验来设定、或就以其已有的状态异常检测方式作为依据来判断或设定等。
[0051]进一步,对于需要针对任务进行动态调整,可以发送需要对任务进行动态调整的请求(或命令等)。
[0052]在步骤S3中,当需要针对任务进行动态调整时,根据任务优先级,为任务调整分配的资源。
[0053]其中,任务池中运行的每个任务都具有各自的优先级。比如A、B、C、D四个运行的任务,其执行的优先级依次为1、2、2、3,即A级别最尚,B、C次之,D最低。
[0054]另外,任务的优先级还可以随着执行过程而变化。比如,任务优先级可以随着任务执行的推进发生变化,一个例子:任务执行中越接近设定的结束任务时间,其优先级越高。 这样当调整资源时,若这类临近结束的任务出现异常需要调整时,往往会最先被找到,并为其配置更多资源以便在结束任务的时间点完成任务,进而释放自身占用的资源以备其他任务或新任务使用。
[0055]在一个实施方式中,该调整分配的资源可以包括:可以在保证低优先级的任务能够正常执行的前提下,调整出该任务可减少的资源、并将这些资源添加(分配)到需要加速的高优先级任务,即将所述低优先级的任务的部分资源提供给需要更多资源的高优先级的任务
[0056]其中,在保证任务不会因为调整所分配的资源而导致失败的前提下,针对不同优先级的并行任务,在任务运行过程当中自动计算运行时间,优先考虑高优先级的任务。比如:在任务运行过程中如果监控状态时发现高优先级的任务运行较慢,则自动寻找低优先级的任务,在保证低优先级任务可以正常运行的前提下,调整出该任务的部分资源并赋予这些资源到高优先级任务,使得任务继续正常运行。一个实施方式中,任务标准运行时间由预估算法通过训练海量数据得出(此处可以根据已有预估算法训练完成,因而不再赘述)。
[0057]具体地,结合图3所示的一个动态调整的实施例流程对步骤S3做进一步说明。
[0058]步骤S31,当需要针对任务进行动态调整时,检查所有分配了硬件资源正在执行的任务形成的任务池是否已满。
[0059]集群中任务池包括所有分配了硬件资源正在执行的任务。实时监控期间,任务监视服务可以开始扫描任务池中每个任务获取这些正在运行的任务的状态(例:资源使用率、预计结束时间等)。在接收到需要任务的调整请求后,检查该任务池以便确定任务池是否已满。若未满则表示还有空余的硬件资源。若已满则表示硬件资源都分配完,需要重新调整,比如,新来一个任务A,优先级高,集群给其分配2个执行者,因而要按照优先级别要调整任务执行者(执行载体)。
[0060]步骤S32,如果任务池未满,则将空余的资源分配到需要资源的高优先级任务,以保证该任务的执行。
[0061]—个实施方式,当任务池未满,表明有空余的资源,当新任务或优先级别较高的任务存在资源需求,例如:需要分配相应的硬件资源执行任务、或优先级高需要加速执行处理时,则可以将空余的资源优先分配到这些需要资源(执行处理或需要加速)的任务。进一步,这种分配可以参考优先级别的高低来,优先分配到较高优先级任务,以保证该任务的顺利、尚效的执tx。
[0062]步骤S33,如果任务池已满,则在保证低优先级任务可以正常运行的基础上,将该低优先级任务减少或释放的资源,分配到需要资源的高优先级任务。
[0063]当任务池已满时,表明所有可用的资源已经全部被分配给了正在执行的任务,则需要调整任务执行载体。
[0064]由于此时的任务监视服务扫描任务池内的每一个任务,能够获取正在运行任务的状态(资源使用率、预计结束时间等),因而,在一个实施方式中,可以将获取的任务预计结束时间(估计的完成时间)放入任务预估时间公式。
[0065]如果发现预计完成时间过长,判定为异常,如果没有异常,继续新一轮的获取正在运行任务状态。
[0066]如果发现异常,优先考虑高优先级的任务,比如在任务运行过程中发现高优先级的任务存在运行较慢的状况(预估的完成时间太长),即找出了需要加速的任务,该任务具备高优先级且执行时间大于标准时间等特点。然后,继续扫描获取任务池中各个任务状态以便自动寻找低优先级的任务,在保证低优先级任务可以正常运行的前提下,将其占用的部分资源调整出来分配到该存在执行异常(速度过慢需要加速)的高优先级任务,从而保证该高优先级任务能够顺利、高效地执行(即加速该任务执行处理)。
[0067]进一步,找出可以减少资源的任务,该任务具备低优先级且执行时间不大于标准时间等特点,计算该低优先级任务保证正常运行时最低需要使用的资源,从该低优先级任务上取出所有可以调整出的资源,比如释放或从任务中减少这些资源,最后把这些资源分配给高优先级的任务,即基于优先级和实时监控的任务执行状态,重新分配资源以实现动态调整,使得高优先级任务和低优先级任务均能继续正常运行。
[0068]可选地,在步骤S3中,当需要针对任务进行动态调整时,在保证低优先级任务可以正常运行的基础上,将该低优先级任务减少或释放的资源,分配到需要资源的高优先级任务。
[0069]无需检查所有分配了硬件资源正在执行的任务形成的任务池是否已满,直接在保证低优先级任务可以正常运行的前提下,将其占用的部分资源调整出来分配到该存在执行异常(速度过慢需要加速)的高优先级任务,从而保证该高优先级任务能够顺利、高效地执行(即加速该任务执行处理)。
[0070]下面结合图4所示的根据优先级为任务做资源调整的一实施例的流程,说明在保证低优先级任务正常运行的基础上释放和/或减少低优先级任务的资源以配置给高优先级任务的过程。
[0071]步骤S331,基于监控获得的任务执行状态,从确定执行存在异常的任务中找出高优先级的任务,以及从确定执行正常的任务中找出低优先级的任务。
[0072]在一个实施方式中,根据实时监控(任务监视服务扫描任务池内的每一个任务), 获取的正在运行任务的状态:资源使用率、预计结束时间等。将其中的任务预计结束时间 (估计的完成时间)放入任务预估时间公式。如果计算发现预计完成的时间过长则判断为任务执行状态异常。而如果预计完成的时间无异常/正常,则继续新一轮实时监控过程中获取正在运行任务的状态。
[0073]进一步,将被判断为任务执行状态异常的所有任务按照优先级从高到低的方式找出。比如前述例子的任务A、B、C、D,若发现存在执行状态异常(任务运行过程中执行时间较长)的任务A、D则首先将高优先级的A找出。该高优先级任务A具备优先级别高、执行时间大于规定的标准时间(如:以当前速度运行下去必然不能在标准时间完成)等特点。 因而,该高优先级任务A存在加速的需求,即需要提供更多的资源执行处理以保证其顺利完成(例如:能够按照之前评估时候得到的执行时间或切片时间完成等)。
[0074]进一步,在一个实施方式中,依据优先级别,自动寻找低优先级任务,并根据实时监控(任务监视服务扫描任务池内的每一个任务)获得的任务执行状态(时间、资源使用率等),确定找到的低优先级如任务B运行是否正常。若正常,即其执行时间不大于规定的标准时间。因而,该低优先级任务B具备较低优先级、执行时间不大于规定的标准时间等特点。其可以作为用于调整的任务,在保证自身运行正常前提下,还能释放和/或减少资源的任务。
[0075]步骤S332,基于确定的存在异常的高优先级任务和正常的低优先级任务,在保证低优先级任务的正常执行的基础上,将低优先级任务的部分资源释放和/或减少,以分配给存在异常的尚优先级任务。
[0076]其中,若找到的低优先级任务执行状态正常,一个实施方式,可以根据获取的执行状态,确定所述正常运行的低优先级任务B使用多少资源在运行、并且分配给其的多少资源闲置,进而,计算低优先级任务B能够正常运行所需的最低资源需求。然后从具有较低优先级、执行时间不大于规定的标准时间的特点的运行任务B中,释放和/或减少自己所占有的一部分资源即从低优先级任务B上获取可以调整的资源。在保证低优先级任务可以正常运行的前提下,从该低优先级任务上取出所有可以减少的资源。
[0077]这些资源在进一步的调整过程中,可以分配到需要更多资源、需要加速的高优先级、执行速度过慢(异常)的任务。比如,将这些来自低优先级正常执行的任务B的部分资源添加到尚优先级需要加速的任务A。从而,使得尚优先级任务A和低优先级任务B均能继续正常运行。
[0078]由此,当任务执行过程中出现任务执行问题时,能够自动对任务进行动态调整,并在低优先级任务不失败的前提下,通过自动调整所分配给任务的硬件资源,使得高优先级任务能充分利用硬件资源,确保了整个视频分析任务的正常执行。
[0079]下面将结合附图描述本发明的视频分析任务的调度系统的实施例。本发明的系统与本发明的方法相对应。
[0080]如图5所示,为根据本发明的视频分析任务的调度系统的一实施例的结构示意图。该系统至少包括:评估单元510、监控单元520和调整单元530。
[0081]评估单元510用于评估接收到的视频分析任务后,将视频分析任务下发到集群执行。该模块的具体处理和功能可以参见对步骤SI的具体描述。
[0082]在一个实施方式中,该评估单元510进一步,至少还包括如图6所示的分析模块610和下发模块620。
[0083]其中,分析模块610用于对接收的视频分析任务进行分析以确定该视频分析任务的执行时间。该模块的具体处理和功能可以参见对步骤Sll的具体描述。
[0084]其中,下发模块620连接到分析模块610,用于根据所述执行时间分析确定的该视频分析任务的执行时间,确定将所述任务整体或将所述任务按照时间片方式切分成若干个子任务后,下发到集群以执行。该模块的具体处理和功能可以参见对步骤S12的具体描述。
[0085]监控单元520连接到所述评估单元510,用于实时监控任务执行的状态,确定是否需要针对任务进行动态调整。该模块的具体处理和功能可以参见对步骤S2的具体描述。
[0086]调整单元530连接到所述监控单元520,用于当需要针对任务进行动态调整时,根据任务优先级,为任务调整分配的资源,其中,所述调整分配的资源是以保证低优先级的任务能够正常执行为前提,将所述低优先级的任务的部分资源提供给需要更多资源的高优先级的任务。该模块具体的处理和功能可以参见对步骤S3的具体描述。
[0087]在一个实施方式中,该调整单元530进一步,至少还包括如图7所示的检查模块710、第一调整模块720、第二调整模块730。
[0088]其中,检查模块710用于当需要针对任务进行动态调整时,检查所有分配了硬件资源正在执行的任务形成的任务池是否已满。该模块具体的处理和功能可以参见对步骤S31的具体描述。
[0089]其中,第一调整模块720连接到检查模块710,用于如果任务池未满,则将空余的资源分配到需要资源的高优先级任务,以保证该任务的执行。该模块具体的处理和功能可以参见对步骤S32的具体描述。
[0090]其中,第二调整模块730连接到检查模块710,用于如果任务池已满,则在保证低优先级任务可以正常运行的基础上,将该低优先级任务减少或释放的资源,分配到需要资源的高优先级任务。该模块具体的处理和功能可以参见对步骤S33的具体描述。
[0091]可选地,在一个实施方式中,该调整单元530进一步,至少包括第二调整模块730。该第二调整模块730用于当需要针对任务进行动态调整时,在保证低优先级任务可以正常运行的基础上,将该低优先级任务减少或释放的资源,分配到需要资源的高优先级任务。
[0092]无需检查所有分配了硬件资源正在执行的任务形成的任务池是否已满,第二调整模块730直接在保证低优先级任务可以正常运行的前提下,将其占用的部分资源调整出来分配到该存在执行异常(速度过慢需要加速)的高优先级任务,从而保证该高优先级任务能够顺利、高效地执行(即加速该任务执行处理)。
[0093]在一个实施方式中,该第二调整模块730进一步,至少还包括如图8所示的优先级任务查找模块810和第二调整子模块820。
[0094]其中,优先级任务查找模块810,用于基于监控获得的任务执行状态,从确定执行存在异常的任务中找出高优先级的任务,以及从确定执行正常的任务中找出低优先级的任务。该模块具体的处理和功能可以参见对步骤S331的具体描述。
[0095]其中,第二调整子模块820,用于基于确定的存在异常的高优先级任务和正常的低优先级任务,在保证低优先级任务的正常执行的基础上,将低优先级任务的部分资源释放和/或减少,以分配给存在异常的高优先级任务。该模块具体的处理和功能可以参见对步骤S332的具体描述。
[0096]由于本发明系统对应的实施例中所涉及模块和结构实现的处理及功能基本相应于前述的各方法相关的实施例,参见图1-4,故系统的实施例的描述中未详尽之处,可以参见前述方法的实施例中的相关说明,在此不做赘述。
[0097]本发明的一种视频分析任务的调度方法及系统,能够保证任务被切分成若干子任务后下发给集群执行,并且,当任务执行过程中遇到问题时,需要对任务进行动态调整,如: 能实现在低优先级任务不失败的前提下,自动调整所分配给任务的硬件资源等,达到让高优先级任务充分利用资源、自动负载均衡的目的,进而有效地避免了出现由于硬件资源异常导致高优先级任务长时间运行的情况。
[0098]应当理解的是,本发明的上述【具体实施方式】仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
【主权项】
1.一种视频分析任务的调度方法,其特征在于,所述方法包括:评估接收到的视频分析任务后,将视频分析任务下发到集群执行;实时监控任务执行的状态,确定是否需要针对任务进行动态调整;以及当需要针对任务进行动态调整时,根据任务优先级,为任务调整分配的资源,其中,所 述调整分配的资源是以保证低优先级的任务能够正常执行为前提,将所述低优先级的任务 的部分资源提供给需要更多资源的高优先级的任务。2.根据权利要求1所述的方法,其特征在于,所述评估接收到的视频分析任务后,将视 频分析任务下发到集群执行的步骤包括:对接收的视频分析任务进行分析以确定该视频分析任务的执行时间;根据所述分析确定的该视频分析任务的执行时间,确定将所述任务整体或将所述任务 按照时间片方式切分成若干个子任务后,下发到集群以执行。3.根据权利要求2所述的方法,其特征在于,所述将视频分析任务下发到集群以执行 的步骤包括:基于所述分析确定的视频分析任务的执行时间和预设的任务时间阈值,将该视频分析 任务切分成若干个子任务或将该视频分析任务整体下发到集群以执行。4.根据权利要求1所述的方法,其特征在于,所述实时监控任务执行的状态的步骤中 的任务执行的状态包括:任务的执行时间和/或执行任务的资源;当任务的执行时间超过预期执行时间,和/或执行任务的资源出现异常,则表明对该 任务需要进行动态调整。5.根据权利要求4所述的方法,其特征在于,所述实时监控任务执行的状态的步骤包 括:实时检查任务的执行时间和/或执行任务的资源状态;当监控到该任务的执行时间未超过预期执行时间,且执行该任务的硬件资源也未出现 异常则表明该任务运行正常;当监控到该任务的执行时间超过预期执行时间,和/或,执行该任务的硬件资源出现 异常,则表明对该任务需要进行动态调整。6.根据权利要求1所述的方法,其特征在于,所述为任务调整分配的资源的步骤包括: 当需要针对任务进行动态调整时,检查所有分配了硬件资源正在执行的任务所形成的任务池是否已满;如果任务池未满,则将空余的资源分配到需要资源的高优先级任务,以保证该任务的 执行;如果任务池已满,则在保证低优先级任务可以正常运行的基础上,将该低优先级任务 减少或释放的资源,分配到需要资源的高优先级任务。7.根据权利要求1所述的方法,其特征在于,所述为任务调整分配的资源的步骤包括: 当需要针对任务进行动态调整时,在保证低优先级任务可以正常运行的基础上,将该低优先级任务减少或释放的资源,分配到需要资源的高优先级任务。8.根据权利要求6或7所述的方法,其特征在于,所述将该低优先级任务减少或释放的 资源,分配到需要资源的高优先级任务的步骤包括:基于监控获得的任务执行状态,从确定执行存在异常的任务中找出高优先级的任务,以及从确定执行正常的任务中找出低优先级的任务; 基于确定的存在异常的高优先级任务和正常的低优先级任务,在保证低优先级任务的正常执行的基础上,将低优先级任务的部分资源释放和/或减少,以分配给存在异常的高优先级任务。9.根据权利要求8所述的方法,其特征在于,还包括: 所述高优先级任务为具备高优先级且执行时间大于标准时间的任务; 所述低优先级任务为具备低优先级且执行时间不大于标准时间的任务。10.一种视频分析任务的调度系统,其特征在于,所述系统包括: 评估单元(510),用于评估接收到的视频分析任务后,将视频分析任务下发到集群执行; 监控单元(520),连接到所述评估单元(510),用于实时监控任务执行的状态,确定是否需要针对任务进行动态调整;和 调整单元(530),连接到所述监控单元(520),用于当需要针对任务进行动态调整时,根据任务优先级,为任务调整分配的资源,其中,所述调整分配的资源是以保证低优先级的任务能够正常执行为前提,将所述低优先级的任务的部分资源提供给需要更多资源的高优先级的任务。11.根据权利要求10所述的系统,其特征在于,所述评估单元(510)至少包括分析模块(610)和下发模块(620);其中, 所述分析模块(610)用于对接收的视频分析任务进行分析以确定该视频分析任务的执行时间; 所述下发模块(620)用于根据确定的所述该视频分析任务的执行时间,确定将所述任务整体或将所述任务按照时间片方式切分成若干个子任务后,下发到集群以执行。
【文档编号】G06F9/50GK106033371SQ201510112685
【公开日】2016年10月19日
【申请日】2015年3月13日
【发明人】周明耀, 浦世亮, 闫春, 厉昕, 唐金泉
【申请人】杭州海康威视数字技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1