CN105022668A - 一种作业调度方法及系统 - Google Patents

一种作业调度方法及系统 Download PDF

Info

Publication number
CN105022668A
CN105022668A CN201510212805.7A CN201510212805A CN105022668A CN 105022668 A CN105022668 A CN 105022668A CN 201510212805 A CN201510212805 A CN 201510212805A CN 105022668 A CN105022668 A CN 105022668A
Authority
CN
China
Prior art keywords
user
resource
feature parameter
fisrt feature
job
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.)
Granted
Application number
CN201510212805.7A
Other languages
English (en)
Other versions
CN105022668B (zh
Inventor
张章
王旻
汤学海
韩冀中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Institute of Information Engineering of CAS
Tencent Cyber Tianjin Co Ltd
Original Assignee
Institute of Information Engineering of CAS
Tencent Cyber Tianjin Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Information Engineering of CAS, Tencent Cyber Tianjin Co Ltd filed Critical Institute of Information Engineering of CAS
Priority to CN201510212805.7A priority Critical patent/CN105022668B/zh
Publication of CN105022668A publication Critical patent/CN105022668A/zh
Application granted granted Critical
Publication of CN105022668B publication Critical patent/CN105022668B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种作业调度方法及系统,其中方法包括:获取到至少一个用户的作业信息,利用所述至少一个用户的作业信息,计算得到每个用户的至少一个作业的第一特征参数;所述第一特征参数用于表征所述作业的处理紧急度;基于所述每个用户的至少一个作业的第一特征参数,分别选取至少一个用户中每个用户的第一作业;根据所述每个用户的第一作业的第一特征参数,从至少一个用户的所述每个用户的第一作业中选取第二作业;当所述第二作业符合第一预设条件时,选取第三作业;所述第一预设条件表征所述第二作业的第一特征参数大于第一预设门限值;将所述第三作业对应的资源分配给所述第二作业,并利用分配的所述资源处理所述第二作业。

Description

一种作业调度方法及系统
技术领域
本发明涉及信息处理领域的集群调度技术,尤其涉及一种作业调度方法及系统。
背景技术
为了处理大规模数据,出现了多种面向数据处理的专用计算框架,例如离线计算框架MapReduce、内存计算框架Spark和流式计算框架Storm等,这些计算框架被广泛地应用到各种组织和商业公司的生产环境之中。随着数据处理技术的不断发展与普及,在同一集群上使用资源的用户数量也在不断增加。在实践中,共享资源已经成为一种在数据处理集群中广泛应用的技术趋势。多租户技术允许多个租户共享集群资源,不同租户可以混合部署、错峰使用集群,提高资源利用率,进而取得更好的经济效益。
在数据处理集群中,存在多个租户,需要保证不同租户公平地共享集群资源;每个租户都具有关键性作业,需要保证关键性作业的服务水平目标(ServiceLevel Objective,SLO),确保在指定时间内完成。因此,数据处理集群需要一种可以同时满足公平和SLO的调度机制。但是,多租户调度强调公平;SLO强调作业效率,要求关键性作业按时完成,二者侧重点不同,很难同时满足。
发明内容
有鉴于此,本发明实施例的目的在于提供一种作业调度方法及系统,能至少解决现有技术存在的上述问题。
本发明实施例提供了一种作业调度方法,所述方法包括:
获取到至少一个用户的作业信息,利用所述至少一个用户的作业信息,计算得到每个用户的至少一个作业的第一特征参数;所述第一特征参数用于表征所述作业的处理紧急度;
基于所述每个用户的至少一个作业的第一特征参数,分别选取至少一个用户中每个用户的第一作业;
根据所述每个用户的第一作业的第一特征参数,从至少一个用户的所述每个用户的第一作业中选取第二作业;
当所述第二作业符合第一预设条件时,选取第三作业;所述第一预设条件表征所述第二作业的第一特征参数大于第一预设门限值;
将所述第三作业对应的资源分配给所述第二作业,并利用分配的所述资源处理所述第二作业。
本发明实施例还提供了一种作业调度系统,所述系统包括:
信息获取单元,用于获取到至少一个用户的作业信息,利用所述至少一个用户的作业信息,计算得到每个用户的至少一个作业的第一特征参数;所述第一特征参数用于表征所述作业的处理紧急度;
第一选取单元,用于基于所述每个用户的至少一个作业的第一特征参数,分别选取至少一个用户中每个用户的第一作业;
第二选取单元,用于根据所述每个用户的第一作业的第一特征参数,从至少一个用户的所述每个用户的第一作业中选取第二作业;
第三选取单元,用于当所述第二作业符合第一预设条件时,选取第三作业;所述第一预设条件表征所述第二作业的第一特征参数大于第一预设门限值;
资源管理单元,用于将所述第三作业对应的资源分配给所述第二作业,并利用分配的所述资源处理所述第二作业。
本发明实施例所提供的作业调度方法及系统,能根据处理紧急度从至少一个用户的至少一个作业中选取出第二作业,在所述第二作业需要获取其他作业的处理资源时,选取第三作业,并占用所述第三作业的处理资源。如此,能够优先调度整个集群的多个用户中最为紧急的作业,从而使得集群实现公平且高效的进行作业调度。
附图说明
图1为本发明实施例作业调度方法流程示意图;
图2为本发明实施例选取第三作业流程黑丝一天;
图3为本发明实施例图例一;
图4为本发明实施例图例二;
图5为本发明实施例图例三;
图6为本发明实施例效果示意图一;
图7为本发明实施例效果示意图二;
图8为本发明实施例效果示意图三;
图9为本发明实施例效果示意图四;
图10为本发明实施例作业调度系统组成结构示意图;
图11为本发明实施例硬件组成结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明实施例再作进一步详细的说明。
实施例一、
本发明实施例提供了一种作业调度方法,如图1所示,所述方法包括:
步骤101:获取到至少一个用户的作业信息,利用所述至少一个用户的作业信息,计算得到每个用户的至少一个作业的第一特征参数;所述第一特征参数用于表征所述作业的处理紧急度;
步骤102:基于所述每个用户的至少一个作业的第一特征参数,分别选取至少一个用户中每个用户的第一作业;
步骤103:根据所述每个用户的第一作业的第一特征参数,从至少一个用户的所述每个用户的第一作业中选取出第二作业;
步骤104:当所述第二作业符合第一预设条件时,选取第三作业;所述第一预设条件表征所述第二作业的第一特征参数大于第一预设门限值;
步骤105:将所述第三作业对应的资源分配给所述第二作业,并利用分配的所述资源处理所述第二作业。
这里,所述计算得到每个用户的至少一个作业的第一特征参数可以包括:分别获取所述每个用户的至少一个作业对应的运行时长以及截止时刻;利用作业的所述截至时刻计算得到可用时长;将作业的运行时长与所述可用时长的比值作为所述作业的第一特征参数。
本实施例中,为了实现多个用户均能够公平高效地共享集群中的资源,为每个用户设置了运行作业列表,并且为每一个用户均设置了资源配额以及资源使用阈值;其中,所述资源配额以及资源使用阈值可以采用百分比的形式来表征。
优选地,所述选取至少一个用户中每个用户的第一作业可以包括:为至少一个用户中每个用户建立运行作业列表,所述运行作业列表包括有用户信息、作业的标识、以及作业的第一特征参数;从所述运行作业列表中选取最大的第一特征参数,获取到最大的第一特征参数对应的作业作为所述第一作业。
本实施例中,所述根据每个用户的第一作业的第一特征参数,从至少一个用户的所述每个用户的第一作业中选取出第二作业,可以包括:根据所述每个用户的第一作业的第一特征参数,从所述至少一个用户中选取最大的第一特征参数对应的作业作为第二作业。
优选地,所述第二作业的第一特征参数大于第一预设门限值,其中,所述第一预设门限值可以为根据实际情况设置的门限值,比如,可以设置为0.9。
优选地,上述选取第三作业的方法可以为:
获取到所述第二作业对应的第一用户,判断所述第一用户是否满足第二预设条件,若满足第二预设条件,则从所述第一用户的运行作业列表中选取第三作业;
若不满足第二预设条件,则从除所述第一用户外的其他用户中选取符合第二预设条件的第二用户,从所述第二用户的运行作业列表中选取处理资源大于等于所述第二作业的第三作业;
其中,所述第二预设条件表征所述用户的已用资源超过其资源配额。
进一步的,上述选取第三作业的具体方式可以为从运行作业列表中选取处理资源大于等于所述第二作业的一个作业作为第三作业;或者,还可以为将运行作业列表中排在最前一个作业作为第三作业。
可见,采用上述方案,就能够根据处理紧急度从至少一个用户的至少一个作业中选取出第二作业,在所述第二作业需要获取其他作业的处理资源时,选取第三作业,并占用所述第三作业的处理资源。如此,能够优先调度整个集群的多个用户中最为紧急的作业,从而使得集群实现公平且高效的进行作业调度。
实施例二、
本发明实施例提供了一种作业调度方法,应用于服务器,如图1所示,所述方法包括:
步骤101:获取到至少一个用户的作业信息,利用所述至少一个用户的作业信息,计算得到每个用户的至少一个作业的第一特征参数;所述第一特征参数用于表征所述作业的处理紧急度;
步骤102:基于所述每个用户的至少一个作业的第一特征参数,分别选取至少一个用户中每个用户的第一作业;
步骤103:根据所述每个用户的第一作业的第一特征参数,从至少一个用户的所述每个用户的第一作业中选取出第二作业;
步骤104:当所述第二作业符合第一预设条件时,选取第三作业;所述第一预设条件表征所述第二作业的第一特征参数大于第一预设门限值;
步骤105:将所述第三作业对应的资源分配给所述第二作业,并利用分配的所述资源处理所述第二作业。
这里,所述计算得到每个用户的至少一个作业的第一特征参数可以包括:分别获取所述每个用户的至少一个作业对应的运行时长以及截止时刻;利用作业的所述截至时刻计算得到可用时长;将作业的运行时长与所述可用时长的比值作为所述作业的第一特征参数。第一特征参数的计算可以采用以下公式:urgency=run_duration/avail_time;其中,run_duration表示作业的运行时长,avail_time表示当前时刻至第一作业的所述截止时刻之间的可用时长。
本实施例中假设作业的可用时长总是大于0的,因为如果可用时长小于等于0,则表示作业已经错过完成截止时间,运行该作业通常已经没有实际意义。由于假设可用时长总是大于0的,且作业的预计运行时间必然大于0,因此作业第一特征参数也总是大于0。在此基础上,以数值1作为第一特征参数的分界线,如果第一特征参数大于等于1,表明作业的预计运行时长大于等于可用时长,则作业理论上已经无法在截止时间前完成;如果第一特征参数小于1,则表明作业的预计运行时间小于可用时长,则作业预计可以在截止时间前顺利完成。从变化趋势上看,第一特征参数越大,表示相比于作业的预计运行时间,可用时长已经不多,表明作业更为紧急,为了保证作业在截止时间前完成,应当尽早调度该作业;第一特征参数越小,表示相比于作业的预计运行时间,可用时长还较为充足,表明作业相对不紧急,可以优先调度其他紧急程度更高的作业。
可以理解的是,执行上述步骤101之前,首先需要在提交作业时确定作业的运行时长和截止时刻;所述运行时长表示作业从开始执行到完成预计需要花费的时间;所述截至时刻为用户根据实际情况设置的时刻。本实施例提供确定作业的运行时长和截止时刻的两种方法:
一、用户登录一个用户后,需要提交作业,在用户提交作业的时候设置作业的运行时长和截止时刻;
二、当用户登录用户并提交作业之后,由服务器根据作业的类型以及大小估算作业的运行时长以及截止时刻;研究表明,绝大多数数据处理作业具有重复性特征。这些作业通常会定期重复运行,其应用类型和处理逻辑相同,但具体处理的数据规模可能不同。通过定期观察记录,对于一个给定作业,可以凭借用户经验或模拟器来预估其运行时间。因此,预估一个作业的运行时间在理论和实践上都具有可行性。
优选地,所述步骤101可以根据实际情况设置为周期性执行的步骤,因为随着时间的推移,当前时间点会不断变化,作业的可用时长也会随之变化,进而作业紧急度也会实时变化。为此,调度机制会为每个作业维护上述参数,比如,当业务较为空闲的时候,可以为每5分钟进行一次计算;如果当前集群中用户较为繁忙时,可以设置为1分钟进行一次计算。如此,能够进一步的保证作业的第一特征参数的准确性。
本实施例中,所述用户对应的用户信息可以包括有资源配额、资源使用阈值等参数。为了实现多个用户均能够公平高效地共享集群中的资源,为每个用户设置了运行作业列表,并且为每一个用户均设置了资源配额以及资源使用阈值;其中,所述资源配额以及资源使用阈值可以采用百分比的形式来表征。
其中,所述资源配额表示用户共享集群资源的配额。比如,当集群中各个用户都处于忙碌状态时,每一个用户根据资源配额共享集群资源。另外,当集群相对空闲时,忙碌的用户可以超过资源配额参数暂时使用集群中的空闲资源。这样空闲资源可以地被忙碌租户充分使用,避免资源浪费,提高了集群的资源利用率,实现了资源的高效共享。由于租户实际使用资源可能超过其资源配额,为了防止单个租户占用过多资源,系统通过资源使用阈值对其进行限制,使用资源不可超过资源使用阈值。
优选地,所述选取至少一个用户中每个用户的第一作业可以包括:为至少一个用户中每个用户建立运行作业列表;从所述运行作业列表中选取最大的第一特征参数,对应的作业作为所述第一作业;
其中,所述运行作业列表的建立可以为:服务器将每一个用户的调度队列中所有运行作业汇总形成的列表,其中,所述运行作业列表中可以包括有:用户信息、作业的标识、作业所需的处理资源以及作业的第一特征参数。
本实施例中选取到第一作业之后,可以在服务器中将该第一作业记录为第一作业个二元组<User,Job>,即<用户信息,第一作业的标识>。
本实施例中,所述根据每个用户的第一作业的第一特征参数,从至少一个用户的所述每个用户的第一作业中选取出第二作业,可以包括:根据所述每个用户的第一作业的第一特征参数,从所述至少一个用户中选取最大的第一特征参数对应的作业作为第二作业。
优选地,所述第二作业符合第一预设条件的判断方法可以包括:所述第二作业的第一特征参数大于第一预设门限值;其中,所述第一预设门限值可以为根据实际情况设置的门限值,比如,可以设置为0.9。在集群中,用户数量和作业数量往往较大,而为了节省成本,集群规模常常较为有限,这就出现了资源受限的场景。在资源受限的场景下,为了保证作业在截止时间之前完成,必须要实现一种资源抢占机制。在资源受限的前提下,非常紧急的作业可以抢占资源。资源不足时,如果作业并非十分紧急,可以等待当前作业完成、出现空闲资源后再执行作业,这样既不会影响作业按时完成,又可以避免抢占带来的额外开销。但是如果作业非常紧急,又没有空闲资源,则作业不可以再继续等待,因为继续等待很可能会导致作业错过截止时间,此时需要进行抢占。为了量化作业“非常紧急”这一概念,本实施例中设定了第一预设门限值t1,当作业的第一特征参数大于第一预设门限值t1时,就认为该作业满足了第一预设条件可以抢占资源。
优选地,所述选取第三作业,如图2所示,包括:
步骤201:获取到所述第二作业对应的第一用户,判断所述第一用户是否满足第二预设条件,若满足第二预设条件,则执行步骤202;否则,执行步骤203;
步骤202:依次从所述第一用户的运行作业列表中选取作业,判断选取的作业的第一特征参数是否小于第二预设门限值,若小于第二预设门限值,则将选取的作业作为第三作业,结束处理;
步骤203:从除所述第一用户外的其他用户中选取符合第二预设条件的第二用户,依次从所述第二用户的运行作业列表中选取作业,判断选取的作业的第一特征参数是否小于第二预设门限值,若小于第二预设门限值,则将选取的作业作为第三作业。
上述第二预设门限值小于第一预设门限值,比如可以设置所述第二预设门限值为0.85;即不能够抢占处理紧急度高于0.85的作业的处理资源。如此,就能够在保证最紧急的作业的处理效率之外,还能够保证较为紧急的作业的处理资源不被抢占。
可见,采用上述方案,就能够根据处理紧急度从至少一个用户的至少一个作业中选取出第二作业,在所述第二作业需要获取其他作业的处理资源时,选取第三作业,并占用所述第三作业的处理资源。如此,能够优先调度整个集群的多个用户中最为紧急的作业,从而使得集群实现公平且高效的进行作业调度。
实施例三、
本发明实施例提供了一种作业调度方法,应用于服务器,如图1所示,所述方法包括:
步骤101:获取到至少一个用户的作业信息,利用所述至少一个用户的作业信息,计算得到每个用户的至少一个作业的第一特征参数;所述第一特征参数用于表征所述作业的处理紧急度;
步骤102:基于所述每个用户的至少一个作业的第一特征参数,分别选取至少一个用户中每个用户的第一作业;
步骤103:根据所述每个用户的第一作业的第一特征参数,从至少一个用户的所述每个用户的第一作业中选取出第二作业;
步骤104:当所述第二作业符合第一预设条件时,选取第三作业;所述第一预设条件表征所述第二作业的第一特征参数大于第一预设门限值;
步骤105:将所述第三作业对应的资源分配给所述第二作业,并利用分配的所述资源处理所述第二作业。
这里,所述计算得到每个用户的至少一个作业的第一特征参数可以包括:分别获取所述每个用户的至少一个作业对应的运行时长以及截止时刻;利用作业的所述截至时刻计算得到可用时长;将作业的运行时长与所述可用时长的比值作为所述作业的第一特征参数。第一特征参数的计算可以采用以下公式:urgency=run_duration/avail_time;其中,run_duration表示作业的运行时长,avail_time表示当前时刻至第一作业的所述截止时刻之间的可用时长。
本实施例中假设作业的可用时长总是大于0的,因为如果可用时长小于等于0,则表示作业已经错过完成截止时间,运行该作业通常已经没有实际意义。由于假设可用时长总是大于0的,且作业的预计运行时间必然大于0,因此作业第一特征参数也总是大于0。在此基础上,以数值1作为第一特征参数的分界线,如果第一特征参数大于等于1,表明作业的预计运行时长大于等于可用时长,则作业理论上已经无法在截止时间前完成;如果第一特征参数小于1,则表明作业的预计运行时间小于可用时长,则作业预计可以在截止时间前顺利完成。从变化趋势上看,第一特征参数越大,表示相比于作业的预计运行时间,可用时长已经不多,表明作业更为紧急,为了保证作业在截止时间前完成,应当尽早调度该作业;第一特征参数越小,表示相比于作业的预计运行时间,可用时长还较为充足,表明作业相对不紧急,可以优先调度其他紧急程度更高的作业。
可以理解的是,执行上述步骤101之前,首先需要在提交作业时确定作业的运行时长和截止时刻;所述运行时长表示作业从开始执行到完成预计需要花费的时间;所述截至时刻为用户根据实际情况设置的时刻。本实施例提供确定作业的运行时长和截止时刻的两种方法:
一、用户登录一个用户后,需要提交作业,在用户提交作业的时候设置作业的运行时长和截止时刻;
二、当用户登录用户并提交作业之后,由服务器根据作业的类型以及大小估算作业的运行时长以及截止时刻;研究表明,绝大多数数据处理作业具有重复性特征。这些作业通常会定期重复运行,其应用类型和处理逻辑相同,但具体处理的数据规模可能不同。通过定期观察记录,对于一个给定作业,可以凭借用户经验或模拟器来预估其运行时间。因此,预估一个作业的运行时间在理论和实践上都具有可行性。
优选地,所述步骤101可以根据实际情况设置为周期性执行的步骤,因为随着时间的推移,当前时间点会不断变化,作业的可用时长也会随之变化,进而作业紧急度也会实时变化。为此,调度机制会为每个作业维护上述参数,比如,当业务较为空闲的时候,可以为每5分钟进行一次计算;如果当前集群中用户较为繁忙时,可以设置为1分钟进行一次计算。如此,能够进一步的保证作业的第一特征参数的准确性。
本实施例中,所述用户对应的用户信息可以包括有资源配额、资源使用阈值等参数。为了实现多个用户均能够公平高效地共享集群中的资源,为每个用户设置了运行作业列表,并且为每一个用户均设置了资源配额以及资源使用阈值;其中,所述资源配额以及资源使用阈值可以采用百分比的形式来表征。
其中,所述资源配额表示用户共享集群资源的配额。比如,当集群中各个用户都处于忙碌状态时,每一个用户根据资源配额共享集群资源。另外,当集群相对空闲时,忙碌的用户可以超过资源配额参数暂时使用集群中的空闲资源。这样空闲资源可以地被忙碌租户充分使用,避免资源浪费,提高了集群的资源利用率,实现了资源的高效共享。由于租户实际使用资源可能超过其资源配额,为了防止单个租户占用过多资源,系统通过资源使用阈值对其进行限制,使用资源不可超过资源使用阈值。
优选地,所述选取至少一个用户中每个用户的第一作业可以包括:为至少一个用户中每个用户建立运行作业列表;从所述运行作业列表中选取最大的第一特征参数,对应的作业作为所述第一作业;
其中,所述运行作业列表的建立可以为:服务器将每一个用户的调度队列中所有运行作业汇总形成的列表,其中,所述运行作业列表中可以包括有:用户信息、作业的标识、作业所需的处理资源以及作业的第一特征参数。
本实施例提供多个用户的调度队列示意图,如图3所示,其中包括有三个用户的用户,分别为用户1、用户2和用户3;在调度队列中分别记录有每一个用户的资源配额和资源使用阈值;并且在调度队列中有每个用户的至少一个作业。
上述步骤101-步骤102相当于本发明实施例作业调度方法中的预处理过程,预处理可以缩小备选作业范围,一定程度上减少整个处理方法的时空复杂度。
本实施例中选取到第一作业之后,可以在服务器中将该第一作业记录为第一作业个二元组<User,Job>,即<用户信息,第一作业的标识>。
优选地,执行完分别选取至少一个用户中每个用户的第一作业之后,还可以包括:
利用所述至少一个用户中每个用户的第一作业建立第一作业信息列表;
逐个所述第一作业信息列表中每个第一作业对应的用户的已用资源是否大于资源使用阈值,若大于资源使用阈值,则从所述第一作业信息列表中删除所述第一作业,得到更新后的第一作业信息列表。
相应的,所述从至少一个用户的所述每个用户的第一作业中选取出第二作业,包括:从更新后的所述第一作业信息列表中选取第二作业。
其中,所述资源使用阈值可以为根据实际情况设置,比如可以设置为40%。
上述建立第一作业信息列表的方法可以为:利用第一作业二元组建立所述第一作业信息列表。
图4为构建第一作业信息列表过程的示意图,其中,用户调度队列中有用户a、用户b、用户c,每个用户的调度队列中记录有作业信息;所述作业信息包括有对应的用户、第一特征参数。从每个用户的调度队列中选取第一特征参数最大的一个作业作为该用户的第一作业;比如,图4中选取用户a的作业(a,0.5),用户b的作业(b,0.5),用户c的作业(c,0.6),将上述选取的多个用户的第一作业作为第一作业信息列表。
进一步的,上述用户的已用资源的计算方法可以有以下两种计算方式:
第一种、直接从服务器的记录中获取到用户的已用资源的记录;
第二中,从服务器的记录中获取用户的已用资源的记录之后,将用户的已用资源与调度队列中待调度的作业的所需资源做和,得到计算后的用户的已用资源。可以以百分比的形式表示。
另外,还可以包括从第一作业信息列表中筛除作业为空的二元组。
本实施例中,所述选取出第二作业,可以包括以下两种实现方式:
方式一、根据所述每个用户的第一作业的第一特征参数,从所述至少一个用户中选取最大的第一特征参数对应的作业作为第二作业。
方式二、根据用户的已用资源是否大于预设的用户的资源配额对所述至少一个用户进行分类,将已用资源大于预设的用户的资源配额的用户作为第一类用户,将已用资源不大于预设的用户的资源配额的用户作为第二类用户;从所述第二类用户中选取最大的第一特征参数对应的作业作为第二作业。
可以理解的是,在使用上述方式二时,有可能会出现第二类用户为零的情况,如果无第二类用户,则从所述第一类用户中选取最大的第一特征参数对应的作业作为第二作业。
图5为选择作业流程的示意图,图中用户a已用资源超过了资源使用阈值,在初期针对第一作业进行删除的操作中就会被去除;用户b和用户c已用资源未超过用户的资源配额,从用户b和用户c选取一个紧急度最高的作业(c,0.6),记为第二作业。
根据上述思路,假设每个用户的第一作业记为job;每个用户与其第一作业组成第一作业二元组,记为<user,job>;所有第一作业二元组组成一个第一作业列表,记为user_job_list。首先,初始化未超过资源配额的最紧急作业第二类用户对应的第一作业为job_in,且job_in.urgency为0;初始化第一类用户对应的第一作业job_beyond,job_beyond.urgency为0。本实施例针对上述步骤103的算法流程如下:
优选地,所述选取第三作业,包括:获取到所述第二作业对应的第一用户,判断所述第一用户是否满足第二预设条件,若满足第二预设条件,则依次从所述第一用户的运行作业列表中选取作业,判断选取的作业的第一特征参数是否小于第二预设门限值,若小于第二预设门限值,则将选取的作业作为第三作业,结束处理;若不满足第二预设条件,从除所述第一用户外的其他用户中选取符合第二预设条件的第二用户,依次从所述第二用户的运行作业列表中选取作业,判断选取的作业的第一特征参数是否小于第二预设门限值,若小于第二预设门限值,则将选取的作业作为第三作业。
上述第二预设门限值小于第一预设门限值,比如可以设置所述第二预设门限值为0.85;即不能够抢占处理紧急度高于0.85的作业的处理资源。如此,就能够在保证最紧急的作业的处理效率之外,还能够保证较为紧急的作业的处理资源不被抢占。
优选地,所述依次从所述第一用户的运行作业列表中选取作业之前,所述方法还包括:基于所述第一用户的运行作业列表中的至少一个作业的第一特征参数,将所述运行作业列表中的至少一个作业进行排序。其中,所述排序的方式具体根据第一特征参数从小到大的顺序进行排序,
根据上述思路,假设每个用户的第一作业记为job;每个用户与其第一作业组成第一作业二元组,记为<user,job>;所有第一作业二元组组成一个第一作业列表,记为user_job_list。首先,初始化未超过资源配额的最紧急作业第二类用户对应的第一作业为job_in,且job_in.urgency为0;初始化第一类用户对应的第一作业job_beyond,job_beyond.urgency为0。本实施例中第二作业抢占资源的操作算法可以如下:
根据上述调度策略,实施例实现了可以满足公平和SLO多元目标的原型调度器,称之为M-SLO Scheduler。同时,实施例还实现了保障作业SLO但忽视多租户公平的调度器,称之为Deadline Scheduler。为了进行对比,验证本实施例提出调度策略的有效性,实验以现有的保证公平但忽视SLO的HadoopCapacity Scheduler作为参照对比项。对调度策略的实验评价涵盖两类实验场景,一类实验场景是一次性提交大量作业,使用优先调度算法进行调度,不触发资源抢占;一类实验场景是定时多次提交作业,使用优先调度算法进行调度,同时触发资源抢占。实验对比维度分别为Deadline保证率、作业执行效率以及公平性三个方面。
实验环境选取一个由5台服务器节点组成的集群,每台节点包括24核CPU、16GB内存,CPU型号为Intel Xeon E5645,内核版本为3.2.0-23-generic,集群资源总量为120核CPU和80GB内存。集群租户选用A、B、C三个不同租户,其资源配额分别为25%、25%和50%,资源使用阈值统一为60%。
作业的服务水平目标(SLO)是重点关注的调度指标,实验通过Deadline保证率来量化SLO的保证程度。图6记录了在不同场景下三种调度器的作业Deadline保证率。在一次提交大量作业的场景下,Capacity Scheduler(最浅的灰色条)的作业Deadline保证率为76.43%,而M-SLO Scheduler(最深的灰色条)和Deadline Scheduler(深度居中的灰色条)的作业Deadline保证率分别高达98.57%和99.82%,提升幅度在20个百分点以上。在多次提交作业的场景下,Capacity Scheduler的作业Deadline保证率仅为55.28%,而M-SLO Scheduler和Deadline Scheduler通过资源抢占,可以将作业Deadline保证率分别提高到90.29%和93.78%,提高幅度在35个百分点以上。总体来看,相比CapacityScheduler,M-SLO Scheduler和Deadline Scheduler的调度机制可以显著提高作业的Deadline保证率。
作业执行效率是衡量调度策略的重要指标,本文以作业执行完成的总时间来量化全局作业执行效率。图7记录了在不同场景下三种调度器的作业执行总时间,Capacity Scheduler(最浅的灰色条)、M-SLO Scheduler(最深的灰色条)和Deadline Scheduler(深度居中的灰色条)。在一次提交大量作业的场景下,相比Capacity Scheduler,M-SLO Scheduler和Deadline Scheduler可以小幅减少作业执行总时间,提高作业执行效率。在多次提交作业的场景下,相比CapacityScheduler,M-SLO Scheduler和Deadline Scheduler则会小幅增加作业执行总时间。这是因为在多次提交作业的场景下,为了保证后续提交的紧急作业按时完成,会触发资源抢占,中断部分正在运行中的非紧急作业,因此总执行时间会小幅增长。综合来看,三者作业执行效率大体相当。其中,在不触发抢占的情况下,M-SLO Scheduler和Deadline Scheduler的作业执行效率略优;在触发抢占的情况下M-SLO Scheduler和Deadline Scheduler的作业执行效率则略逊于Capacity Scheduler。
在各类应用场景中,由于需要中断运行中的作业,抢占机制都会增加作业执行开销。但是,抢占机制也会提供更为灵活的调度机制,可以提高作业的Deadline保证率,这本身就是调度系统中的一个权衡和折中。本文聚焦于多租户集群场景,因此需要关注不同租户之间的公平性。公平是一个较为抽象的概念,本文以每个租户的作业执行时间来量化公平性概念。如果存在某一个或多个租户的作业执行时间明显增长,则说明系统没有保证该租户的资源使用权益,租户间的公平受到了影响;反之则证明系统保证了租户间的公平。
图8和图9分别记录了多个用户一次提交作业和多次提交作业场景下的各租户作业执行时间;图8和图9中从左到右分别为用户a、用户b和用户c。图8中,相比于Capacity Scheduler,M-SLO Scheduler的租户作业执行时间最多增长了2.4%,Deadline Scheduler的租户作业执行时间最多增长了22.7%。图9中,由于触发抢占,作业执行时间的变化幅度更大,相比于Capacity Scheduler,M-SLO Scheduler的租户作业执行时间最多增长了5.3%,Deadline Scheduler的租户作业执行时间最多增长了27.4%。总体来看,Deadline Scheduler对多租户间的公平影响较大;M-SLO Scheduler的调度机制对多租户间的公平影响较小,基本上维持了不同租户间的公平。
可见,采用上述方案,就能够根据处理紧急度从至少一个用户的至少一个作业中选取出第二作业,在所述第二作业需要获取其他作业的处理资源时,选取第三作业,并占用所述第三作业的处理资源。如此,能够优先调度整个集群的多个用户中最为紧急的作业,从而使得集群实现公平且高效的进行作业调度。
实施例四、
本发明实施例提供了一种作业调度系统,如图10所示,包括:
信息获取单元1001,用于获取到至少一个用户的作业信息,利用所述至少一个用户的作业信息,计算得到每个用户的至少一个作业的第一特征参数;所述第一特征参数用于表征所述作业的处理紧急度;
第一选取单元1002,用于基于所述每个用户的至少一个作业的第一特征参数,分别选取至少一个用户中每个用户的第一作业;
第二选取单元1003,用于根据所述每个用户的第一作业的第一特征参数,从至少一个用户的所述每个用户的第一作业中选取第二作业;
第三选取单元1004,用于当所述第二作业符合第一预设条件时,选取第三作业;所述第一预设条件表征所述第二作业的第一特征参数大于第一预设门限值;
资源管理单元1005,用于将所述第三作业对应的资源分配给所述第二作业,并利用分配的所述资源处理所述第二作业。
这里,所述信息获取单元1001,具体用于分别获取所述每个用户的至少一个作业对应的运行时长以及截止时刻;利用作业的所述截至时刻计算得到可用时长;将作业的运行时长与所述可用时长的比值作为所述作业的第一特征参数。
本实施例中,为了实现多个用户均能够公平高效地共享集群中的资源,为每个用户设置了运行作业列表,并且为每一个用户均设置了资源配额以及资源使用阈值;其中,所述资源配额以及资源使用阈值可以采用百分比的形式来表征。
优选地,所述第一选取单元1002,还用于为至少一个用户中每个用户建立运行作业列表,所述运行作业列表包括有用户信息、作业的标识、以及作业的第一特征参数;从所述运行作业列表中选取最大的第一特征参数,获取到最大的第一特征参数对应的作业作为所述第一作业。
本实施例中,所述第二选取单元,具体用于根据所述每个用户的第一作业的第一特征参数,从所述至少一个用户中选取最大的第一特征参数对应的作业作为第二作业。
优选地,所述第二作业符合第一预设条件的判断方法可以包括:所述第二作业的第一特征参数大于第一预设门限值;其中,所述第一预设门限值可以为根据实际情况设置的门限值,比如,可以设置为0.9。
优选地,第三选取单元,具体用于获取到所述第二作业对应的第一用户,判断所述第一用户是否满足第二预设条件,若满足第二预设条件,则从所述第一用户的运行作业列表中选取第三作业;若不满足第二预设条件,则从除所述第一用户外的其他用户中选取符合第二预设条件的第二用户,从所述第二用户的运行作业列表中选取处理资源大于等于所述第二作业的第三作业;
其中,所述第二预设条件表征所述用户的已用资源超过其资源配额。
进一步的,上述选取第三作业的具体方式可以为从运行作业列表中选取处理资源大于等于所述第二作业的一个作业作为第三作业;或者,还可以为将运行作业列表中排在最前一个作业作为第三作业。
可见,采用上述方案,就能够根据处理紧急度从至少一个用户的至少一个作业中选取出第二作业,在所述第二作业需要获取其他作业的处理资源时,选取第三作业,并占用所述第三作业的处理资源。如此,能够优先调度整个集群的多个用户中最为紧急的作业,从而使得集群实现公平且高效的进行作业调度。
实施例五、
本发明实施例提供了一种作业调度系统,如图10所示,包括:
信息获取单元1001,用于获取到至少一个用户的作业信息,利用所述至少一个用户的作业信息,计算得到每个用户的至少一个作业的第一特征参数;所述第一特征参数用于表征所述作业的处理紧急度;
第一选取单元1002,用于基于所述每个用户的至少一个作业的第一特征参数,分别选取至少一个用户中每个用户的第一作业;
第二选取单元1003,用于根据所述每个用户的第一作业的第一特征参数,从至少一个用户的所述每个用户的第一作业中选取第二作业;
第三选取单元1004,用于当所述第二作业符合第一预设条件时,选取第三作业;所述第一预设条件表征所述第二作业的第一特征参数大于第一预设门限值;
资源管理单元1005,用于将所述第三作业对应的资源分配给所述第二作业,并利用分配的所述资源处理所述第二作业。
这里,所述信息获取单元分别获取所述每个用户的至少一个作业对应的运行时长以及截止时刻;利用作业的所述截至时刻计算得到可用时长;将作业的运行时长与所述可用时长的比值作为所述作业的第一特征参数。第一特征参数的计算可以采用以下公式:urgency=run_duration/avail_time;其中,run_duration表示作业的运行时长,avail_time表示当前时刻至第一作业的所述截止时刻之间的可用时长。
本实施例中假设作业的可用时长总是大于0的,因为如果可用时长小于等于0,则表示作业已经错过完成截止时间,运行该作业通常已经没有实际意义。由于假设可用时长总是大于0的,且作业的预计运行时间必然大于0,因此作业第一特征参数也总是大于0。在此基础上,以数值1作为第一特征参数的分界线,如果第一特征参数大于等于1,表明作业的预计运行时长大于等于可用时长,则作业理论上已经无法在截止时间前完成;如果第一特征参数小于1,则表明作业的预计运行时间小于可用时长,则作业预计可以在截止时间前顺利完成。从变化趋势上看,第一特征参数越大,表示相比于作业的预计运行时间,可用时长已经不多,表明作业更为紧急,为了保证作业在截止时间前完成,应当尽早调度该作业;第一特征参数越小,表示相比于作业的预计运行时间,可用时长还较为充足,表明作业相对不紧急,可以优先调度其他紧急程度更高的作业。
可以理解的是,执行上述步骤101之前,首先需要在提交作业时确定作业的运行时长和截止时刻;所述运行时长表示作业从开始执行到完成预计需要花费的时间;所述截至时刻为用户根据实际情况设置的时刻。本实施例提供确定作业的运行时长和截止时刻的两种方法:
一、用户登录一个用户后,需要提交作业,在用户提交作业的时候设置作业的运行时长和截止时刻;
二、当用户登录用户并提交作业之后,由服务器根据作业的类型以及大小估算作业的运行时长以及截止时刻;研究表明,绝大多数数据处理作业具有重复性特征。这些作业通常会定期重复运行,其应用类型和处理逻辑相同,但具体处理的数据规模可能不同。通过定期观察记录,对于一个给定作业,可以凭借用户经验或模拟器来预估其运行时间。因此,预估一个作业的运行时间在理论和实践上都具有可行性。
优选地,所述步骤101可以根据实际情况设置为周期性执行的步骤,因为随着时间的推移,当前时间点会不断变化,作业的可用时长也会随之变化,进而作业紧急度也会实时变化。为此,调度机制会为每个作业维护上述参数,比如,当业务较为空闲的时候,可以为每5分钟进行一次计算;如果当前集群中用户较为繁忙时,可以设置为1分钟进行一次计算。如此,能够进一步的保证作业的第一特征参数的准确性。
本实施例中,所述用户对应的用户信息可以包括有资源配额、资源使用阈值等参数。为了实现多个用户均能够公平高效地共享集群中的资源,为每个用户设置了运行作业列表,并且为每一个用户均设置了资源配额以及资源使用阈值;其中,所述资源配额以及资源使用阈值可以采用百分比的形式来表征。
其中,所述资源配额表示用户共享集群资源的配额。比如,当集群中各个用户都处于忙碌状态时,每一个用户根据资源配额共享集群资源。另外,当集群相对空闲时,忙碌的用户可以超过资源配额参数暂时使用集群中的空闲资源。这样空闲资源可以地被忙碌租户充分使用,避免资源浪费,提高了集群的资源利用率,实现了资源的高效共享。由于租户实际使用资源可能超过其资源配额,为了防止单个租户占用过多资源,系统通过资源使用阈值对其进行限制,使用资源不可超过资源使用阈值。
优选地,所述第一选取单元,具体用于为至少一个用户中每个用户建立运行作业列表;从所述运行作业列表中选取最大的第一特征参数,对应的作业作为所述第一作业;其中,所述运行作业列表的建立可以为:服务器将每一个用户的调度队列中所有运行作业汇总形成的列表,其中,所述运行作业列表中可以包括有:用户信息、作业的标识、作业所需的处理资源以及作业的第一特征参数。
本实施例中选取到第一作业之后,可以在服务器中将该第一作业记录为第一作业个二元组<User,Job>,即<用户信息,第一作业的标识>。
本实施例中,所述根据每个用户的第一作业的第一特征参数,从至少一个用户的所述每个用户的第一作业中选取出第二作业,可以包括:根据所述每个用户的第一作业的第一特征参数,从所述至少一个用户中选取最大的第一特征参数对应的作业作为第二作业。
优选地,所述第二选取单元,具体用于所述第二作业的第一特征参数大于第一预设门限值;其中,所述第一预设门限值可以为根据实际情况设置的门限值,比如,可以设置为0.9。在集群中,用户数量和作业数量往往较大,而为了节省成本,集群规模常常较为有限,这就出现了资源受限的场景。在资源受限的场景下,为了保证作业在截止时间之前完成,必须要实现一种资源抢占机制。在资源受限的前提下,非常紧急的作业可以抢占资源。资源不足时,如果作业并非十分紧急,可以等待当前作业完成、出现空闲资源后再执行作业,这样既不会影响作业按时完成,又可以避免抢占带来的额外开销。但是如果作业非常紧急,又没有空闲资源,则作业不可以再继续等待,因为继续等待很可能会导致作业错过截止时间,此时需要进行抢占。为了量化作业“非常紧急”这一概念,本实施例中设定了第一预设门限值t1,当作业的第一特征参数大于第一预设门限值t1时,就认为该作业满足了第一预设条件可以抢占资源。
优选地,所述第三选取单元,具体用于获取到所述第二作业对应的第一用户,判断所述第一用户是否满足第二预设条件,若满足第二预设条件,则依次从所述第一用户的运行作业列表中选取作业,判断选取的作业的第一特征参数是否小于第二预设门限值,若小于第二预设门限值,则将选取的作业作为第三作业,结束处理;否则,从除所述第一用户外的其他用户中选取符合第二预设条件的第二用户,依次从所述第二用户的运行作业列表中选取作业,判断选取的作业的第一特征参数是否小于第二预设门限值,若小于第二预设门限值,则将选取的作业作为第三作业。
上述第二预设门限值小于第一预设门限值,比如可以设置所述第二预设门限值为0.85;即不能够抢占处理紧急度高于0.85的作业的处理资源。如此,就能够在保证最紧急的作业的处理效率之外,还能够保证较为紧急的作业的处理资源不被抢占。
可见,采用上述方案,就能够根据处理紧急度从至少一个用户的至少一个作业中选取出第二作业,在所述第二作业需要获取其他作业的处理资源时,选取第三作业,并占用所述第三作业的处理资源。如此,能够优先调度整个集群的多个用户中最为紧急的作业,从而使得集群实现公平且高效的进行作业调度。
实施例六、
本发明实施例提供了一种作业调度系统,如图10所示,包括:
信息获取单元1001,用于获取到至少一个用户的作业信息,利用所述至少一个用户的作业信息,计算得到每个用户的至少一个作业的第一特征参数;所述第一特征参数用于表征所述作业的处理紧急度;
第一选取单元1002,用于基于所述每个用户的至少一个作业的第一特征参数,分别选取至少一个用户中每个用户的第一作业;
第二选取单元1003,用于根据所述每个用户的第一作业的第一特征参数,从至少一个用户的所述每个用户的第一作业中选取第二作业;
第三选取单元1004,用于当所述第二作业符合第一预设条件时,选取第三作业;所述第一预设条件表征所述第二作业的第一特征参数大于第一预设门限值;
资源管理单元1005,用于将所述第三作业对应的资源分配给所述第二作业,并利用分配的所述资源处理所述第二作业。
本实施例中,所述用户对应的用户信息可以包括有资源配额、资源使用阈值等参数。为了实现多个用户均能够公平高效地共享集群中的资源,为每个用户设置了运行作业列表,并且为每一个用户均设置了资源配额以及资源使用阈值;其中,所述资源配额以及资源使用阈值可以采用百分比的形式来表征。
其中,所述资源配额表示用户共享集群资源的配额。比如,当集群中各个用户都处于忙碌状态时,每一个用户根据资源配额共享集群资源。另外,当集群相对空闲时,忙碌的用户可以超过资源配额参数暂时使用集群中的空闲资源。这样空闲资源可以地被忙碌租户充分使用,避免资源浪费,提高了集群的资源利用率,实现了资源的高效共享。由于租户实际使用资源可能超过其资源配额,为了防止单个租户占用过多资源,系统通过资源使用阈值对其进行限制,使用资源不可超过资源使用阈值。
优选地,所述第一选取单元,用于为至少一个用户中每个用户建立运行作业列表;从所述运行作业列表中选取最大的第一特征参数,对应的作业作为所述第一作业;其中,所述运行作业列表的建立可以为:服务器将每一个用户的调度队列中所有运行作业汇总形成的列表,其中,所述运行作业列表中可以包括有:用户信息、作业的标识、作业所需的处理资源以及作业的第一特征参数。
本实施例提供多个用户的调度队列示意图,如图3所示,其中包括有三个用户的用户,分别为用户1、用户2和用户3;在调度队列中分别记录有每一个用户的资源配额和资源使用阈值;并且在调度队列中有每个用户的至少一个作业。
本实施例中选取到第一作业之后,可以在第一选取单元中将该第一作业记录为第一作业个二元组<User,Job>,即<用户信息,第一作业的标识>。
优选地,第一选取单元利用所述至少一个用户中每个用户的第一作业建立第一作业信息列表;逐个所述第一作业信息列表中每个第一作业对应的用户的已用资源是否大于资源使用阈值,若大于资源使用阈值,则从所述第一作业信息列表中删除所述第一作业,得到更新后的第一作业信息列表。
相应的,所述第二选取单元从更新后的所述第一作业信息列表中选取第二作业。
其中,所述资源使用阈值可以为根据实际情况设置,比如可以设置为40%。
上述建立第一作业信息列表的方法可以为:利用第一作业二元组建立所述第一作业信息列表。
图4为构建第一作业信息列表过程的示意图,其中,用户调度队列中有用户a、用户b、用户c,每个用户的调度队列中记录有作业信息;所述作业信息包括有对应的用户、第一特征参数。从每个用户的调度队列中选取第一特征参数最大的一个作业作为该用户的第一作业;比如,图4中选取用户a的作业(a,0.5),用户b的作业(b,0.5),用户c的作业(c,0.6),将上述选取的多个用户的第一作业作为第一作业信息列表。
进一步的,上述用户的已用资源的计算方法可以有以下两种计算方式:
第一种、直接从服务器的记录中获取到用户的已用资源的记录;
第二中,从服务器的记录中获取用户的已用资源的记录之后,将用户的已用资源与调度队列中待调度的作业的所需资源做和,得到计算后的用户的已用资源。可以以百分比的形式表示。
另外,还可以包括从第一作业信息列表中筛除作业为空的二元组。
本实施例中,所述第二选取单元选取出第二作业,可以包括以下两种实现方式:
方式一、根据所述每个用户的第一作业的第一特征参数,从所述至少一个用户中选取最大的第一特征参数对应的作业作为第二作业。
方式二、根据用户的已用资源是否大于预设的用户的资源配额对所述至少一个用户进行分类,将已用资源大于预设的用户的资源配额的用户作为第一类用户,将已用资源不大于预设的用户的资源配额的用户作为第二类用户;从所述第二类用户中选取最大的第一特征参数对应的作业作为第二作业。
可以理解的是,在使用上述方式二时,有可能会出现第二类用户为零的情况,如果无第二类用户,则从所述第一类用户中选取最大的第一特征参数对应的作业作为第二作业。
图5为选择作业流程的示意图,图中用户a已用资源超过了资源使用阈值,在初期针对第一作业进行删除的操作中就会被去除;用户b和用户c已用资源未超过用户的资源配额,从用户b和用户c选取一个紧急度最高的作业(c,0.6),记为第二作业。
根据上述思路,假设每个用户的第一作业记为job;每个用户与其第一作业组成第一作业二元组,记为<user,job>;所有第一作业二元组组成一个第一作业列表,记为user_job_list。首先,初始化未超过资源配额的最紧急作业第二类用户对应的第一作业为job_in,且job_in.urgency为0;初始化第一类用户对应的第一作业job_beyond,job_beyond.urgency为0。本实施例针对上述步骤103的算法流程如下:
优选地,所述第三选取单元选取第三作业,包括:获取到所述第二作业对应的第一用户,判断所述第一用户是否满足第二预设条件,若满足第二预设条件,则依次从所述第一用户的运行作业列表中选取作业,判断选取的作业的第一特征参数是否小于第二预设门限值,若小于第二预设门限值,则将选取的作业作为第三作业,结束处理;若不满足第二预设条件,从除所述第一用户外的其他用户中选取符合第二预设条件的第二用户,依次从所述第二用户的运行作业列表中选取作业,判断选取的作业的第一特征参数是否小于第二预设门限值,若小于第二预设门限值,则将选取的作业作为第三作业。
上述第二预设门限值小于第一预设门限值,比如可以设置所述第二预设门限值为0.85;即不能够抢占处理紧急度高于0.85的作业的处理资源。如此,就能够在保证最紧急的作业的处理效率之外,还能够保证较为紧急的作业的处理资源不被抢占。
优选地,所述第三选取单元依次从所述第一用户的运行作业列表中选取作业之前,基于所述第一用户的运行作业列表中的至少一个作业的第一特征参数,将所述运行作业列表中的至少一个作业进行排序。其中,所述排序的方式具体根据第一特征参数从小到大的顺序进行排序,
根据上述思路,假设每个用户的第一作业记为job;每个用户与其第一作业组成第一作业二元组,记为<user,job>;所有第一作业二元组组成一个第一作业列表,记为user_job_list。首先,初始化未超过资源配额的最紧急作业第二类用户对应的第一作业为job_in,且job_in.urgency为0;初始化第一类用户对应的第一作业job_beyond,job_beyond.urgency为0。本实施例中第二作业抢占资源的操作算法可以如下:
可以理解的是,本实施例中提供的作业调度系统可以由一个或多个服务器组成,比如,当作业调度系统由一个服务器组成时,上述信息获取单元、第一选取单元、第二选取单元、第三选取单元、资源管理单元可以均设置与该服务器中;当所述作业调度系统由多个服务器组成时,可以将上述信息获取单元、第一选取单元、第二选取单元、第三选取单元、资源管理单元分别设置于不同的服务器中,即每个服务器对应一个单元。或者,所述作业调度系统中具备三个服务器,信息获取单元设置于第一服务器中,第一选取单元、第二选取单元、第三选取单元共同设置与第二服务器中,资源管理单元设置与第三服务器中。
可见,采用上述方案,就能够根据处理紧急度从至少一个用户的至少一个作业中选取出第二作业,在所述第二作业需要获取其他作业的处理资源时,选取第三作业,并占用所述第三作业的处理资源。如此,能够优先调度整个集群的多个用户中最为紧急的作业,从而使得集群实现公平且高效的进行作业调度。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例基于上述设备实施例提供一个具体的硬件,如图11所示,所述作业调度系统可以由一个或多个服务器组成,其中,每一个服务器可以包括处理器1102、存储介质1104以及至少一个外部通信接口1101;所述处理器1102、存储介质1104以及外部通信接口1101均通过总线1103连接。所述处理器1102可为微处理器、中央处理器、数字信号处理器或可编程逻辑阵列等具有处理功能的电子元器件。所述存储介质中存储有计算机可执行代码。
通过上述图11提供的一个或多个硬件组成作业调度系统执行所述计算机可执行代码时,至少能实现以下功能;
获取到至少一个用户的作业信息,利用所述至少一个用户的作业信息,计算得到每个用户的至少一个作业的第一特征参数;所述第一特征参数用于表征所述作业的处理紧急度;
基于所述每个用户的至少一个作业的第一特征参数,分别选取至少一个用户中每个用户的第一作业;
根据所述每个用户的第一作业的第一特征参数,从至少一个用户的所述每个用户的第一作业中选取第二作业;
当所述第二作业符合第一预设条件时,选取第三作业;所述第一预设条件表征所述第二作业的第一特征参数大于第一预设门限值;
将所述第三作业对应的资源分配给所述第二作业,并利用分配的所述资源处理所述第二作业。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (14)

1.一种作业调度方法,其特征在于,所述方法包括:
获取到至少一个用户的作业信息,利用所述至少一个用户的作业信息,计算得到每个用户的至少一个作业的第一特征参数;所述第一特征参数用于表征所述作业的处理紧急度;
基于所述每个用户的至少一个作业的第一特征参数,分别选取至少一个用户中每个用户的第一作业;
根据所述每个用户的第一作业的第一特征参数,从至少一个用户的所述每个用户的第一作业中选取第二作业;
当所述第二作业符合第一预设条件时,选取第三作业;所述第一预设条件表征所述第二作业的第一特征参数大于第一预设门限值;
将所述第三作业对应的资源分配给所述第二作业,并利用分配的所述资源处理所述第二作业。
2.根据权利要求1所述的方法,其特征在于,所述计算得到每个用户的至少一个作业的第一特征参数,包括:
分别获取所述每个用户的至少一个作业对应的运行时长以及截止时刻;
利用作业的所述截至时刻计算得到可用时长;
将作业的运行时长与所述可用时长的比值作为所述作业的第一特征参数。
3.根据权利要求1所述的方法,其特征在于,所述分别选取至少一个用户中每个用户的第一作业之后,所述方法还包括:
利用所述至少一个用户中每个用户的第一作业建立第一作业信息列表;
逐个所述第一作业信息列表中每个第一作业对应的用户的已用资源是否大于资源使用阈值,
若大于资源使用阈值,则从所述第一作业信息列表中删除所述第一作业,得到更新后的第一作业信息列表;
相应的,所述从至少一个用户的所述每个用户的第一作业中选取出第二作业,包括:从更新后的所述第一作业信息列表中选取第二作业。
4.根据权利要求3所述的方法,其特征在于,所述选取第二作业,包括:
根据用户的已用资源是否大于预设的用户的资源配额对所述至少一个用户进行分类,将已用资源大于预设的用户的资源配额的用户作为第一类用户,将已用资源不大于预设的用户的资源配额的用户作为第二类用户;
从所述第二类用户中选取第一特征参数大于第一预设门限值、且为所述第二类用户中最大的第一特征参数对应的作业作为第二作业。
5.根据权利要求1所述的方法,其特征在于,所述选取第三作业,包括:
获取到所述第二作业对应的第一用户,判断所述第一用户是否满足第二预设条件,若满足第二预设条件,则从所述第一用户的运行作业列表中选取第三作业;
若不满足第二预设条件,则从除所述第一用户外的其他用户中选取符合第二预设条件的第二用户,从所述第二用户的运行作业列表中选取第三作业;
其中,所述第二预设条件表征所述用户的已用资源超过其资源配额。
6.根据权利要求1所述的方法,其特征在于,所述选取第三作业,包括:
获取到所述第二作业对应的第一用户,判断所述第一用户是否满足第二预设条件,
若满足第二预设条件,则依次从所述第一用户的运行作业列表中选取作业,判断选取的作业的第一特征参数是否小于第二预设门限值,若小于第二预设门限值,则将选取的作业作为第三作业;
若不满足第二预设条件,则从除所述第一用户外的其他用户中选取符合第二预设条件的第二用户,依次从所述第二用户的运行作业列表中选取作业,判断选取的作业的第一特征参数是否小于第二预设门限值,若小于第二预设门限值,则将选取的作业作为第三作业。
7.根据权利要求6所述的方法,其特征在于,所述依次从所述第一用户的运行作业列表中选取作业之前,所述方法还包括:
基于所述第一用户的运行作业列表中的至少一个作业的第一特征参数,将所述运行作业列表中的至少一个作业进行排序。
8.一种作业调度系统,其特征在于,所述系统包括:
信息获取单元,用于获取到至少一个用户的作业信息,利用所述至少一个用户的作业信息,计算得到每个用户的至少一个作业的第一特征参数;所述第一特征参数用于表征所述作业的处理紧急度;
第一选取单元,用于基于所述每个用户的至少一个作业的第一特征参数,分别选取至少一个用户中每个用户的第一作业;
第二选取单元,用于根据所述每个用户的第一作业的第一特征参数,从至少一个用户的所述每个用户的第一作业中选取第二作业;
第三选取单元,用于当所述第二作业符合第一预设条件时,选取第三作业;所述第一预设条件表征所述第二作业的第一特征参数大于第一预设门限值;
资源管理单元,用于将所述第三作业对应的资源分配给所述第二作业,并利用分配的所述资源处理所述第二作业。
9.根据权利要求8所述的系统,其特征在于,所述信息获取单元,具体用于分别获取所述每个用户的至少一个作业对应的运行时长以及截止时刻;利用作业的所述截至时刻计算得到可用时长;将作业的运行时长与所述可用时长的比值作为所述作业的第一特征参数。
10.根据权利要求8所述的系统,其特征在于,所述第一选取单元,还用于利用所述至少一个用户中每个用户的第一作业建立第一作业信息列表;逐个所述第一作业信息列表中每个第一作业对应的用户的已用资源是否大于资源使用阈值,若大于资源使用阈值,则从所述第一作业信息列表中删除所述第一作业,得到更新后的第一作业信息列表;
相应的,所述第二选取单元,具体用于从更新后的所述第一作业信息列表中选取第二作业。
11.根据权利要求10所述的系统,其特征在于,所述第二选取单元,具体用于根据用户的已用资源是否大于预设的用户的资源配额对所述至少一个用户进行分类,将已用资源大于预设的用户的资源配额的用户作为第一类用户,将已用资源不大于预设的用户的资源配额的用户作为第二类用户;从所述第二类用户中选取第一特征参数大于第一预设门限值、且为所述第二类用户中最大的第一特征参数对应的作业作为第二作业。
12.根据权利要求8所述的系统,其特征在于,所述第三选取单元,具体用于获取到所述第二作业对应的第一用户,判断所述第一用户是否满足第二预设条件,若满足第二预设条件,则从所述第一用户的运行作业列表中选取第三作业;若不满足第二预设条件,则从除所述第一用户外的其他用户中选取符合第二预设条件的第二用户,从所述第二用户的运行作业列表中选取第三作业;
其中,所述第二预设条件表征所述用户的已用资源超过其资源配额。
13.根据权利要求8所述的系统,其特征在于,所述第三选取单元,具体用于获取到所述第二作业对应的第一用户,判断所述第一用户是否满足第二预设条件,若满足第二预设条件,则依次从所述第一用户的运行作业列表中选取作业,判断选取的作业的第一特征参数是否小于第二预设门限值,若小于第二预设门限值,则将选取的作业作为第三作业;若不满足第二预设条件,则从除所述第一用户外的其他用户中选取符合第二预设条件的第二用户,依次从所述第二用户的运行作业列表中选取作业,判断选取的作业的第一特征参数是否小于第二预设门限值,若小于第二预设门限值,则将选取的作业作为第三作业。
14.根据权利要求13所述的系统,其特征在于,所述第三选取单元,还用于基于所述第一用户的运行作业列表中的至少一个作业的第一特征参数,将所述运行作业列表中的至少一个作业进行排序。
CN201510212805.7A 2015-04-29 2015-04-29 一种作业调度方法及系统 Active CN105022668B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510212805.7A CN105022668B (zh) 2015-04-29 2015-04-29 一种作业调度方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510212805.7A CN105022668B (zh) 2015-04-29 2015-04-29 一种作业调度方法及系统

Publications (2)

Publication Number Publication Date
CN105022668A true CN105022668A (zh) 2015-11-04
CN105022668B CN105022668B (zh) 2020-11-06

Family

ID=54412657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510212805.7A Active CN105022668B (zh) 2015-04-29 2015-04-29 一种作业调度方法及系统

Country Status (1)

Country Link
CN (1) CN105022668B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106855824A (zh) * 2015-12-09 2017-06-16 北京金山安全软件有限公司 一种任务停止方法、装置及电子设备
CN106855825A (zh) * 2015-12-08 2017-06-16 中国移动通信集团公司 一种任务处理方法及其装置
WO2017140237A1 (en) * 2016-02-19 2017-08-24 Huawei Technologies Co., Ltd. Method and system for multi-tenant resource distribution
CN108073446A (zh) * 2016-11-10 2018-05-25 华为技术有限公司 超时预判方法及装置
CN108074042A (zh) * 2017-12-28 2018-05-25 华润电力技术研究院有限公司 一种测风数据处理系统
CN109697112A (zh) * 2018-12-24 2019-04-30 广东亿迅科技有限公司 分布式集约化一站式作业系统和实现方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006050349A3 (en) * 2004-10-29 2009-04-09 Hewlett Packard Development Co Methods and apparatus for running applications on computer grids
CN102541642A (zh) * 2011-12-30 2012-07-04 中国科学院软件研究所 一种增强实时性能的任务管理方法
CN103699445A (zh) * 2013-12-19 2014-04-02 北京奇艺世纪科技有限公司 一种任务调度方法、装置及系统
CN104021044A (zh) * 2013-02-28 2014-09-03 中国移动通信集团浙江有限公司 一种作业调度方法及装置
CN104040526A (zh) * 2012-01-09 2014-09-10 微软公司 对虚拟机池中的资源的分派
CN104239154A (zh) * 2014-10-09 2014-12-24 浪潮(北京)电子信息产业有限公司 一种Hadoop集群中的作业调度方法和作业调度器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006050349A3 (en) * 2004-10-29 2009-04-09 Hewlett Packard Development Co Methods and apparatus for running applications on computer grids
CN102541642A (zh) * 2011-12-30 2012-07-04 中国科学院软件研究所 一种增强实时性能的任务管理方法
CN104040526A (zh) * 2012-01-09 2014-09-10 微软公司 对虚拟机池中的资源的分派
CN104021044A (zh) * 2013-02-28 2014-09-03 中国移动通信集团浙江有限公司 一种作业调度方法及装置
CN103699445A (zh) * 2013-12-19 2014-04-02 北京奇艺世纪科技有限公司 一种任务调度方法、装置及系统
CN104239154A (zh) * 2014-10-09 2014-12-24 浪潮(北京)电子信息产业有限公司 一种Hadoop集群中的作业调度方法和作业调度器

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106855825A (zh) * 2015-12-08 2017-06-16 中国移动通信集团公司 一种任务处理方法及其装置
CN106855824A (zh) * 2015-12-09 2017-06-16 北京金山安全软件有限公司 一种任务停止方法、装置及电子设备
CN106855824B (zh) * 2015-12-09 2020-02-28 北京金山安全软件有限公司 一种任务停止方法、装置及电子设备
WO2017140237A1 (en) * 2016-02-19 2017-08-24 Huawei Technologies Co., Ltd. Method and system for multi-tenant resource distribution
CN108701059A (zh) * 2016-02-19 2018-10-23 华为技术有限公司 多租户资源分配方法和系统
US10609129B2 (en) 2016-02-19 2020-03-31 Huawei Technologies Co., Ltd. Method and system for multi-tenant resource distribution
CN108073446A (zh) * 2016-11-10 2018-05-25 华为技术有限公司 超时预判方法及装置
CN108073446B (zh) * 2016-11-10 2020-11-17 华为技术有限公司 超时预判方法及装置
CN108074042A (zh) * 2017-12-28 2018-05-25 华润电力技术研究院有限公司 一种测风数据处理系统
CN108074042B (zh) * 2017-12-28 2021-07-13 华润电力技术研究院有限公司 一种测风数据处理系统
CN109697112A (zh) * 2018-12-24 2019-04-30 广东亿迅科技有限公司 分布式集约化一站式作业系统和实现方法
CN109697112B (zh) * 2018-12-24 2023-05-16 广东亿迅科技有限公司 分布式集约化一站式作业系统和实现方法

Also Published As

Publication number Publication date
CN105022668B (zh) 2020-11-06

Similar Documents

Publication Publication Date Title
CN112153700B (zh) 一种网络切片资源管理方法及设备
CN105022668A (zh) 一种作业调度方法及系统
EP3553657A1 (en) Method and device for allocating distributed system task
EP2742426B1 (en) Network-aware coordination of virtual machine migrations in enterprise data centers and clouds
CN107295090B (zh) 一种资源调度的方法和装置
JP2021521518A (ja) 仮想マシンスケジューリング方法および装置
CN110389816B (zh) 用于资源调度的方法、装置以及计算机可读介质
CN105900064A (zh) 调度数据流任务的方法和装置
CN111210136B (zh) 一种机器人任务调度的方法及服务器
CN112148468B (zh) 一种资源调度方法、装置、电子设备及存储介质
EP3675434A1 (en) Distributed system resource allocation method, device and system
CN109783225B (zh) 一种多租户大数据平台的租户优先级管理方法及系统
CN108762885B (zh) 一种虚拟机创建方法、装置、管理设备及终端设备
WO2020172852A1 (en) Computing resource scheduling method, scheduler, internet of things system, and computer readable medium
CN112540841A (zh) 任务调度的方法、装置、处理器与电子设备
CN109634714B (zh) 一种智能调度的方法及装置
CN112860387A (zh) 分布式任务调度方法、装置、计算机设备及存储介质
WO2019029721A1 (zh) 任务的调度方法、装置、设备及存储介质
CN109189581B (zh) 一种作业调度方法和装置
CN116483546A (zh) 分布式训练任务调度方法、装置、设备及存储介质
US11388050B2 (en) Accelerating machine learning and profiling over a network
CN108429704B (zh) 一种节点资源分配方法及装置
Naik A deadline-based elastic approach for balanced task scheduling in computing cloud environment
US10866833B2 (en) Method and appratus for implementing microkernel architecture of industrial server
CN114253663A (zh) 一种虚拟机资源的调度方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant