一种节能作业调度***
技术领域
本发明涉及网络管理技术领域,具体涉及一种节能作业调度***。
背景技术
随着信息产业的发展,大规模计算机集群越来越普及,节点数量大幅增长的同时不可避免的带来电力消耗的快速增长。集群的扩容同样意味着配套设施的扩建,更加剧了能源消耗。大量能源消耗意味着大量的热能,不仅增加了机房配套冷却设施的投入,同时温度的升高也会影响整个集群的稳定性和可靠性。节能技术的重要性不言而喻。
现有节能技术主要分为三个层次:
硬件层次。该层次的节能技术可概括为:一、利用集成电路的低功耗设计制造技术,减少电路的漏电流,降低工作电压和频率,从而减少集成电路的静态和动态功耗。二、在硬件上实现智能的功耗管理算法,当硬件利用率低时,降低硬件的电压和频率,关闭一些空闲的部件。三、根据应用的特点,选择合适的低功耗部件组成计算机***。
第三种层次的节能技术的现有技术包括:
PBS professional:按需开关节点
Moab:按需开关节点,动态迁移虚拟机。
SGE:按需开关节点
Condor:按需开关节点
SLURM:按需开关节点
可以看出,节能调度已经被多数的作业调度***采用,现有技术使用最多的是按需开关节点的调度方法,研究关注的主要是同构集群,很少关注异构集群。而且使用的节能技术单一,没有考虑能源成本、服务器性能功耗比等因素的影响。
节点的状态调整会额外消耗能源,并且节点的启动需要时间。按需开关节点会给运行作业带来延迟,但是现有的作业调度***都没有提供该方面数据。节点的状态调整不但会影响到节能效果,还会影响到***的性能和可靠性,为此我们需要解决以下问题:
(1)节点何时进入节能状态。既要避免频繁的状态转换消耗额外资源,又要使节点尽可能长时间的处于节能状态;
(2)处于节能状态的节点何时被唤醒。通常的处理方式是在作业到来后需要某个节点时才唤醒该节点。因为节点唤醒需要一段时间,这种方式会对作业的响应造成延时。所以需要在作业到来之前能够提前唤醒节点。由于作业提交是随机事件,难以估计作业何时到来。
(3)如何判断哪些节点进入节能状态,唤醒哪些节点。例如有节点A和B都处于空闲状态,我们关闭A来节省能源,B处于空闲状态,用于运行以后到来的作业,减少对作业响应的延时。但是等到作业到来时,只有节点A符合作业的要求,我们不得不唤醒A。这造成了A的频繁状态装换,而B处于空闲状态白白浪费了能源。同样,提前唤醒节点也会有类似问题。
(4)节点空闲时调整到何种节能状态。节点的节能状态包括工作时不同的性能状态和空闲时不同的睡眠状态。不同状态的能耗和恢复到工作状态的延时不一样,能耗越低,恢复到工作状态的时间越长。所以需要在节能和延时之间做出选择。
发明内容
本发明一种节能作业调度***,所述***应用于计算机集群,所述计算机集群包括管理节点和计算节点,所述计算节点为用于运行作业的节点,所述管理节点为管理、调度任务至计算节点的节点;所述调度***包括管理器、调度器和执行器,所述管理节点上部署有所述管理器和所述调度器,每个所述计算节点上各部署有一个所述执行器;
所述节能作业调度***的调度流程包括:
步骤S1,所述管理器接收用户提交的作业;
步骤S2,所述管理器将所述接收到的作业放到所述作业要求提交到的队列中,将所述作业的状态改为空闲状态;
步骤S3,所述管理器把新作业到来的消息发送给所述调度器,所述调度器根据所述作业的信息和作业调度策略计算状态为空闲状态的作业的优先级,并选出优先级最高的作业;
步骤S4,所述调度器根据所述最高优先级的作业的资源要求、作业的特征、节点的状态和节点分配策略,给所述最高优先级的作业分配计算节点,所述调度器通知管理器在所述分配的计算节点上启动所述最高优先级的作业,所述管理器通知所述执行器在所述分配的计算节点上启动执行所述作业;
所述作业的资源要求包括cpu,gpu,内存和磁盘空间;
步骤S5,将空闲节点置于节能状态。
本发明提供的第一优选实施例中:所述步骤S1中所述接收到的用户提交的作业的信息包括:作业名称、要求的节点数量和节点属性、要求提交到的队列、可执行程序和要传输的数据。
本发明提供的第二优选实施例中:所述步骤S2中,所述管理器将所述接收到的作业放到所述作业要求提交到的队列中之前,检查提交所述作业的所述用户的权限以及所述作业的参数的有效性。
本发明提供的第三优选实施例中:所述步骤S3中,一个所述管理节点上的管理器和调度器相互连接通信,所述一个所述管理节点上的调度器向管理器注册过,所述管理器把新作业到来的消息发送给向它注册过的所述调度器。
本发明提供的第四优选实施例中:所述步骤S4中所述调度器给所述最高优先级的作业分配计算节点的过程包括:
步骤S401,从计算机集群的所有计算节点中筛选出满足该作业的资源要求的计算节点;
步骤S402,从步骤S401选出的所述计算节点中,根据所述作业的特征选择出运行效率高的计算节点;
步骤S403,从步骤S402选出的所述计算节点中,选出性能功耗比高的计算节点;
步骤S404,从步骤S403选出的所述计算节点中,根据所述计算节点的状态给所述最高优先级的作业分配计算节点。
本发明提供的第五优选实施例中:所述步骤S402中根据作业的特征选择作业运行效率高的计算节点包括:
如果作业不需要GPU资源,则选择没有所述GPU资源的计算节点给所述作业。
本发明提供的第六优选实施例中:所述步骤S404中根据所述计算节点的状态给所述最高优先级的作业分配计算节点,所述计算节点的状态优先选择的顺序依次为开启状态、启动状态、睡眠状态、正在进入睡眠状态、关闭状态和正在进入关闭状态。
本发明提供的第七优选实施例中:所述步骤S5中所述空闲节点包括:
空闲的时间超过了节点的空闲阈值的节点;
节点上预留资源的开始使用时间距离现在的时间大于所述节点进入和退出节能状态的时间之和,并且在所述开始使用时间距离现在的时间里所述节点处于节能状态节省的能源比所述节点状态切换消耗的额外能源大的节点。
本发明提供的第八优选实施例中:所述步骤S5中所述节点的状态包括睡眠状态和关闭状态;
根据所述节点已经处于空闲状态的时间来决定所述节点进入不同的状态,所述节点处于空闲状态的时间越长,进入功率更低的状态。
本发明提供的一种节能作业调度***的有益效果包括:
1、本发明提供的一种节能作业调度***,对队列中的作用按照优先级进行排列,按照作业的资源要求、作业的特征、节点的状态和节点分配策略给最高优先级的作业分配计算节点,合理控制节点的唤醒时间。
2、将符合条件的节点置于节能状态,明确哪些节点进入节能状态,既避免了频繁的状态转换消耗额外的资源,又使节点尽可能的处于节能状态。
3、根据节点已经处于空闲状态的时间来决定节点进入不同的节能状态,节点处于空闲状态的时间越长,进入功率更低的节能状态。
附图说明
如图1所示为本发明提供的一种节能作业调度***的结构图;
如图2所示为本发明提供的一种节能作业调度***的调度流程图;
如图3所示为本发明提供的调度器给作业分配计算节点的方法流程图。
具体实施方式
本发明提供一种节能作业调度***,该***应用于计算机集群,该计算机集群包括管理节点和计算节点,该计算节点为用于运行作业的节点,管理节点为管理、调度任务至计算节点的节点,该调度***包括管理器、调度器和执行器,其结构图如图1所示,由图1可知,管理节点上部署有管理器和调度器,每个计算节点上各部署有一个执行器。
管理器管理协调集群***的所有其他组成部分,包括***的资源,用户提交作业的请求以及运行的作业。调度器从管理器中获得节点以及作业信息,然后根据调度策略评估作业的优先级,决定作业在什么时间、在哪些节点上运行,最后将这些决策发送给管理器,管理器根据这些决策将作业发送给执行器。执行器接收来自资源管理器的作业,为作业初始化运行环境,监控作业的执行,并将作业执行信息发送给资源管理器。
该节能作业调度***的调度流程如图2所示,包括:
步骤S1,管理器接收用户提交的作业。
步骤S2,管理器将收到的作业放到该作业要求提交到的队列中,将该作业的状态改为空闲状态。
步骤S3,管理器把新作业到来的消息发送给调度器,调度器根据作业的信息和作业调度策略计算状态为空闲状态的作业的优先级,并选出优先级最高的作业。
步骤S4,调度器根据该最高优先级的作业的资源要求作业的特征、节点的状态和节点分配策略,给该最高优先级的作业分配计算节点,调度器通知管理器在所分配的计算节点上启动该最高优先级的作业,管理器通知执行器在分配的计算节点上启动执行该作业。
该作业的资源要求包括cpu,gpu,内存和磁盘空间等。
步骤S5,将空闲节点置于节能状态。
上述步骤S1中,该作业的信息包括:作业名称、要求的节点数量和节点属性、要求提交到的队列、可执行程序和要传输的数据等。
步骤S2中,管理器将收到的作业放到该作业要求提交到的队列中之前,检查提交该作业的用户的权限以及该作业的参数的有效性。
步骤S3中,一个管理节点上的管理器和调度器相互连接通信,该调度器向该管理器注册过,管理器把新作业到来的消息发送给向它注册过的调度器。
步骤S4中,调度器给该最高优先级的作业分配计算节点的过程如图3所示,包括:
步骤S401,从计算机集群的所有计算节点中筛选出满足该作业的资源要求的计算节点。
步骤S402,从步骤S401选出的计算节点中,根据该作业的特征选择出运行效率高的计算节点。
根据作业的特征选择作业运行效率高的计算节点包括:
如果作业不需要GPU(Graphic Processing Unit,图形处理器)资源,则选择没有GPU资源的计算节点给该作业。
步骤S403,从步骤S402选出的计算节点中,选出性能功耗比高的计算节点。
步骤S404,从步骤S403选出的计算节点中,根据计算节点的状态给该最高优先级的作业分配计算节点。
根据不同状态的计算节点优先选择的顺序依次为开启状态、启动状态、睡眠状态、正在进入睡眠状态、关闭状态和正在进入关闭状态。
步骤S5中的空闲节点包括:
空闲的时间超过了节点的空闲阈值的节点。
节点上预留资源的开始使用时间距离现在的时间大于节点进入和退出节能状态的时间之和,并且在开始使用时间距离现在的时间里该节点处于节能状态节省的能源比节点状态切换消耗的额外能源大的节点。
节点的状态包括开启状态、启动状态、睡眠状态和关闭状态。根据节点已经处于空闲状态的时间来决定节点进入不同的状态,节点处于空闲状态的时间越长,进入功率更低的状态。
以上虽然根据附图对本发明的实施例进行了详细说明,但不仅限于此具体实施方式,本领域的技术人员根据此具体技术方案进行的各种等同、变形处理,也在本发明的保护范围之内。