一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

资源分配方法、资源分配装置、电子设备及存储介质与流程

2022-08-13 14:09:34 来源:中国专利 TAG:


1.本技术涉及人工智能技术领域,尤其涉及一种资源分配方法、资源分配装 置、电子设备及存储介质。


背景技术:

2.目前,在对多个用户进行集群资源分配时,常常是每个用户占用一个队列 资源,这一方式往往容易使得集群资源无法均衡地被利用,影响任务处理效率, 因此,如何提高资源利用的均衡性,加快任务处理的速度,成为了亟待解决的 技术问题。


技术实现要素:

3.本技术实施例的主要目的在于提出一种资源分配方法、资源分配装置、电 子设备及存储介质,旨在提高资源利用的均衡性和任务的处理效率。
4.为实现上述目的,本技术实施例的第一方面提出了一种资源分配方法,所 述方法包括:
5.获取目标任务的执行状态和原始队列;其中,所述原始队列是所述目标任 务所处的队列;
6.获取所述执行状态处于阻塞状态的任务需求资源和空闲资源数据;其中, 所述任务需求资源为执行所述目标任务所需要的资源,所述空闲资源数据为空 闲队列的资源数据,所述空闲队列是空闲的队列;
7.根据所述任务需求资源和所述空闲资源数据计算所述目标任务的需求占比, 得到资源占用数据;
8.根据所述资源占用数据对所述空闲队列进行筛选处理,得到目标队列;
9.按照预设的分配规则将所述目标任务分配至所述目标队列中;
10.获取所述目标任务的当前运行状态以及所述原始队列的当前资源数据;
11.根据所述当前运行状态、所述任务需求资源以及所述当前资源数据,将所 述目标任务分配至所述原始队列或者使所述目标队列保持在所述目标队列。
12.在一些实施例,所述资源占用数据包括核数占用比率和资源占用比率,所 述根据所述任务需求资源和所述空闲资源数据计算所述目标任务的需求占比, 得到资源占用数据的步骤,包括:
13.对所述任务需求资源进行特征提取,得到所述目标任务的核数参数和内存 参数;
14.对所述空闲资源数据进行特征提取,得到每一所述空闲队列的可用资源参 数和可用核数参数;
15.根据所述核数参数和所述可用核数参数进行核数占用计算,得到所述核数 占用比率;
16.根据所述内存参数和所述可用资源参数进行内存占用计算,得到所述资源 占用比率。
17.在一些实施例,所述根据所述资源占用数据对所述空闲队列进行筛选处理, 得到目标队列的步骤,包括:
18.比对所述核数占用比率和预设的第一阈值,并比对所述资源占用比率和预 设的第二阈值,得到比对结果;
19.根据所述比对结果对所述空闲队列进行筛选处理,得到所述目标队列。
20.在一些实施例,所述按照预设的分配规则将所述目标任务分配至所述目标 队列中的步骤,包括:
21.获取所述目标队列的当前任务数量;
22.将所述目标任务分配至所述当前任务数量最少的所述目标队列中。
23.在一些实施例,所述按照预设的分配规则将所述目标任务分配至所述目标 队列中的步骤,包括:
24.获取所述目标队列的资源池类型以及所述目标任务的任务类型;
25.对所述资源池类型和所述任务类型进行匹配度计算,得到匹配值,其中, 所述匹配值用于表征所述目标队列的队列资源与所述目标任务所需要的运行资 源的适合程度;
26.根据所述匹配值从所述目标队列筛选出最终队列,并将所述目标任务分配 至所述最终队列,其中,所述最终队列为所述目标队列的其中一个队列。
27.在一些实施例,所述根据所述当前运行状态、所述任务需求资源以及所述 当前资源数据,将所述目标任务分配至所述原始队列或者使所述目标队列保持 在所述目标队列的步骤,包括:
28.若所述当前运行状态为等待状态,则根据所述当前资源数据以及所述任务 需求数据进行资源占用计算,得到当前资源占用率;
29.根据所述当前资源占用率,将所述目标任务分配至所述原始队列或者使所 述目标队列保持在所述目标队列。
30.在一些实施例,所述获取所述执行状态处于阻塞状态的任务需求资源和空 闲资源数据的步骤,包括:
31.根据所述目标任务的等待时长与预设时间阈值,确定所述执行状态处于阻 塞状态的目标任务,得到阻塞任务;
32.通过网络爬虫的方式获取所述空闲资源数据以及所述阻塞任务的任务需求 资源。
33.为实现上述目的,本技术实施例的第二方面提出了一种资源分配装置,所 述装置包括:
34.第一获取模块,用于获取目标任务的执行状态和原始队列;其中,所述原 始队列是所述目标任务所处的队列;
35.数据获取模块,用于获取所述执行状态处于阻塞状态的任务需求资源和空 闲资源数据;其中,所述任务需求资源为执行所述目标任务所需要的资源,所 述空闲资源数据为空闲队列的资源数据,所述空闲队列是空闲的队列;
36.计算模块,用于根据所述任务需求资源和所述空闲资源数据计算所述目标 任务的需求占比,得到资源占用数据;
37.筛选模块,用于根据所述资源占用数据对所述空闲队列进行筛选处理,得 到目标
队列;
38.调度模块,用于按照预设的分配规则将所述目标任务分配至所述目标队列 中;
39.第二获取模块,用于获取所述目标任务的当前运行状态以及所述原始队列 的当前资源数据;
40.处理模块,用于根据所述当前运行状态、所述任务需求资源以及所述当前 资源数据,将所述目标任务分配至所述原始队列或者使所述目标队列保持在所 述目标队列。
41.为实现上述目的,本技术实施例的第三方面提出了一种电子设备,所述电 子设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的 程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述 程序被所述处理器执行时实现上述第一方面所述的方法。
42.为实现上述目的,本技术实施例的第四方面提出了一种存储介质,所述存 储介质为计算机可读存储介质,用于计算机可读存储,所述存储介质存储有一 个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实 现上述第一方面所述的方法。
43.本技术提出的资源分配方法、资源分配装置、电子设备及存储介质,其通 过获取目标任务的执行状态和原始队列,并获取执行状态处于阻塞状态的任务 需求资源和空闲资源数据,这样能够及时地辨识出存在阻塞的队列以及处于阻 塞状态的目标任务,以便调整目标任务的所在队列,尽可能地缩短目标任务的 等待时间,提高任务处理效率。进一步地,根据任务需求资源和空闲资源数据 计算目标任务的需求占比,得到资源占用数据;根据资源占用数据对空闲队列 进行筛选处理,得到目标队列,进而按照预设的分配规则将目标任务分配至目 标队列中,能够根据不同空闲队列的资源情况,及时对目标任务的位置调整, 将处于阻塞状态的目标任务分配至合适的目标队列,并利用目标队列的资源来 处理目标任务,从而能够较为均衡地利用每个队列的资源,有效地避免资源闲 置和任务阻塞的情况出现,提高任务的处理效率。进一步地,本技术还会获取 目标任务的当前运行状态以及原始队列的当前资源数据,并根据当前运行状态、 任务需求资源以及当前资源数据,将目标任务分配至原始队列或者使目标队列 保持在目标队列,能够较为灵活地根据目标任务的当前运行状态和原始队列的 当前资源数据对目标任务的位置进行调整,能够合理地利用原始队列的资源, 并且进一步地提高任务的处理效率。
附图说明
44.图1是本技术实施例提供的资源分配方法的流程图;
45.图2是图1中的步骤s102的流程图;
46.图3是图1中的步骤s103的流程图;
47.图4是图1中的步骤s104的流程图;
48.图5是图1中的步骤s105的流程图;
49.图6是图1中的步骤s105的另一流程图;
50.图7是图1中的步骤s107的流程图;
51.图8是本技术实施例提供的资源分配装置的结构示意图;
52.图9是本技术实施例提供的电子设备的硬件结构示意图。
具体实施方式
53.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅 用以解释本技术,并不用于限定本技术。
54.需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示 出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程 图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术 语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序 或先后次序。
55.除非另有定义,本技术所使用的所有的技术和科学术语与属于本技术的技 术领域的技术人员通常理解的含义相同。本技术中所使用的术语只是为了描述 本技术实施例的目的,不是旨在限制本技术。
56.首先,对本技术中涉及的若干名词进行解析:
57.人工智能(artificial intelligence,ai):是研究、开发用于模拟、延伸 和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学;人工智 能是计算机科学的一个分支,人工智能企图了解智能的实质,并生产出一种新 的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、 语言识别、图像识别、自然语言处理和专家系统等。人工智能可以对人的意识、 思维的信息过程的模拟。人工智能还是利用数字计算机或者数字计算机控制的 机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结 果的理论、方法、技术及应用系统。
58.集群(cluster):集群是一组相互独立的、通过高速网络互联的计算机, 它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用 时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。
59.容器调度器(capacity scheduler):是一种多用户调度器,它以队列为 单位划分资源,每个队列可设定一定比例的资源最低保证和使用上限,同时, 每个用户也可设定一定的资源使用上限以防止资源滥用。而当一个队列的资源 有剩余时,可暂时将剩余资源共享给其他队列。容器调度器允许多个组织共享 整个集群,每个组织被配置一个专门的队列,每个队列分配整个集群资源的一 部分,队列内部采用单队列。容器调度器主要有以下几个特点:
60.(1)容量保证,管理员可为每个队列设置资源最低保证和资源使用上限, 而所有提交到该队列的应用程序共享这些资源;
61.(2)灵活性,如果一个队列中的资源有剩余,可以暂时共享给那些需要资 源的队列,而一旦该队列有新的应用程序提交,则其他队列释放的资源会归还 给该队列。
62.(3)多重租赁,支持多用户共享集群和多应用程序同时运行。为防止单个 应用程序、用户或者队列独占集群中的资源,管理员可为之增加多重约束(比 如单个应用程序同时运行的任务数等)。
63.(4)接口安全保证,每个队列有严格的acl列表规定它的访问用户,每个 用户可指定哪些用户允许查看自己应用程序的运行状态或者控制应用程序,此 外,管理员可指定队列管理员和集群系统管理员。
64.(5)动态更新配置文件,管理员可根据需要动态修改各种配置参数,以实 现在线
集群管理。
65.核数:指cpu的核心数量,如双核、四核、八核等,核数越高,能同时进 行的任务就越多,效率就越高。
66.内存(memory):是计算机的重要部件,也称内存储器和主存储器,它用于 暂时存放cpu中的运算数据,以及与硬盘等外部存储器交换的数据。
67.目前,在对多个用户进行集群资源分配时,常常是每个用户占用一个队列 资源,例如,在同一个集群中,设置有多个队列,每个用户占用一个队列资源, 当某一时间段内,某一个用户需要运行大量的任务时会导致队列资源的占用较 大,同时任务的等待时间也会相对较长,而此时其他队列的队列资源处于空闲 状态,这样往往容易造成集群资源利用的不均衡,影响任务处理效率。因此, 如何提高资源利用的均衡性,加快任务处理的速度,成为了亟待解决的技术问 题。
68.基于此,本技术实施例提供了一种资源分配方法、资源分配装置、电子设 备及存储介质,旨在提高资源利用的均衡性和任务处理的效率。
69.本技术实施例提供的资源分配方法、资源分配装置、电子设备及存储介质, 具体通过如下实施例进行说明,首先描述本技术实施例中的资源分配方法。
70.本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中, 人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机 控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得 最佳结果的理论、方法、技术及应用系统。
71.人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布 式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件 技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、 自然语言处理技术以及机器学习/深度学习等几大方向。
72.本技术实施例提供的资源分配方法,涉及人工智能技术领域。本技术实施 例提供的资源分配方法可应用于终端中,也可应用于服务器端中,还可以是运 行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板 电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器, 也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置 成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中 间件服务、域名服务、安全服务、cdn以及大数据和人工智能平台等基础云计算 服务的云服务器;软件可以是实现资源分配方法的应用等,但并不局限于以上 形式。
73.本技术可用于众多通用或专用的计算机系统环境或配置中。例如:个人计 算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、 基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、 大型计算机、包括以上任何系统或设备的分布式计算环境等等。本技术可以在 由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般 地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、 组件、数据结构等等。也可以在分布式计算环境中实践本技术,在这些分布式 计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式 计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介 质中。
74.图1是本技术实施例提供的资源分配方法的一个可选的流程图,图1中的 方法可
以包括但不限于包括步骤s101至步骤s107。
75.步骤s101,获取目标任务的执行状态和原始队列;其中,原始队列是目标 任务所处的队列;
76.步骤s102,获取执行状态处于阻塞状态的任务需求资源和空闲资源数据; 其中,任务需求资源为执行目标任务所需要的资源,空闲资源数据为空闲队列 的资源数据,空闲队列是空闲的队列;
77.步骤s103,根据任务需求资源和空闲资源数据计算目标任务的需求占比, 得到资源占用数据;
78.步骤s104,根据资源占用数据对空闲队列进行筛选处理,得到目标队列;
79.步骤s105,按照预设的分配规则将目标任务分配至目标队列中;
80.步骤s106,获取目标任务的当前运行状态以及原始队列的当前资源数据;
81.步骤s107,根据当前运行状态、任务需求资源以及当前资源数据,将目标 任务分配至原始队列或者使目标队列保持在目标队列。
82.本技术实施例所示意的步骤s101至步骤s107,通过获取目标任务的执行状 态和原始队列,并获取执行状态处于阻塞状态的任务需求资源和空闲资源数据, 这样能够及时地辨识出存在阻塞的队列以及处于阻塞状态的目标任务,以便调 整目标任务的所在队列,尽可能地缩短目标任务的等待时间,提高任务处理效 率。进一步地,根据任务需求资源和空闲资源数据计算目标任务的需求占比, 得到资源占用数据;根据资源占用数据对空闲队列进行筛选处理,得到目标队 列,进而按照预设的分配规则将目标任务分配至目标队列中,能够根据不同空 闲队列的资源情况,及时对目标任务的位置调整,将处于阻塞状态的目标任务 分配至合适的目标队列,并利用目标队列的资源来处理目标任务,从而能够较 为均衡地利用每个队列的资源,有效地避免资源闲置和任务阻塞的情况出现, 提高任务的处理效率。进一步地,本技术还会获取目标任务的当前运行状态以 及原始队列的当前资源数据,并根据当前运行状态、任务需求资源以及当前资 源数据,将目标任务分配至原始队列或者使目标队列保持在目标队列,能够较 为灵活地根据目标任务的当前运行状态和原始队列的当前资源数据对目标任务 的位置进行调整,能够合理地利用原始队列的资源,并且进一步地提高任务的 处理效率。
83.在一些实施例的步骤s101中,可以在集群中设置监控脚本,通过监控脚本 来监控集群中每一队列的资源状态以及每一队列的目标任务的执行状态,其中, 目标任务的执行状态包括等待状态、运行状态以及完成状态,为了方便地对目 标任务进行分配,还需要通过监控脚本获取原始队列,该原始队列为目标任务 所处的队列。此外,在通过监控脚本获取目标任务的执行状态时,还可以获取 目标任务的任务id,该任务id为目标任务的唯一标识,能够根据任务id来确 定目标任务的所在队列以及该目标任务的当前运行状态,以及通过任务id提取 目标任务的基本信息,其中,任务id一般以字符串的形式表示。
84.需要说明的是,在本技术实施例中,集群一般为yarn集群,资源调度器一 般配置为capacity schedule调度器(容器调度器),通过容器调度器能够使 得多个用户共享一个集群,并且设置多个队列,每个用户占用一个队列来运行 自己的任务,满足任务处理的独立性;同时,通过容器调度器也可以对每个队 列分配一定的弹性资源,从而提高集群资源的使用效率。
85.请参阅图2,在一些实施例中,步骤s102可以包括但不限于包括步骤s201 至步骤s202:
86.步骤s201,根据目标任务的等待时长与预设时间阈值,确定执行状态处于 阻塞状态的目标任务,得到阻塞任务;
87.步骤s202,通过网络爬虫的方式获取空闲资源数据以及阻塞任务的任务需 求资源。
88.在一些实施例的步骤s201中,预设时间阈值可以根据实际的业务需求进行 设置,等待时长为目标任务处于等待状态的时间长度,例如,预设时间阈值为5 分钟,比对目标任务处于等待状态的时长与预设时间阈值,若目标任务处于等 待状态的时长超过5分钟,表明该目标任务的等待时间过长,任务运行效率较 低,则确定该目标任务为执行状态处于阻塞状态,将该目标任务作为阻塞任务。
89.在一些实施例的步骤s202中,通过预设数据源,并通过编写网络爬虫的方 式在预设数据源上有目标地进行数据爬取,得到任务需求资源以及空闲资源, 其中,任务需求资源为执行目标任务所需要的资源,空闲资源数据为空闲队列 的资源数据,空闲队列是空闲的队列,编写网络爬虫可以是脚本形式,也可以 是其他,预设数据源可以是当前集群对应的数据平台或者集群控制中心等,不 做限制。
90.需要说明的是,任务需求资源包括执行目标任务所需要的核心数量(即核 数参数)、内存参数以及目标任务的任务id等等,空闲队列的资源数据包括空 闲队列的队列信息、可用资源参数以及可用核数参数等等。
91.请参阅图3,在一些实施例中,资源占用数据包括核数占用比率和资源占用 比率,步骤s103可以包括但不限于包括步骤s301至步骤s304:
92.步骤s301,对任务需求资源进行特征提取,得到目标任务的核数参数和内 存参数;
93.步骤s302,对空闲资源数据进行特征提取,得到每一空闲队列的可用资源 参数和可用核数参数;
94.步骤s303,根据核数参数和可用核数参数进行核数占用计算,得到核数占 用比率;
95.步骤s304,根据内存参数和可用资源参数进行内存占用计算,得到资源占 用比率。
96.在一些实施例的步骤s301中,根据任务需求资源的数据类型,从任务需求 资源中获取目标任务的核数参数和内存参数,具体地,数据类型包括资源类别、 属性类别等等,其中,资源类别主要包括目标任务运行所需的内存大小以及核 心数量等等,而属性类别主要包括目标任务的任务id,任务种类等等,任务种 类包括数据上传、文件外发等等,不限于此。通过这一步骤能够将任务需求资 源中属于资源类别的资源数据,得到目标任务的核数参数和内存参数。
97.在一些实施例的步骤s302中,通过监控脚本从整个集群的空闲资源数据中 获取每个空闲队列的可用资源参数和可用核数参数。
98.在一些实施例的步骤s303中,对核数参数和可用核数参数进行除法运算, 从而计算目标任务的核数占用情况,得到核数占用比率,其中,核数占用比率= 核数参数/可用核
数参数。
99.在一些实施例的步骤s304中,对内存参数和可用资源参数进行除法运算, 从而计算目标任务的内存占用情况,得到资源占用比率,其中,资源占用比率= 内存参数/可用资源参数。
100.通过上述步骤s301至步骤s304能够方便地预估出目标任务在每一空闲队 列中的资源占用情况,以便从空闲队列中筛选出合适的队列为目标任务提供运 行所需的资源。
101.请参阅图4,在一些实施例中,步骤s104可以包括但不限于包括步骤s401 至步骤s402:
102.步骤s401,比对核数占用比率和预设的第一阈值,并比对资源占用比率和 预设的第二阈值,得到比对结果;
103.步骤s402,根据比对结果对空闲队列进行筛选处理,得到目标队列。
104.在一些实施例的步骤s401中,预设的第一阈值和第二阈值可以根据实际的 业务需求进行设置,不做限制,例如,第一阈值和第二阈值均为70%。则比对目 标任务在每一空闲队列中的核数占用比率是否超过70%,资源占用比率是否超过 70%,从而得到比对结果。
105.在一些实施例的步骤s402中,根据核数占用比率和预设的第一阈值的大小 关系以及资源占用比率和预设的第二阈值的大小关系,本技术实施例的比对结 果包括第一结果、第二结果、第三结果以及第四结果。
106.具体地,第一结果为目标队列在空闲队列中的核数占用比率不超过第一阈 值,且资源占用比率不超过第二阈值,则表明该空闲队列能够容纳目标任务正 常运行,将该目标任务分配至该空闲队列不会造成资源的过大占用,不会出现 阻塞情况,则将该空闲队列作为目标队列。
107.第二结果为目标队列在空闲队列的核数占用比率超过第一阈值,但资源占 用比率不超过第二阈值,则表明将该目标任务分配至该空闲队列可能会造成资 源的过大占用,可能出现阻塞状态,因此,不适合将该空闲队列作为目标队列。
108.第三结果为目标队列在空闲队列的核数占用比率不超过第一阈值,但资源 占用比率超过第二阈值,则表明将该目标任务分配至该空闲队列可能会造成资 源的过大占用,可能出现阻塞状态,因此,不适合将该空闲队列作为目标队列。
109.第四结果为目标队列在空闲队列的核数占用比率超过第一阈值,且资源占 用比率超过第二阈值,表明该目标队列不能容纳目标任务正常运行,将该目标 任务分配至该空闲队列会造成资源的过大占用,不适合将该空闲队列作为目标 队列。
110.例如,第一阈值和第二阈值均为70%,比对目标任务在每一空闲队列中的核 数占用比率是否超过70%,资源占用比率是否超过70%,核数占用比率不超过70%, 且资源占用比率不超过70%的空闲队列作为目标队列,其中,目标队列可以用于 提供目标任务正常运行所需要的资源。
111.请参阅图5,在一些实施例中,步骤s105可以包括但不限于包括步骤s501 至步骤s502:
112.步骤s501,获取目标队列的当前任务数量;
113.步骤s502,将目标任务分配至当前任务数量最少的目标队列中。
114.在一些实施例的步骤s501中,由于目标队列可能为一个或者多个,因此, 为了更好地利用集群资源,提高任务处理效率,需要获取目标队列的当前任务 数量,其中,当前任务数量为目标队列中存在的任务个数。
115.在一些实施例的步骤s502中,若某一目标队列的当前任务数量越多,将目 标任务分配至该目标队列,则目标任务等待的时间会较长,影响目标任务的处 理效率,因此,在存在多个目标队列可以选择时,优先选择将目标任务分配至 当前任务数量最少的目标队列中,从而使得目标任务可以较快地执行,提高目 标任务的处理效率。
116.请参阅图6,在一些实施例,步骤s105包括但不限于包括步骤s601至步骤 s603:
117.步骤s601,获取目标队列的资源池类型以及目标任务的任务类型;
118.步骤s602,对资源池类型和任务类型进行匹配度计算,得到匹配值,其中, 匹配值用于表征目标队列的队列资源与目标任务所需要的运行资源的适合程度;
119.步骤s603,根据匹配值从目标队列筛选出最终队列,并将目标任务分配至 最终队列,其中,最终队列为目标队列的其中一个队列。
120.在一些实施例的步骤s601中,由于目标队列可能为一个或者多个,因此, 为了更好地利用集群资源,提高任务处理效率,需要获取目标队列的资源池类 型以及目标任务的任务类型,其中,目标队列的资源池类型可以根据不同用户 的需求进行设置,因而,不同用户占用的队列资源用于执行的任务会存在一定 的偏好差异,例如,资源池类型包括数据传输、数据核对等等,目标任务的任 务类型根据用户的实际需求确定,其中,任务类型包括文件传输、文件核对等 等。
121.在一些实施例的步骤s602中,可以根据预设的相似度算法(例如余弦相似 度算法等等)对资源池类型和任务类型进行匹配度计算,得到匹配值,匹配值 能够用于表征目标队列的队列资源与目标任务所需要的运行资源的适合程度, 通过匹配值的大小可以方便地反映出目标任务所能提供的资源类型与任务类型 的适配程度,匹配值越高,表明目标队列的资源更适合执行目标任务。
122.在一些实施例的步骤s603中,根据不同目标队列的匹配值的大小,从目标 队列筛选出最终队列,其中,最终队列为目标队列中的一个队列,且最终队列 的匹配值最大,即最终队列为队列资源与目标任务所需要的运行资源的适合程 度最高的目标队列,将目标任务分配至最终队列中,从而使得目标任务可以更 为合理地执行,提高目标任务的处理效果。
123.通过上述步骤s501至步骤s502,或者步骤s601至步骤s603能够根据不同 空闲队列的资源情况,及时对目标任务的位置调整,将处于阻塞状态的目标任 务分配至合适的目标队列,并利用目标队列的资源来处理目标任务,从而能够 较为均衡地利用每个队列的资源,有效地避免资源闲置和任务阻塞的情况出现, 提高任务的处理效率。
124.在一些实施例的步骤s106中,为了提高资源利用的合理性和任务处理效率, 可以每间隔预设的时间获取目标任务的当前运行状态以及原始队列的当前资源 数据,其中,预设的时间可以根据实际业务需求设置,例如,预设的时间为10 分钟。具体地,每间隔10分钟通过预设的监控脚本来监控目标任务的当前运行 状态,其中,目标任务的当前运行状态包括等待中、运行中或者已完成。在监 控目标任务的当前运行状态的同时,通过网络爬虫对预设的数据源进行数据爬 取,获取原始队列的当前资源数据,其中,当前资源数据包括当
前可用资源参 数。通过这一方式可以根据目标任务的当前运行状态以及原始队列的当前资源 数据,考虑是否将目标任务分配回到原始队列中运行,以提高资源占用的合理 性。
125.请参阅图7,在一些实施例中,步骤s107还可以包括但不限于包括步骤s701 至步骤s702:
126.步骤s701,若当前运行状态为等待状态,则根据当前资源数据以及任务需 求数据进行资源占用计算,得到当前资源占用率;
127.步骤s702,根据当前资源占用率,将目标任务分配至原始队列或者使目标 队列保持在目标队列。
128.在一些实施例的步骤s701中,为了提高资源利用的合理性和任务处理效率, 可以根据目标任务的当前运行状态以及原始队列的当前资源数据,考虑是否将 目标任务分配回到原始队列中运行。具体地,若目标任务的当前运行状态为等 待状态,则对当前资源数据中的当前可用资源参数以及任务需求数据中的内存 参数进行除法运算,计算目标任务对原始队列的当前资源的占用情况,得到当 前资源占用率,其中,当前资源占用率=内存参数/当前可用资源参数。
129.在一些实施例的步骤s702中,若目标任务的当前运行状态为等待状态,而 当前资源占用率大于1,则表明当前可用资源参数小于内存参数,原始队列的当 前资源不能满足目标任务的运行需求,因此,使目标任务保持在目标队列不变, 通过目标队列的资源来执行该目标任务。
130.若仅存在一个目标任务,则当该目标任务的当前运行状态为等待状态,且 当前资源占用率小于或者等于1时(即当前可用资源参数大于或者等于内存参 数),表明原始队列的当前资源满足目标任务的运行需求,则将该目标任务分 配回原始队列,通过原始队列的队列资源来执行该目标任务。
131.进一步地,为了减小调度的工作量,当存在多个的目标任务时,根据每一 目标任务的当前资源占用率的大小,筛选出当前资源占用率小于或者等于1的 目标任务,将筛选得到的目标任务中当前资源占用率最大的目标任务分配回原 始队列,通过原始队列的队列资源来执行该目标任务,其余的目标任务保持在 各自的目标队列不变。
132.此外,若目标任务的当前运行状态为运行中或者已完成时,则表明目标任 务已经在目标队列中执行,不必考虑将目标任务重新分配回原始队列。
133.在一些具体实施例中,为了减小计算量,提高处理效率,可以获取当前运 行状态为等待状态的目标任务的内存参数,并获取原始队列的当前资源数据中 的当前可用资源参数,直接比较内存参数与当前可用资源参数的大小,在内存 参数小于或者等于当前可用资源参数的目标任务中,选取内存参数与当前可用 资源参数差值最小的目标任务重新分配回原始队列,通过原始队列的队列资源 来执行该目标任务。
134.通过上述步骤s701至步骤s702能够较为灵活地根据目标任务的当前运行 状态和原始队列的当前资源数据对目标任务的位置进行调整,能够合理地利用 原始队列的资源,并且进一步地提高任务的处理效率。
135.本技术实施例的资源分配方法,其通过获取目标任务的执行状态和原始队 列,并获取执行状态处于阻塞状态的任务需求资源和空闲资源数据,这样能够 及时地辨识出存在阻塞的队列以及处于阻塞状态的目标任务,以便调整目标任 务的所在队列,尽可能地缩
短目标任务的等待时间,提高任务处理效率。进一 步地,根据任务需求资源和空闲资源数据计算目标任务的需求占比,得到资源 占用数据;根据资源占用数据对空闲队列进行筛选处理,得到目标队列,进而 按照预设的分配规则将目标任务分配至目标队列中,能够根据不同空闲队列的 资源情况,及时对目标任务的位置调整,将处于阻塞状态的目标任务分配至合 适的目标队列,并利用目标队列的资源来处理目标任务,从而能够较为均衡地 利用每个队列的资源,有效地避免资源闲置和任务阻塞的情况出现,提高任务 的处理效率。进一步地,本技术还会获取目标任务的当前运行状态以及原始队 列的当前资源数据,并根据当前运行状态、任务需求资源以及当前资源数据, 将目标任务分配至原始队列或者使目标队列保持在目标队列,能够较为灵活地 根据目标任务的当前运行状态和原始队列的当前资源数据对目标任务的位置进 行调整,能够合理地利用原始队列的资源,并且进一步地提高任务的处理效率。 本技术实施例的资源分配方法通过监控集群资源的使用情况以及任务阻塞情况, 能够方便地对阻塞任务进行资源分配,提高集群资源的使用效率,同时也能够 提高任务的运行效率,减少人工干预的成本。
136.请参阅图8,本技术实施例还提供一种资源分配装置,可以实现上述资源分 配方法,该装置包括:
137.第一获取模块801,用于获取目标任务的执行状态和原始队列;其中,原始 队列是目标任务所处的队列;
138.数据获取模块802,用于获取执行状态处于阻塞状态的任务需求资源和空闲 资源数据;其中,任务需求资源为执行目标任务所需要的资源,空闲资源数据 为空闲队列的资源数据,空闲队列是空闲的队列;
139.计算模块803,用于根据任务需求资源和空闲资源数据计算目标任务的需求 占比,得到资源占用数据;
140.筛选模块804,用于根据资源占用数据对空闲队列进行筛选处理,得到目标 队列;
141.调度模块805,用于按照预设的分配规则将目标任务分配至目标队列中;
142.第二获取模块806,用于获取目标任务的当前运行状态以及原始队列的当前 资源数据;
143.处理模块807,用于根据当前运行状态、任务需求资源以及当前资源数据, 将目标任务分配至原始队列或者使目标队列保持在目标队列。
144.在一些实施例中,数据获取模块802包括:
145.确定单元,用于根据目标任务的等待时长与预设时间阈值,确定执行状态 处于阻塞状态的目标任务,得到阻塞任务;
146.爬取单元,用于通过网络爬虫的方式获取空闲资源数据以及阻塞任务的任 务需求资源。
147.在一些实施例中,资源占用数据包括核数占用比率和资源占用比率,计算 模块803包括:
148.第一提取单元,用于对任务需求资源进行特征提取,得到目标任务的核数 参数和内存参数;
149.第二提取单元,用于对空闲资源数据进行特征提取,得到每一空闲队列的 可用资源参数和可用核数参数;
150.第一比率计算单元,用于根据核数参数和可用核数参数进行核数占用计算, 得到核数占用比率;
151.第二比率计算单元,用于根据内存参数和可用资源参数进行内存占用计算, 得到资源占用比率。
152.在一些实施例中,筛选模块804包括:
153.比对单元,用于比对核数占用比率和预设的第一阈值,并比对资源占用比 率和预设的第二阈值,得到比对结果;
154.筛选单元,用于根据比对结果对空闲队列进行筛选处理,得到目标队列。
155.在一些实施例中,调度模块805包括:
156.任务数量获取单元,用于获取目标队列的当前任务数量;
157.第一分配单元,用于将目标任务分配至当前任务数量最少的目标队列中。
158.在另一些实施例中,调度模块805包括:
159.类型获取单元,用于获取目标队列的资源池类型以及目标任务的任务类型;
160.匹配计算单元,用于对资源池类型和任务类型进行匹配度计算,得到匹配 值,其中,匹配值用于表征目标队列的队列资源与目标任务所需要的运行资源 的适合程度;
161.第二分配单元,用于根据匹配值从目标队列筛选出最终队列,并将目标任 务分配至最终队列,其中,最终队列为目标队列的其中一个队列。
162.在一些实施例中,处理模块807包括:
163.资源计算单元,用于若当前运行状态为等待状态,则根据当前资源数据以 及任务需求数据进行资源占用计算,得到当前资源占用率;
164.控制单元,用于根据当前资源占用率,将目标任务分配至原始队列或者使 目标队列保持在目标队列。
165.该资源分配装置的具体实施方式与上述资源分配方法的具体实施例基本相 同,在此不再赘述。
166.本技术实施例还提供了一种电子设备,电子设备包括:存储器、处理器、 存储在存储器上并可在处理器上运行的程序以及用于实现处理器和存储器之间 的连接通信的数据总线,程序被处理器执行时实现上述资源分配方法。该电子 设备可以为包括平板电脑、车载电脑等任意智能终端。
167.请参阅图9,图9示意了另一实施例的电子设备的硬件结构,电子设备包括:
168.处理器901,可以采用通用的cpu(centralprocessingunit,中央处理器)、 微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、 或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本技术实施 例所提供的技术方案;
169.存储器902,可以采用只读存储器(readonlymemory,rom)、静态存储设 备、动态存储设备或者随机存取存储器(randomaccessmemory,ram)等形式实现。 存储器902可以存储操作系统和其他应用程序,在通过软件或者固件来实现本 说明书实施例所提供的技术方案时,相关的程序代码保存在存储器902中,并 由处理器901来调用执行本技术实施例的资源分配方法;
170.输入/输出接口903,用于实现信息输入及输出;
171.通信接口904,用于实现本设备与其他设备的通信交互,可以通过有线方式 (例如
usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、 蓝牙等)实现通信;
172.总线905,在设备的各个组件(例如处理器901、存储器902、输入/输出接 口903和通信接口904)之间传输信息;
173.其中处理器901、存储器902、输入/输出接口903和通信接口904通过总 线905实现彼此之间在设备内部的通信连接。
174.本技术实施例还提供了一种存储介质,存储介质为计算机可读存储介质, 用于计算机可读存储,存储介质存储有一个或者多个程序,一个或者多个程序 可被一个或者多个处理器执行,以实现上述资源分配方法。
175.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序 以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器, 还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非 暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设 置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例 包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
176.本技术实施例提供的资源分配方法、资源分配装置、电子设备及存储介质, 其通过获取目标任务的执行状态和原始队列,并获取执行状态处于阻塞状态的 任务需求资源和空闲资源数据,这样能够及时地辨识出存在阻塞的队列以及处 于阻塞状态的目标任务,以便调整目标任务的所在队列,尽可能地缩短目标任 务的等待时间,提高任务处理效率。进一步地,根据任务需求资源和空闲资源 数据计算目标任务的需求占比,得到资源占用数据;根据资源占用数据对空闲 队列进行筛选处理,得到目标队列,进而按照预设的分配规则将目标任务分配 至目标队列中,能够根据不同空闲队列的资源情况,及时对目标任务的位置调 整,将处于阻塞状态的目标任务分配至合适的目标队列,并利用目标队列的资 源来处理目标任务,从而能够较为均衡地利用每个队列的资源,有效地避免资 源闲置和任务阻塞的情况出现,提高任务的处理效率。进一步地,本技术还会 获取目标任务的当前运行状态以及原始队列的当前资源数据,并根据当前运行 状态、任务需求资源以及当前资源数据,将目标任务分配至原始队列或者使目 标队列保持在目标队列,能够较为灵活地根据目标任务的当前运行状态和原始 队列的当前资源数据对目标任务的位置进行调整,能够合理地利用原始队列的 资源,并且进一步地提高任务的处理效率。本技术实施例的资源分配方法通过 监控集群资源的使用情况以及任务阻塞情况,能够方便地对阻塞任务进行资源 分配,提高集群资源的使用效率,同时也能够提高任务的运行效率,减少人工 干预的成本。
177.本技术实施例描述的实施例是为了更加清楚的说明本技术实施例的技术方 案,并不构成对于本技术实施例提供的技术方案的限定,本领域技术人员可知, 随着技术的演变和新应用场景的出现,本技术实施例提供的技术方案对于类似 的技术问题,同样适用。
178.本领域技术人员可以理解的是,图1-7中示出的技术方案并不构成对本申 请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或 者不同的步骤。
179.以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元 可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布 到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现 本实施例方案的目的。
180.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、 系统、
设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
181.本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第 四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后 次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申 请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语
ꢀ“
包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如, 包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列 出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、 产品或设备固有的其它步骤或单元。
182.应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个
”ꢀ
是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存 在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在 a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联 对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项 中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的 至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或
ꢀ“
a和b和c”,其中a,b,c可以是单个,也可以是多个。
183.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可 以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例 如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划 分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特 征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合 或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是 电性,机械或其它的形式。
184.上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为 单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者 也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部 单元来实现本实施例方案的目的。
185.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中, 也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元 中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的 形式实现。
186.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用 时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技 术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分 可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中, 包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设 备等)执行本技术各个实施例的方法的全部或部分步骤。而前述的存储介质包括: u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器 (random access memory,简称ram)、磁碟或者光盘等各种可以存储程序的介质。
187.以上参照附图说明了本技术实施例的优选实施例,并非因此局限本技术实 施例的权利范围。本领域技术人员不脱离本技术实施例的范围和实质内所作的 任何修改、等同替换和改进,均应在本技术实施例的权利范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献