CN110297693B - 一种分布式软件任务分配的方法及其*** - Google Patents
一种分布式软件任务分配的方法及其*** Download PDFInfo
- Publication number
- CN110297693B CN110297693B CN201910600692.6A CN201910600692A CN110297693B CN 110297693 B CN110297693 B CN 110297693B CN 201910600692 A CN201910600692 A CN 201910600692A CN 110297693 B CN110297693 B CN 110297693B
- Authority
- CN
- China
- Prior art keywords
- task
- distributed software
- tasks
- group
- matrix
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Multi Processors (AREA)
Abstract
本申请公开了一种分布式软件任务分配的方法及其***,其中分布式软件任务分配的方法具体包括以下步骤:响应于分布式软件的启动,建立分布式软件任务;根据分布式软件任务建立至少一个任务组;根据任务组选择物理机,并在物理机上建立虚拟机组完成任务组中的每个任务。本申请能够根据有效的为分布式软件中的任务选择对应的物理机及其服务器,而不是随机选取物理机进行任务的执行,降低了物理机及其服务器中的资源消耗,保证了分布式软件的正常运行。
Description
技术领域
本申请涉及软件领域,具体地,涉及一种分布式软件任务分配的方法及其***。
背景技术
现有技术中,随着互联思想的无处不在,分布式计算机应运而生,随之软件的规模也在不断增大,分布式应用程序也越来多,以往的单台服务器的模式已经无法满足使用需求,因此产生了利用分布式软件***进行多任务的并行处理。然而这种分布式软件处理任务虽然效率提高了,但是在分布式软件中执行一个并行程序需要将任务分配到不同的物理机中去执行,从而获取较高的***性能。然后在任务分配中,传统的分布式软件并不考虑任务在物理机中的分配情况,这样会导致物理机中某一服务器运行的资源过多而导致物理机服务器资源消耗过大而影响其处理性能。因此需要一种更强大的任务分配的方式,在不影响物理机的过多资源消耗的前提下,还能够保证和提高任务的执行效率。
发明内容
本申请的目的在于提供一种分布式软件任务分配的方法及其***,能够合理的对分布式软件中的任务进行分配并执行,降低了物理机对应服务器的资源消耗,同时提高了任务的执行速度,保证了分布式软件的正常运行。
为达到上述目的,本申请提供了一种分布式软件任务分配的方法,具体包括以下步骤:响应于分布式软件的启动,建立分布式软件任务;根据分布式软件任务建立至少一个任务组;根据任务组选择物理机,并在物理机上建立虚拟机组完成任务组中的每个任务。
如上的,其中,根据分布式软件的类型以及对应分布式软件中包含的任务建立分布式软件任务,分布式软件任务中包括至少一个任务。
如上的,其中,将超过指定通信量的多个任务分配在同一分布式软件任务中。
如上的,其中,按照分布式软件任务中包含的任务信息进行任务组的建立。
如上的,其中,任务信息中包括分布式软件任务需要的任务组个数、每个任务组中分布式软件任务的个数以及任务的执行情况、执行任务所需要的服务器类型以及执行任务时消耗的资源上限值。
如上的,其中,在根据任务组选择物理机之前,还包括以下子步骤:获取任务组中的任务信息;查找与任务信息对应的物理机。
如上的,其中,在利用虚拟机执行任务前,还包括以下子步骤:选取任务组中的多个任务进行执行;根据某一任务组中的任务的历史完成时间创建工作时间表;计算各任务在理想情况下所需要的执行时间。
如上的,其中,工作时间表用矩阵进行表示,若存在多个任务则工作时间表矩阵A表示为a11…a13代表任务组中任务1完成的历史时间,am1…amn代表任务组中最后一个任务完成的历史时间,a为常量,m表示矩阵A中的行,n表示矩阵A中的列。
如上的,其中,各个任务在理想情况下所需要的执行时间根据工作时间表中的时间进行计算;执行时间tm具体表示为 其中tm表示任务1所需要的最少时间,m代表上述矩阵中的行,n代表上述矩阵中的列,tm1表示矩阵中的第m行中第一列的数值,k表示任务组中包含任务的个数,tn2表示矩阵中的第n列中的第二个数的数值,min{tmn}表示m行n列中最小的数值,表示对任意整数n、m始终为n≠m,tmk表示第m行第k列的数值。
一种分布式软件任务分配的***,具有通用服务器的结构,具体包括物理机、任务组以及虚拟机组;其中物理机上运行了分布式软件,分布式软件中包括分布式软件任务;任务组,对多个分布式软件中包含的一个或多个任务进行规划和管理;虚拟机组,执行任务组中的一个或多个任务;***的处理器执行如上任一的分布式软件任务分配的方法,该方法以计算机指令的形式存储于该***的存储介质上。
本申请具有以下有益效果:
(1)本申请提供的分布式软件任务分配的方法及其***能够根据有效的为分布式软件中的任务选择对应的物理机及其服务器,而不是随机选取物理机进行任务的执行,降低了物理机及其服务器中的资源消耗,保证了分布式软件的正常运行。
(2)本申请提供的分布式软件任务分配的方法及其***能够在物理机中建立虚拟机组以完成任务的执行,并能够在指定时间间隔重新修改虚拟机组与任务的对应关系,保证了任务执行的有效性,同时提高了任务执行的速度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例提供的分布式软件任务分配的方法流程图;
图2是根据本申请实施例提供的分布式软件任务分配的***内部结构图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请是一种分布式软件任务分配的方法及其***。根据本申请,能够合理的对分布式软件中的任务进行分配并执行,降低了物理机对应服务器的资源消耗,同时提高了任务的执行速度,保证了分布式软件的正常运行。
如图1所示为本申请提供的分布式软件任务分配的方法流程图。
步骤S110:响应于分布式软件的启动,建立分布式软件任务。
在分布式软件启动后,可根据分布式软件的类型以及对应分布式软件中包含的任务建立分布式软件任务,具体地,分布式软件类型可分为分布式操作软件、分布式程序设计语言及其编译软件、分布式文件软件和分布式数据库软件等。
进一步地,根据分布式软件类型建立多个分布式软件任务,同一类型的分布式软件若包含不同任务,则根据任务的数量对应建立多个不同的分布式软件任务。
再进一步地,也可将多个任务分配在同一分布式软件任务中。例如多个任务之间需要较大的通信量,则可将该多个任务分配在同一分布式软件任务中。
示例性地,若分布式操作软件中包括三个并行任务,则可建立分布式软件任务1、分布式软件任务2、分布式软件任务3。若三个任务中某两个具有较大通信量,则可将该两个任务分配在同一分布式软件任务中,建立分布式软件任务1、分布式软件任务2。
步骤S120:根据分布式软件任务建立至少一个任务组。
按照分布式软件任务中包含的任务信息进行任务组的建立。
具体地,任务信息中包括分布式软件任务需要的任务组个数,每个任务组中分布式软件任务的个数以及该任务的执行情况,执行该任务所需要的服务器类型以及执行任务时消耗的资源上限值。其中任务组可包括一个或多个分布式软件任务。
步骤S130:根据任务组选择物理机,并在其上建立虚拟机组完成任务组中的每个任务。
其中选择物理机之前具体包括以下子步骤:
步骤D1:获取任务组中的任务信息。
步骤D2:查找与任务信息对应的物理机。
具体地,由于物理机上集成多个服务器,可根据任务信息中的执行任务所需要的服务器类型选择对应的物理机。
在选择物理机后,还包括以下子步骤:
步骤P1:根据任务的顺序开始启动某个任务组。
示例性地,多个任务中若任务1被优先要求启动,则优先启动该任务所在的任务组。
步骤P2:判断启动任务组后所需的资源是否超负荷。若资源的消耗超过任务信息中执行任务消耗的资源上限,则执行步骤P3。否则执行P4。
具体地,计算任务组启动后物理机对应的服务器的资源消耗情况,将服务器的实际消耗情况与任务信息中的执行任务时消耗的资源上限值进行对比。
步骤P3:再次选择物理机,选择物理机后执行步骤P2。
具体地,若判断没有能够选择的物理机,则执行步骤P5。
步骤P4:在该物理机上启动任务组,并执行步骤P6。
优选地,在启动任务组后,还包括,判断启动的该任务组是否为最后一个组,若不是最后一组则执行步骤P1,否则执行步骤P6。
步骤P5:发出任务组不能启动的通知。
进一步地,在发出通知后,还包括通知对任务进行拆分,将任务拆分为多个子任务,以降低服务器执行任务时的资源消耗。具体拆分方法可参考现有技术。
步骤P6:创建虚拟机组。
具体地,在物理机上创建虚拟机组以完成任务组中的每个分布式软件任务。虚拟机组中包括至少一个虚拟机。
其中虚拟机组与任务组中包含的任务存在一定的对应关系,该对应关系可以是任务执行的优先顺序,具体地,该对应关系可根据任务执行的时间在某一时间间隔后重新进行分配。
示例性地,由于一个虚拟机组可能对应执行一个或多个任务组,那么就需要对每个任务组中的每个任务进行优先排序,选出虚拟机组优先执行的任务,该虚拟机组与优先执行的任务便存在优先的对应关系。
具体地,在初始利用虚拟机组执行任务时,可随机执行某一任务组中的任务,在指定时间后,可重新修改任务与虚拟机组的对应关系,具体包括以下步骤:
步骤Q1:选取任务组中的多个任务进行执行。
步骤Q2:根据某一任务组中的任务的历史完成时间创建工作时间表。
优选地,工作时间表可用矩阵进行表示,以一个任务组中有三个任务举例,三个任务对应的工作时间表矩阵A可表示为:
其中工作时间表矩阵A为3*3矩阵,a11、a12、a13代表任务组中任务1完成的历史时间,a21、a22、a23代表任务组中任务2完成的历史时间,a31、a32、a33代表任务组中任务3完成的历史时间,a为常量。
优选地,该工作时间表矩阵中的排列顺序可按照执行任务的时间先后顺序进行排列。
进一步地,工作时间表矩阵还可根据任务组中任务的实际数量增加排序。
步骤Q2:计算各个任务在理想情况下所需要的执行时间。
具体的,可根据工作时间表中的时间进行计算。
具体为, 其中tm表示任务1所需要的最少时间,m代表上述矩阵中的行,n代表上述矩阵中的列,tm1表示矩阵中的第m行中第一列的数值,k表示任务组中包含任务的个数,tn2表示矩阵中的第n列中的第二个数的数值,min{tmn}表示m行n列中最小的数值。表示对任意整数n、m始终为n≠m,tmk表示第m行第k列的数值。
通过上述公式,可以计算出执行三个任务分别需要的的执行时间。三个任务按照所需要的执行时间的多少进行排序,用时最少的任务与该虚拟机组存在优先的对应关系,能够优先在虚拟机组中执行。
示例性地,若计算得出任务1的执行时间为28分钟,任务2的执行时间为30分钟,任务3的执行时间为40分钟,则将任务1与虚拟机组设置为第一对应关系,优先执行任务1,执行完成任务1后可分别执行任务2以及任务3。
本申请还包括提供分布式软件任务分配的***,该***具有通用服务器的结构,如图2所示,分布式软件备份的管理***其中包括了物理机201、任务组202以及虚拟机组203,其中物理机201上运行了分布式软件204,分布式软件204中包括分布式软件任务(图中未示出),任务组202用于对多个分布式软件中包含的一个或多个任务进行规划和管理。虚拟机组203用于执行任务组202中的一个或多个任务,***上的处理器执行如上所述的分布式软件任务分配的方法,该方法以计算机指令的形式存储于该***的存储介质上。
本申请具有以下有益效果:
(1)本申请提供的分布式软件任务分配的方法及其***能够根据有效的为分布式软件中的任务选择对应的物理机及其服务器,而不是随机选取物理机进行任务的执行,降低了物理机及其服务器中的资源消耗,保证了分布式软件的正常运行。
(2)本申请提供的分布式软件任务分配的方法及其***能够在物理机中建立虚拟机组以完成任务的执行,并能够在指定时间间隔重新修改虚拟机组与任务的对应关系,保证了任务执行的有效性,同时提高了任务执行的速度。
虽然当前申请参考的示例被描述,其只是为了解释的目的而不是对本申请的限制,对实施方式的改变,增加和/或删除可以被做出而不脱离本申请的范围。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (7)
1.一种分布式软件任务分配的方法,其特征在于,具体包括以下步骤:
响应于分布式软件的启动,建立分布式软件任务;
根据分布式软件任务建立至少一个任务组;
根据任务组选择物理机,并在物理机上建立虚拟机组完成任务组中的每个任务;
其中在利用虚拟机执行任务前,还包括以下子步骤:
选取任务组中的多个任务进行执行;
根据某一任务组中的任务的历史完成时间创建工作时间表;
计算各任务在理想情况下所需要的执行时间;
所述工作时间表用矩阵进行表示,若存在多个任务则工作时间表矩阵A表示为a11…a13代表任务组中任务1完成的历史时间,am1…amn代表任务组中最后一个任务完成的历史时间,a为常量,m表示矩阵A中的行,n表示矩阵A中的列;
2.如权利要求1所述的分布式软件任务分配的方法,其特征在于,根据分布式软件的类型以及对应分布式软件中包含的任务建立分布式软件任务,所述分布式软件任务中包括至少一个任务。
3.如权利要求2所述的分布式软件任务分配的方法,其特征在于,将超过指定通信量的多个任务分配在同一分布式软件任务中。
4.如权利要求1所述的分布式软件任务分配的方法,其特征在于,按照分布式软件任务中包含的任务信息进行任务组的建立。
5.如权利要求4所述的分布式软件任务分配的方法,其特征在于,任务信息中包括分布式软件任务需要的任务组个数、每个任务组中分布式软件任务的个数以及任务的执行情况、执行任务所需要的服务器类型以及执行任务时消耗的资源上限值。
6.如权利要求4所述的分布式软件任务分配的方法,其特征在于,在根据任务组选择物理机之前,还包括以下子步骤:
获取任务组中的任务信息;
查找与任务信息对应的物理机。
7.一种分布式软件任务分配的***,其特征在于,具有通用服务器的结构,具体包括物理机、任务组以及虚拟机组;
其中物理机上运行了分布式软件,分布式软件中包括分布式软件任务;
任务组,对多个分布式软件中包含的一个或多个任务进行规划和管理;
虚拟机组,执行任务组中的一个或多个任务;
***的处理器执行如权利要求1-6任一所述的分布式软件任务分配的方法,该方法以计算机指令的形式存储于该***的存储介质上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910600692.6A CN110297693B (zh) | 2019-07-04 | 2019-07-04 | 一种分布式软件任务分配的方法及其*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910600692.6A CN110297693B (zh) | 2019-07-04 | 2019-07-04 | 一种分布式软件任务分配的方法及其*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110297693A CN110297693A (zh) | 2019-10-01 |
CN110297693B true CN110297693B (zh) | 2020-07-28 |
Family
ID=68030282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910600692.6A Active CN110297693B (zh) | 2019-07-04 | 2019-07-04 | 一种分布式软件任务分配的方法及其*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110297693B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111381969B (zh) * | 2020-03-16 | 2021-10-26 | 北京康吉森技术有限公司 | 一种分布式软件的管理方法及其*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107168805A (zh) * | 2017-06-19 | 2017-09-15 | 成都鼎智汇科技有限公司 | 一种基于虚拟机的资源调度方法 |
CN107743611A (zh) * | 2015-04-29 | 2018-02-27 | 微软技术许可有限责任公司 | 动态云计算平台资源的最优分配 |
CN108399102A (zh) * | 2017-02-08 | 2018-08-14 | 阿里巴巴集团控股有限公司 | 一种资源分配方法和装置 |
CN109885377A (zh) * | 2018-11-23 | 2019-06-14 | ***股份有限公司 | 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073546B (zh) * | 2010-12-13 | 2013-07-10 | 北京航空航天大学 | 一种云计算环境中分布式计算模式下的任务动态调度方法 |
CN103164283B (zh) * | 2012-05-10 | 2018-08-10 | 上海兆民云计算科技有限公司 | 一种虚拟桌面***中虚拟化资源动态调度管理方法及*** |
CN106033373B (zh) * | 2015-03-11 | 2019-09-27 | 苏宁易购集团股份有限公司 | 一种云计算平台中虚拟机资源调度方法和调度*** |
CN106201655B (zh) * | 2016-06-30 | 2019-07-02 | 中国联合网络通信集团有限公司 | 虚拟机分配方法和虚拟机分配*** |
CN106681834A (zh) * | 2016-12-28 | 2017-05-17 | 上海优刻得信息科技有限公司 | 分布式计算方法、管理装置及*** |
US11273553B2 (en) * | 2017-06-05 | 2022-03-15 | Autodesk, Inc. | Adapting simulation data to real-world conditions encountered by physical processes |
-
2019
- 2019-07-04 CN CN201910600692.6A patent/CN110297693B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107743611A (zh) * | 2015-04-29 | 2018-02-27 | 微软技术许可有限责任公司 | 动态云计算平台资源的最优分配 |
CN108399102A (zh) * | 2017-02-08 | 2018-08-14 | 阿里巴巴集团控股有限公司 | 一种资源分配方法和装置 |
CN107168805A (zh) * | 2017-06-19 | 2017-09-15 | 成都鼎智汇科技有限公司 | 一种基于虚拟机的资源调度方法 |
CN109885377A (zh) * | 2018-11-23 | 2019-06-14 | ***股份有限公司 | 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度*** |
Also Published As
Publication number | Publication date |
---|---|
CN110297693A (zh) | 2019-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11803546B2 (en) | Selecting interruptible resources for query execution | |
US9940162B2 (en) | Realtime optimization of compute infrastructure in a virtualized environment | |
CN106033373B (zh) | 一种云计算平台中虚拟机资源调度方法和调度*** | |
US20050081208A1 (en) | Framework for pluggable schedulers | |
US9870269B1 (en) | Job allocation in a clustered environment | |
CN111381950A (zh) | 一种面向边缘计算环境基于多副本的任务调度方法和*** | |
US20070024898A1 (en) | System and method for executing job step, and computer product | |
CN108021435B (zh) | 一种基于截止时间的具有容错能力的云计算任务流调度方法 | |
US20050091654A1 (en) | Autonomic method, system and program product for managing processes | |
JPS58203558A (ja) | 計算機・記憶装置へのフアイル割り当て方式 | |
JPH09167141A (ja) | 負荷分散制御方法 | |
CN111338791A (zh) | 集群队列资源的调度方法、装置、设备及存储介质 | |
US8161485B2 (en) | Scheduling jobs in a plurality of queues and dividing jobs into high and normal priority and calculating a queue selection reference value | |
CN112181613B (zh) | 异构资源分布式计算平台批量任务调度方法及存储介质 | |
US7007150B2 (en) | Memory balancing and optimization services | |
CN105488134A (zh) | 大数据处理方法及大数据处理装置 | |
CN112231098A (zh) | 任务处理方法、装置、设备及存储介质 | |
CN113032102B (zh) | 资源重调度方法、装置、设备和介质 | |
CN113010315A (zh) | 资源分配方法及分配装置、计算机可读存储介质 | |
US20230004440A1 (en) | Allocating of computing resources for applications | |
CN113010286A (zh) | 并行任务调度方法、装置、计算机设备和存储介质 | |
CN110297693B (zh) | 一种分布式软件任务分配的方法及其*** | |
US20120059938A1 (en) | Dimension-ordered application placement in a multiprocessor computer | |
Chi et al. | Distribution-based query scheduling | |
CN110928659A (zh) | 一种具有自适应功能的数值水池***远程多平台接入方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |