CN108108241B - 一种用于分布式系统的满足可靠性需求的任务调度方法 - Google Patents
一种用于分布式系统的满足可靠性需求的任务调度方法 Download PDFInfo
- Publication number
- CN108108241B CN108108241B CN201810028362.XA CN201810028362A CN108108241B CN 108108241 B CN108108241 B CN 108108241B CN 201810028362 A CN201810028362 A CN 201810028362A CN 108108241 B CN108108241 B CN 108108241B
- Authority
- CN
- China
- Prior art keywords
- reliability
- task
- time
- real
- application
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提出一种用于分布式系统的满足应用可靠性需求的任务调度方法。本发明步骤:首先,计算应用中每一个任务在不同处理器上执行的可靠性,并对该可靠性按大小排序;然后,将每个任务在其可靠性最大的可用处理器上进行一次复制,得到每个任务的实时可靠性和应用的实时可靠性;第三,根据应用实时可靠性与可靠性需求的关系,按各任务的实时可靠性排序并依次进行一次复制,每次复制后更新该任务的实时可靠性和应用的实时可靠性,反复迭代更新直至应用的实时可靠性满足可靠性需求为止;最后,确定应用的最终可靠性,总冗余数,整体运行时间成本。本发明具有低冗余、高效率的优点,实用性强。
Description
技术领域
本发明涉及分布式系统领域,尤其涉及该领域中满足应用可靠性需求的任务调度方法。
背景技术
计算机行业的飞速发展推动着各领域不断向信息化、智能化迈进。随着任务种类和数量的剧增,早期的集中式系统已不能满足当前越来越高的任务需求。近年来,在处理器性能的增强和高速网络的普及的新趋势下,分布式系统以其运行稳定、工作高效、功能丰富等特点被广泛应用。任务的剧增伴随着处理器数量的增加,而在实际运行的过程中,每一个处理器均可能发生故障,无论服务提供者还是用户,都难以实时监控每一个处理器的工作状态并对其进行维护,因此,可靠性成为衡量一个分布式系统优劣的重要指标。如果可靠性问题得不到解决,会造成系统无法正常工作,甚至会造成灾难性的后果。
可靠的任务调度在分布式系统中起到了重要作用,它为系统的高效、稳定运行保驾护航。任务调度的可靠性是指任务在系统中被成功执行的可能性。基于复制的容错机制是提升可靠性的常用方法,即任务在选择一个最合适的处理器进行执行的同时,还会根据整个应用的可靠性需求去选择0个、1个或多个较合适的处理器进行复制备份,一旦当前处理器发生故障,该任务立即可以在备份处理器中继续执行,从而减小了执行失败的概率,提升了可靠性。应用可靠性的提升意味着应用被成功执行的概率更高,但同时也伴随着冗余的增加,对于用户而言,在花费相同的情况下,希望可靠性越高越好,但对于系统提供者,提升可靠性需要增加更多硬件和资源成本以解决冗余问题。可靠性与冗余的矛盾被认为是双标准问题,该问题的难度在于,无论优化两者中的哪一方,都必然会导致另一方情况的恶化。由于处理器故障的必然存在,任何一个应用的可靠性均不可能达到100%,因此,可靠性需求已经在一些功能安全性标准中被定义,如分布式汽车系统中的ISO26262、分布式航空电子系统中的DO-178C、工业软件系统中的IEC61508。在实际开发中,只要应用的实际可靠性不小于可靠性需求,该应用就被认为是可靠的。为了在保证用户可靠性需求的同时减轻因冗余而带来的成本,只能试图用尽可能小的冗余去满足可靠性需求,但得到理想的结果往往需要花费大量的计算时间。因此,找到一种能够满足可靠性需求的低冗余且高效率的任务调度方法是当前亟需解决的问题。
为了在保证可靠性的前提下最小化冗余,针对可靠性与冗余的关系被大量研究。其中一种思路是将应用的总可靠性需求转化为每一个任务的子可靠性需求,只要每一个任务都能满足各自的子需求,则总需求就可以被满足。该思路通常将还未分配的任务可靠性理想化,即假设这些任务的子可靠性已经足够高,以此减轻当前任务的子需求,从而减小了当前任务所需的副本数,该类方法的优点在于可以快速确定冗余数,但对于冗余数的优化程度不够理想。另一种思路,是对每一个任务进行试探性的复制(搜索),然后选出对应用可靠性提升贡献最大的任务进行实际复制,反复对所有任务进行以上操作,直至应用的可靠性满足可靠性目标,该类方法的优势是可以有效优化冗余数,但需要花费巨大的时间成本,影响系统的执行效率。
本发明结合两种思路的优点,并针对它们的不足进行改进,提出了一种满足可靠性需求的低冗余且高效率的解决方案。本发明与基于思路一的方法相比,在运算时间持平的同时冗余数优势明显,与基于思路二的方法相比,在冗余数持平的同时运算时间优势明显。
发明内容
针对现有技术的不足,本发明提出一种用于分布式系统的满足应用可靠性需求的任务调度方法,该方法能在保证应用可靠性需求的同时,减少备份所带来的冗余,且高效率的完成任务调度工作。
本发明通过以下方案实现:
步骤一、计算每一个任务在不同处理器上的可靠性,并按照大小排序,得到每一个任务复制时选择处理器的先后顺序;
步骤二、将每个任务在其可靠性最大的可用处理器上进行一次复制,得到每一个任务的实时可靠性和应用的实时冗余数,将各任务的实时可靠性相乘,得到应用的实时可靠性,若应用的实时可靠性满足可靠性需求,进入步骤四,否则进入步骤三;
步骤三、将各任务按实时可靠性由小到大进行排序,得到任务为提升应用可靠性而进行复制的先后顺序,对排序最高的任务,选择其可靠性最大的可用处理器进行一次复制,得到该任务新的实时可靠性和应用新的实时可靠性,将新的应用实时可靠性与可靠性需求对比,如不满足需求,按顺序依次对之后的任务进行同样的复制与判定操作,直到应用的实时可靠性满足可靠性需求为止,若所有任务按顺序进行复制后应用的实时可靠性仍不满足可靠性需求,则重复步骤三;
步骤四、确定应用的最终可靠性、总冗余数、运行时间成本。
本发明具有以下优点:
1、本发明所获取的应用实际可靠性大小合适,既能满足用户对于可靠性的需求,又可以最大限度降低服务商的成本;
2、本发明所获取的应用总冗余数低,可以有效减少不必要的备份所带来的多余的硬件与资源开销;
3、本发明所需要的运行处理时间短,能够以最高的效率完成任务调度,从而提升整个系统的运行效率。
附图说明
图1是本发明的实施流程图;
具体实施方式
实施例1
系统中有3个处理器uk(k=1,2,3),应用中有10个任务ni(i=1,2,…10),其中3个处理器的故障率分别为λ1=0.0010,λ2=0.0015,λ3=0.0018,可靠性需求为0.94,则任务在不同处理器上的执行时间为:
如,w1,2=16表示任务n1在处理器u2上的执行时间为16。
结合图1,本发明的具体实现步骤如下:
步骤一、计算每一个任务在不同处理器上的可靠性,并按照大小排序,得到每一个任务复制时选择处理器的先后顺序:
1)任务在处理器上执行的可靠性,计算公式如下:
2)任务的实时可靠性表示其经过复制后,成功完成执行的概率大小,即用绝对可靠的概率减去故障发生的概率,其计算公式如下:
3)结合已知条件参数及可靠性公式(1),计算出10个任务分别在3个处理器上的可靠性,生成10x3的二维数组存放任务在各处理器上可靠性的对应关系:
如,二维数组第一行中的0.98609754、0.97628571、0.98393051分别表示任务n1分别在处理器u1,u2,u3上执行的可靠性;
4)将每一个任务在不同处理器上的可靠性由大到小进行排序,即对二维数组中每一行的可靠性值由大到小进行排序,存入二维数组中取代之前的内容,如下所示:
得到排序后的二维数组,此二维数组中每一行存放可靠性值的顺序为每一个任务复制时选择处理器的实际顺序,在复制过程中,同一个处理器只能被同一个任务选择复制一次,未被该任务选择复制的处理器称为该任务的可用处理器。
步骤二、将每个任务在其可靠性最大的可用处理器上进行一次复制,得到每一个任务的实时可靠性和应用的实时冗余数,将各任务的实时可靠性相乘,得到应用的实时可靠性,若应用的实时可靠性满足可靠性需求,进入步骤四,否则进入步骤三:
1)将每一个任务复制到二维数组中各自可靠性排序最前的可用处理器中,通过公式(2)得到每一个任务的实时可靠性,即:
R(n1)=0.98609754 R(n6)=0.98708414
R(n2)=0.98708414 R(n7)=0.99302444
R(n3)=0.98906028 R(n8)=0.99501248;
R(n4)=0.98807171 R(n9)=0.98216103
R(n5)=0.98807171 R(n10)=0.98955493
2)将所有任务的R(ni)相乘,得到应用的实时可靠性,其计算公式如下:
3)根据已知的Rreq(G)=0.94,将Rreq(G)与R(G)进行比较,若满足要求R(G)≥Rreq(G)则结束,此时,10个任务各复制一次后,当前的应用实时可靠性为R(G)=0.89092057,此时R(G)≤Rreq(G)=0.94,所以要进行步骤三。
步骤三、将各任务按实时可靠性由小到大进行排序,得到任务为提升应用可靠性而进行复制的先后顺序,对排序最高的任务,选择其可靠性最大的可用处理器进行一次复制,得到该任务新的实时可靠性和应用新的实时可靠性,将新的应用实时可靠性与可靠性需求对比,如不满足需求,按顺序依次对之后的任务进行同样的复制与判定操作,直到应用的实时可靠性满足可靠性需求为止,若所有任务按顺序进行复制后应用的实时可靠性仍不满足可靠性需求,则重复步骤三:
1)将所有任务按当前的实时可靠性由小到大进行排序,得到各任务为提升应用可靠性而进行复制的先后顺序:
任务 | <sub>n9</sub> | <sub>n1</sub> | <sub>n2</sub> | <sub>n6</sub> | <sub>n4</sub> |
可靠性 | 0.98216103 | 0.98609754 | 0.98708414 | 0.98708414 | 0.98807171 |
任务 | <sub>n5</sub> | <sub>n3</sub> | <sub>n10</sub> | <sub>n7</sub> | <sub>n8</sub> |
可靠性 | 0.98807171 | 0.98906028 | 0.98955493 | 0.99302444 | 0.99501248 |
2)对排序最高的任务,选择其可靠性最大的可用处理器进行一次复制,得到该任务新的实时可靠性和应用新的实时可靠性,将新的应用实时可靠性与可靠性需求对比,如不满足可靠性需求,按顺序依次对之后的任务进行同样的复制与判定操作,直到总的可靠性满足可靠性需求为止:
步骤二的1)对每一个任务进行了一次复制,可求出应用当前的实时可靠性R(G)=0.89092057,且R(G)≤Rreq(G)=0.94,步骤三的1)给出了为提升应用可靠性的任务复制顺序,由公式(2)、(3)可知,每当一个任务完成复制后,该任务的实时可靠性和应用的实时可靠性都会增大,本例中,当n9,n1,n2,n6分别完成一次复制后,R(G)=0.94307235≥Rreq(G),即应用的实时可靠性已经满足可靠性需求;
3)将所有任务按先后顺序依次进行一次复制后,得到的应用实时可靠性如仍不满足可靠性需求,则将所有任务按当前新的实时可靠性由小到大重新进行排序,得到新的任务复制顺序;
4)重复2)、3)过程,直到应用的实时可靠性满足可靠性需求。
步骤四、确定应用的最终可靠性、总冗余数、运行时间成本:
1)确定应用的最终可靠性,由公式(2)、(3)可知,该应用最终的可靠性为R(G)=0.94307235;
2)确定应用的总冗余数,计算如下:
其中应用的总冗余数NR(G)等于所有任务的复制次数之和,由步骤三中2)可知,10个任务中,任务n9,n1,n2,n6复制2次,其他任务复制1次,应用的总冗余数NR(G)=14;
3)确定应用的运行时间成本,计算如下:
RT=FT-ST; (5)
其中,RT表示算法对应用中任务进行调度的时间成本,ST表示开始处理的时间,FT表示结束处理的时间。
Claims (5)
1.一种用于分布式系统的满足应用可靠性需求的任务调度方法,所述方法至少包含以下几个步骤:
步骤一、计算每一个任务在不同处理器上的可靠性,并按照大小排序,得到每一个任务复制时选择处理器的先后顺序;
步骤二、将每个任务在其可靠性最大的可用处理器上进行一次复制,得到每一个任务的实时可靠性和应用的实时冗余数,将各任务的实时可靠性相乘,得到应用的实时可靠性,若应用的实时可靠性满足可靠性需求,进入步骤四,否则进入步骤三;
步骤三、将各任务按实时可靠性由小到大进行排序,得到任务为提升应用可靠性而进行复制的先后顺序,对排序最高的任务,选择其可靠性最大的可用处理器进行一次复制,得到该任务新的实时可靠性和应用新的实时可靠性,将新的应用实时可靠性与可靠性需求对比,如不满足需求,按顺序依次对之后的任务进行同样的复制与判定操作,直到应用的实时可靠性满足可靠性需求为止,若所有任务按顺序进行复制后应用的实时可靠性仍不满足可靠性需求,则重复步骤三;
步骤四、确定应用的最终可靠性、总冗余数、运行时间成本。
2.根据权利要求1所述的用于分布式系统的满足应用可靠性需求的任务调度方法,其特征在于将每一个任务在各处理器上的可靠性进行排序的过程,至少还包括以下步骤:
S201.可靠性的计算如下所示:
式中用ni表示应用中的第i个任务,uk表示处理器集中的第k个处理器,wi,k表示任务ni在处理器uk上的执行时间,λk表示第k个处理器的故障率,计算每一个任务在不同处理器上的可靠性并通过二维数组r[x][y]保存,其中x表示任务数,y表示处理器数;
S202.任务的实时可靠性表示其经过复制后,成功完成执行的概率大小,即用绝对可靠的概率减去故障发生的概率,其计算公式如下:
S203.将每一个任务在不同处理器上的可靠性由大到小进行排序,即对二维数组中的每一行数据由大到小进行排序,排序后二维数组r[x][y]的第i行数据表示任务ni在各处理器上经由大到小排序后的可靠性值,即任务ni进行复制时选择处理器的实际顺序,在复制的过程中,同一个任务只能在同一个处理器中复制一次,该任务未曾复制过的处理器称为该任务的可用处理器。
4.根据权利要求1所述的用于分布式系统的满足应用可靠性需求的任务调度方法,其特征在于反复将任务按实时可靠性排序,每次排序后,对每一个任务依次进行一次复制并进行判定的过程,至少还包括以下几个步骤:
S401.将所有任务按当前的实时可靠性由小到大进行排序,得到各任务为提升应用可靠性而进行复制的先后顺序;
S402.若应用的实时可靠性不满足可靠性需求,对S401中排序最高的任务,选择其可靠性最大的可用处理器进行一次复制,得到该任务新的实时可靠性和应用新的实时可靠性,将应用新的实时可靠性与可靠性需求对比,如不满足可靠性需求,按顺序依次对之后的任务进行同样的复制与判定操作,直到应用的实时可靠性满足可靠性需求为止;
S403将所有任务按先后顺序依次进行一次复制后,得到的应用实时可靠性如仍不满足可靠性需求,则根据各任务当前的实时可靠性由小到大重新排序;
S40.重复S402、S403过程,直到应用的实时可靠性满足可靠性需求。
5.根据权利要求1所述的用于分布式系统的满足应用可靠性需求的任务调度方法,其特征在于确定应用的最终可靠性、总冗余数、运行时间成本的过程,至少还包括以下几个步骤:
S501.确定应用最终的可靠性,根据公式(2)、(3),应用最终的可靠性R(G)为所有任务的实时可靠性的乘积,若R(G)大于或等于Rreq(G),则认为满足可靠性需求;
S502.确定应用的总冗余数,计算如下:
其中应用的总冗余数NR(G)等于所有任务的复制次数之和;
S503.确定应用的运行时间成本,计算如下:
RT=FT-ST; (5)
其中,RT表示算法对应用中任务进行调度的时间成本,ST表示开始处理的时间,FT表示结束处理的时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810028362.XA CN108108241B (zh) | 2018-01-11 | 2018-01-11 | 一种用于分布式系统的满足可靠性需求的任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810028362.XA CN108108241B (zh) | 2018-01-11 | 2018-01-11 | 一种用于分布式系统的满足可靠性需求的任务调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108108241A CN108108241A (zh) | 2018-06-01 |
CN108108241B true CN108108241B (zh) | 2021-08-03 |
Family
ID=62218562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810028362.XA Active CN108108241B (zh) | 2018-01-11 | 2018-01-11 | 一种用于分布式系统的满足可靠性需求的任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108108241B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109240817B (zh) * | 2018-08-31 | 2021-11-02 | 湘潭大学 | 一种用于分布式系统的双目标快速优化任务调度方法 |
CN109254841B (zh) * | 2018-09-30 | 2021-11-26 | 湘潭大学 | 一种用于分布式系统的双目标最优化任务调度方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8769541B2 (en) * | 2009-12-31 | 2014-07-01 | Facebook, Inc. | Load balancing web service by rejecting connections |
CN103984607A (zh) * | 2013-02-08 | 2014-08-13 | 华为技术有限公司 | 分布式存储的方法、装置和系统 |
CN107196799B (zh) * | 2017-05-26 | 2020-10-16 | 河南职业技术学院 | 一种数据处理平台冗余服务器备份及切换运行控制方法 |
-
2018
- 2018-01-11 CN CN201810028362.XA patent/CN108108241B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108108241A (zh) | 2018-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107621973B (zh) | 一种跨集群的任务调度方法及装置 | |
US20080052712A1 (en) | Method and system for selecting optimal clusters for batch job submissions | |
US20180357610A1 (en) | Method and system for collaborative scheduling of production and transportation based on shuffled frog leaping and path relinking algorithms | |
CN108108241B (zh) | 一种用于分布式系统的满足可靠性需求的任务调度方法 | |
TWI338229B (en) | Dynamically configurable fault tolerance in autonomic computing with multiple service points | |
CN107908714B (zh) | 一种数据归并排序方法及装置 | |
US20170011028A1 (en) | Apparatuses and methods for flexible scheduling in a database system | |
US20150095916A1 (en) | Information processing system and control method of information processing system | |
US20100251248A1 (en) | Job processing method, computer-readable recording medium having stored job processing program and job processing system | |
KR101770191B1 (ko) | 자원 할당 방법 및 그 장치 | |
CN114564281A (zh) | 容器调度方法、装置、设备及存储介质 | |
Amoon | A job checkpointing system for computational grids | |
US8201023B2 (en) | Test optimization | |
Amoon | A fault tolerant scheduling system based on check pointing for computational grids | |
CN113778625A (zh) | 一种跨云计算中心的多副本容错任务调度方法 | |
CN113487132B (zh) | 配电网灾后抢修资源分配方法、装置和计算机设备 | |
CN109240817B (zh) | 一种用于分布式系统的双目标快速优化任务调度方法 | |
CN114185938A (zh) | 基于数字金融及大数据溯源的项目溯源分析方法及系统 | |
US20090083745A1 (en) | Techniques for Maintaining Task Sequencing in a Distributed Computer System | |
CN112379978A (zh) | 后端服务调用方法、装置、设备和存储介质 | |
CN117608862B (zh) | 数据分发控制方法、装置、设备及介质 | |
US12026048B2 (en) | Early detection and avoidance of mainframe job errors | |
Altameem | A Replication-Based and Fault Tolerant Allocation Algorithm for Cloud Computing | |
CN116932231B (zh) | 一种分布式集群的扩缩容系统 | |
US20240095114A1 (en) | Intelligent healing of mainframe job errors |
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 |