一种面向混合任务的调度系统的制作方法
【技术领域】
[0001] 本发明设计一种调度系统,具体设及一种面向混合任务的调度系统。
【背景技术】
[0002] 在操作系统、网格计算、云计算等领域,任务调度是系统的核屯、功能模块,其性能 直接影响到系统运行的整体效果。然而,任务调度是一个NP问题,很难找到一种最优调度 算法W满足所有的约束条件。计算框架也具有类似的特征,即很难找到一种最优的计算框 架适合所有的应用。
[0003] 化doop提供了一种最简单的计算架构,后续的很多框架W此为基础进行局部改 进。图1展示了Mesos计算架构。该架构采用双层调度设计,首先Mesos将资源分配给下 级的子框架,再由各子框架内部实现计算资源的最终分配。其目的是为了融合尽可能多的 负载W提升云平台资源的利用率。
[0004] 任务调度的具体策略取决于调度目标,常见的目标包括最小时间跨度、公平性、资 源利用率等,实际的可能主要W达到其中的某一个或某几个目标为目的。现有调度策略主 要有W下两种:用户利益驱动的调度方法和考虑服务提供成本的调度方法。前者主要考虑 用户的服务质量,如任务完成时间最短、服务质量最高等;后者在满足用户服务的基础上还 需考虑云平台服务提供商的服务成本,如资源负载均衡、系统资源利用率最高、降低云平台 能耗等。还有一些分配策略主要考虑方法的可扩展性,如多级任务调度策略等。
[0005] -些互联网信息探测类、信息获取类应用中,大部分任务表现出强烈的周期性特 征,即很多任务实际上是同一个任务的多次执行的实例,即任务的执行结果与执行时刻相 关。如需要测试某网站的访问速度。很明显,在不同时间点同一网站的访问速度是不同的, 为了得出测试结果,需要进行间隔不断的测试,W客观反应网站访问速度的变化情况。而执 行于其它云平台上的主流计算类任务,如聚类、统计等并不具备周期性特征,通常同一任务 的多次执行结果是完全一样的,多次执行并无价值,已有的主流云计算框架并未考虑任务 需要周期性执行的情况。因此,云计算环境下,存在周期性任务与非周期性任务混合执行的 情况。
【发明内容】
[0006] 为了克服上述现有技术的不足,本发明提供一种面向混合任务的调度系统,通过 设置模型解析器、执行序列生成器、信息收集器和代理模块,实现任务调度。
[0007] 为了实现上述发明目的,本发明采取如下技术方案:
[0008] 本发明提供一种面向混合任务的调度系统,所述调度系统包括模型解析器、执行 序列生成器、信息收集器和代理模块;所述模型解析器与执行序列生成器单向连接,所述执 行序列生成器与信息收集器和代理模块之间均双向连接。
[0009] 所述模型解析器用于解析由任务描述模型描述的各个任务,并将解析得到的任务 信息发送给执行序列生成器。
[0010] 所述任务描述模型用于描述任务集合中的各个任务,所述任务集合用r= 咕,t2. ..,tj表示,任务ti= {id。扎,rq。St。ext。pr。ftJ,i= 1,2,…,n,n表示任务 集合中任务个数,idi表示任务ti的ID,pii表示任务ti执行时对物理位置的需求,rqi表示 任务ti执行时对CPU、内存、网络资源的需求,St康示任务ti执行的时间点,ext康示任务 ti执行单次所需要的时间,pri表示任务ti执行的周期需求,fti表示任务ti执行的截止时 间需求,单周期时间利用率Ui=exti/pr;。
[0011]任务包括周期性任务和非周期性任务,对于非周期性任务,pri和fti均为0。
[0012] 所述执行序列生成器接收模型解析器发送的任务信息,并根据任务信息对周期性 任务和非周期性任务进行调度;
[0013] 对于非周期性任务,调度系统直接调度;
[0014] 对于周期性任务,先将周期性任务按对虚拟机类型需求的不同分成不同的组,同 一组的周期性任务在同一类虚拟机上执行,选择最少虚拟机执行周期性任务并生成周期性 任务的执行序列,同时执行序列生成器将生成的执行序列发送给信息收集器。
[0015] 生成执行序列的具体过程如下:
[0016]1)将任务集合r中的任务按单周期时间利用率Ui降序排列;
[0017] 2)对每个虚拟机r创建链表If;
[0018] 3)将任务集合r中的第一个任务分配至虚拟机1执行,在分配后续任务时,先判 断该任务单周期时间利用率
是否成立,若成立,则新增虚拟机执行 该任务;否则将任务ti分配至虚拟机r执行,并将链表1j.加入任务编号;其中U1表示分配 给虚拟机r的第1个任务的单周期利用率,1 = 1,2,…,kf,kf表示已分配的任务总数;
[0019] 4)循环执行3),直至任务分配完毕,各虚拟机的链表中任务序号即为执行序列。
[0020] 所述信息收集器采用推或拉的模式收集各个虚拟机的状态信息W及虚拟机上应 执行的任务序列;
[0021] 所述虚拟机状态信息包括CPU使用率、内存使用率、已执行的任务集合和正在执 行的任务集合。
[0022] 所述代理模块部署在每个虚拟机上,用于采集CPU使用率和内存使用率,代理模 块同时将采集的CPU使用率和内存使用率上报给信息收集器,同时监督虚拟虚拟机上的任 务是否按照执行序列生成器生成的执行序列执行。
[0023] 与现有技术相比,本发明的有益效果在于:
[0024] 本发明提供的面向混合任务的调度系统,任务调度时考虑了任务执行的周期性时 序特征,即对于需要长时间不间断运行的任务可实现"一次调度、多次运行",避免了对一类 任务的频繁调度、下发,降低了任务调度带来的额外计算成本,极大降低了任务的频繁下发 给网络通信带来的压力;并将如何为同一组周期性任务分配最少的资源来执行看作一个背 包问题,提出了相应的算法,W求得最小的虚拟资源集合来完成任务的执行。
【附图说明】
[0025] 图1是本发明实施例中面向混合任务的调度系统结构图。
【具体实施方式】
[0026] 下面结合附图对本发明作进一步详细说明。
[0027] 本发明提供一种面向混合任务的调度系统,(如图1)所述调度系统包括模型解 析器、执行序列生成器、信息收集器和代理模块;所述模型解析器与执行序列生成器单向连 接,所述执行序列生成器与信息收集器和代理模块之间均双向连接。
[0028] 所述模型解析器用于解析由任务描述模型描述的各个任务,并将解析得到的任务 信息发送给执行序列生成器。
[0029] 所述任务描述模型用于描述任务集合中的各个任务,所述任务集合用r= {t。t2. . .,tj表示,任务ti={id。pi。rq。St。ext。pr。ftJ,i= 1,2,…,n,n表示任务 集合中任务个数,idi表示任务ti的ID,pii表示任务ti执行时对物理位置的需求,rqi表示 任务ti执行时对CPU、内存、网络资源的需求,St康示任务ti执行的时间点,ext康示任务 ti执行单次所需要的时间,pri表示