CN110457131B - 基于Docker容器的电力系统超算平台任务调度方法 - Google Patents

基于Docker容器的电力系统超算平台任务调度方法 Download PDF

Info

Publication number
CN110457131B
CN110457131B CN201910702436.8A CN201910702436A CN110457131B CN 110457131 B CN110457131 B CN 110457131B CN 201910702436 A CN201910702436 A CN 201910702436A CN 110457131 B CN110457131 B CN 110457131B
Authority
CN
China
Prior art keywords
node
resource
container
utilization rate
task
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.)
Expired - Fee Related
Application number
CN201910702436.8A
Other languages
English (en)
Other versions
CN110457131A (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.)
Huazhong University of Science and Technology
China Electric Power Research Institute Co Ltd CEPRI
Electric Power Research Institute of State Grid Henan Electric Power Co Ltd
Original Assignee
Huazhong University of Science and Technology
China Electric Power Research Institute Co Ltd CEPRI
Electric Power Research Institute of State Grid Henan Electric Power 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 Huazhong University of Science and Technology, China Electric Power Research Institute Co Ltd CEPRI, Electric Power Research Institute of State Grid Henan Electric Power Co Ltd filed Critical Huazhong University of Science and Technology
Priority to CN201910702436.8A priority Critical patent/CN110457131B/zh
Publication of CN110457131A publication Critical patent/CN110457131A/zh
Application granted granted Critical
Publication of CN110457131B publication Critical patent/CN110457131B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/06Energy or water supply
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Operations Research (AREA)
  • Public Health (AREA)
  • Water Supply & Treatment (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Supply And Distribution Of Alternating Current (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于Docker容器的电力系统超算平台任务调度方法及系统,属于电力系统超算平台领域,包括:节点调整步骤:预测未来集群资源使用率,若偏低,则减少开启节点数量,若偏高,则增加开启节点数量;资源配置步骤:预测未来集群资源使用率,若偏低,则在任务需求允许范围内,增加容器的资源配置,若偏高,则在任务需求允许范围内,减少容器的资源配置;容器调度步骤:部署调度队列中的容器,实现不同资源均衡负载或实现节点负载均衡;以及容器迁移步骤:预测未来所有节点资源使用情况以识别过载节点和轻载节点,将过载节点中部分容器迁移出,将轻载节点中全部容器迁移出以关闭节点。本发明能够提高电力系统超算平台资源利用率,降低能耗。

Description

基于Docker容器的电力系统超算平台任务调度方法
技术领域
本发明属于电力系统超算平台领域,更具体地,涉及一种基于Docker 容器的电力系统超算平台任务调度算法。
背景技术
电力系统的计算量随着网络规模的增大可能呈级数被增加,传统的单物理机无法满足计算需求,因此采用并行处理的方法,在计算集群上进行计算。现今,电力系统的计算任务主要运行于分布式计算模式的超算平台。但是超算平台存在低负载高能耗的问题,这会造成巨大的浪费。
容器技术是一种替代虚拟机的轻量级方案,Docker容器是资源分割和调度的基本单位,封装整个软件运行时环境,用于构建、发布和运行分布式应用的平台。与虚拟机不同的是,虚拟机是硬件虚拟化,即在物理硬件上虚拟化出一台虚拟机,需要利用hypervisor层实现,而容器技术是操作系统级别的虚拟化,可以通过软件实现。相比于虚拟机,Docker容器具有启动速度快,消耗资源少,轻量级等优点,因此,细粒度、部署调度灵活的 Docker容器使得在电力系统超算平台中实现负载集中、减少空闲节点以降低能耗成为了可能。
Docker容器提供了容器资源限制方式,容器资源限制指对CPU、内存和磁盘I/O等资源的使用限制,其中对于CPU资源限制有多种方式:第一种是设定容器CPU权重的软限制,使用该方式,宿主机通过根据容器的CPU 权重动态分配CPU资源;第二种是设定容器CPU数量的硬限制,使用该方式,宿主机限制容器可使用的CPU资源不超过容器的CPU数量;第三种是设定容器可使用CPU的硬限制,使用该方式,宿主机限制容器仅能使用限定的CPU。Docker容器服务中的Docker Swarm集群提供了容器调度方式,将容器调度至有充足的剩余资源足以负载容器,且剩余资源最多的节点。
但是针对于电力系统超算平台,没有基于Docker容器的任务调度方法,进一步也不存在根据电力系统低负载高能耗的特性对容器调度和资源配置进行优化的方法。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种基于Docker容器的电力系统超算平台任务调度方法,其目的在于,在尽量不影响超算平台运行的情况下,提高资源利用率以降低能耗。
旨在解决电力系统超算平台低负载高能耗的问题。
为实现上述目的,按照本发明的第一方面,提供了一种基于Docker容器的电力系统超算平台任务调度方法,包括:节点调整步骤、资源配置步骤以及容器调度步骤;
节点调整步骤包括:
(a1)以T为时间间隔,将超算平台的运行时间划分为多个调整周期;
(a2)在每一个调整周期的开始时刻,获得超算平台的历史资源使用情况,以预测超算平台在下一个调整周期的资源使用量UCluster,并确定对应的利用率阈值thr;
(a3)根据预测结果调整开启节点的数量,以使得超算平台的资源利用率维持在与利用率阈值thr相匹配的水平;
资源配置步骤包括:
(b1)在新任务TASKj到达时,为其创建容器;
(b2)若任务TASKj没有实时性要求,且超算平台中开启节点的数量已经经过了调整,则转入步骤(b3);否则,根据任务TASKj的任务需求进行资源配置后,转入步骤(b5);
(b3)获得超算平台的历史资源使用情况,以预测超算平台在下一个调整周期的资源利用率u′;
(b4)根据预测结果和任务需求为该容器配置资源,以使得在任务需求所允许的范围内,该容器的资源配置与资源利用率u′反相关;
(b5)将配置好的容器插入到容器调度队列中;
容器调度步骤包括:依次从容器调度队列中获取待调度的容器,根据其中的任务需求以及超算平台当前的资源使用情况,将该容器部署到超算平台的节点中。
本发明所提供的基于Docker容器的电力系统超算平台任务调度方法,在节点调整步骤中,通过预测未来的资源使用情况,并根据预测结果调整超算平台中开启节点的数量,使得超算平台的资源利用率维持在与利用率阈值相匹配的水平,能够在资源利用率偏低时提高资源利用率,以降低空闲资源的能耗,并在资源利用率偏高时保证服务质量;在资源配置过程中,通过预测未来的资源使用情况,并根据预测结果调整容器的资源配置,使得在任务需求允许的范围内,容器的资源配置与超算平台的资源利用率反相关,由此能够在超算平台资源利用率偏低时提高资源利用率,以降低空闲资源的能耗,并在资源利用率偏高时保证服务质量。总的来说,本发明第一方面提供的基于Docker容器的电力系统超算平台任务调度方法,能够在尽量不影响超算平台运行的情况下,提高资源利用率,从而降低能耗。
进一步地,步骤(a2)包括:
(a21)以T为时间间隔,向前依次获取m个时刻超算平台的CPU资源使用情况,以计算各时刻超算平台的CPU资源使用量,从而得到长度为m 的第一时间序列为:
Figure BDA0002151200550000031
(a22)若获取成功,说明超算平台已运行了足够长的时间,则转入步骤(a23);否则,说明超算平台处于运行的起始阶段,转入步骤(a24);
(a23)根据第一时间序列
Figure BDA0002151200550000041
预测下一个调整周期的资源使用量 UCluster,并确定下一个调整周期的利用率阈值为thr=thrhigh,预测结束;
(a24)预测下一个调整周期的资源使用量UCluster为超算平台当前的 CPU资源使用量,并确定下一个调整周期的利用率阈值为thr=thrlow,预测结束;
其中,tnow表示当前时刻,
Figure BDA0002151200550000042
表示在t时刻超算平台的CPU资源使用量,thrlow和thrhigh表示预设的阈值,0<thrlow<thrhigh<1,m∈N+;
由于在超算平台运行的起始阶段,没有足够的历史数据用于预测,此时直接将超算平台当前的CPU资源使用量作为预测值,预测结果的准确性较低,确定的利用率阈值较低(thrlow<thrhigh),可以避免后续根据预测结果对开启节点的数量进行调整时,对系统造成过大的影响。
进一步地,步骤(a3)包括:
(a31)根据预测的资源使用量UCluster预测相应的资源利用率为
Figure BDA0002151200550000043
(a32)若u>thr,则转入步骤(a33);否则,转入步骤(a35);
(a33)开启CPU资源总量最多的一个关闭节点,以增加开启节点的数量,并将资源利用率u更新为
Figure BDA0002151200550000044
在增加开启节点数量时,优先开启CPU资源总量最多的节点,从而增加较少的开启节点,即可达到平衡资源利用率的目的,提高效率;
(a34)若u≤thr,则停止增加开启节点的数量,操作结束;否则,转入步骤(a33),以继续增加开启节点的数量;
(a35)关闭CPU资源使用量最少的一个开启节点,以减少开启节点的数量;在减少开启节点的数量时,优先关闭CPU资源使用量最少的一个开启节点,能够在关闭开启节点时,尽量减小对超算平台的影响,从而保证较高的服务质量;
(a36)获得剩余开启节点中CPU资源使用量最少的节点nlater及其CPU 资源总量rCPUlater后,将资源利用率u更新为:
Figure BDA0002151200550000051
(a37)若u>thr,则停止减少开启节点的数量,操作结束;否则,转入步骤(a35),以继续减少开启节点的数量;
其中,nbegin表示调整开启节点数量之前开启节点的总数,ninc表示增加的开启节点数量,ndec表示减少的开启节点数量,i表示开启节点的序号, rCPUi表示第i个开启节点的CPU资源总量;
本发明所提供的基于Docker容器的电力系统超算平台认为调度方法,对开启节点的数量进行调整时,若预测的资源利用率偏低,则减少开启节点的数量,由此能够提高资源利用率,降低能耗;若预测的资源偏高,则增加开启节点的数量,由此能够保证超算平台的服务质量。本发明具体在调整开启节点的数量时,逐渐减少/增减开启节点的数量,直至超算平台的资源利用率在不超过利用率阈值的情况下最接近利用率阈值,即超算平台的资源利用率达到与利用率阈值相匹配的水平,从而在尽量不影响平台运行的情况下降低能耗。
进一步地,步骤(b3)包括:
(b31)将各调整周期分别等分为N个子区间;
(b32)获得当前时刻所在的调整周期,以及在该时间段内的子区间序号p,并确定下一个调整周期内的利用率阈值thr′;
(b33)若p=1或p=N,则预测下一个调整周期的资源利用率为u′=thr′,预测结束;否则,转入步骤(b34);
(b34)以为T/N时间间隔,向前依次获取N+p-1个时刻超算平台的 CPU资源使用情况,以计算各时刻超算平台的CPU资源使用量,从而得到长度为N+p-1的第二时间序列为:
Figure BDA0002151200550000061
(b35)根据第二时间序列
Figure BDA0002151200550000062
预测下一个调整周期的资源使用量 UCluster′,以预测下一个调整周期的资源利用率为:
Figure BDA0002151200550000063
其中,tnow表示当前时刻,
Figure BDA0002151200550000064
表示在t时刻超算平台的CPU资源使用量,nnow表示当前时刻开启节点的总数,i表示开启节点的序号,rCPUi表示第i个开启节点的CPU资源总量;
本发明所提供的基于Docker容器的电力系统超算平台认为调度方法,在资源配置步骤中,随着时间推移,有新的历史数据产生,通过包含新的历史数据的时间序列进行预测,获得的预测值更加准确;通过对调整周期进行划分,实现多次预测调整,实现精准预测的目的;第一个子区间内由于刚调整过开启节点数量,因此不需要进行调整配置,最后一个子区间内由于即将调整开启节点数量,保持集群的利用率,也不需要调整配置;预测使用的时间序列数量为N+p-1,由此能够动态调整以除去过早数据产生的不利影响。
进一步地,步骤(b4)包括:
(b41)确定下一个调整周期的利用率阈值thr′,并根据预测的资源利用率u′与利用率阈值thr′的差值计算资源配置的增量因子为:
Figure BDA0002151200550000065
(b42)若u′≤thr′,则按照增量因子α增加CPU资源的配置,相应的 CPU资源配置量为
Figure BDA0002151200550000066
否则,按照增量因子α减少CPU 资源的配置,相应的CPU资源配置量为
Figure BDA0002151200550000067
(b43)根据任务需求确定最终的CPU资源配置量为:
Figure BDA0002151200550000071
(b44)按照CPU资源配置量
Figure BDA0002151200550000072
和任务TASKj所请求的内存资源量rMEMj对容器进行资源配置;
其中,j表示任务序号,
Figure BDA0002151200550000073
和rMEMj分别表示任务TASKj所需的最少CPU资源量、所请求的CPU资源量、最多能使用的CPU资源量以及所请求的内存资源量;η为预设的增量系数,0<η<1;
Figure BDA0002151200550000074
表示向下取整;
本发明所提供的基于Docker容器的电力系统超算平台任务调度方法,根据预测结果对容器进行资源配置时,若预测的资源利用率偏低,则在任务需求允许的范围内增加资源配置,由此能够保证较高的资源利用率,降低能耗;若预测的资源利用率偏高,则在任务需求允许范围内减少资源配置,由此能够保证超算平台的服务质量;因此,本发明能够在尽量不影响平台运行的情况下降低能耗。
进一步地,容器调度步骤中,对于从容器调度队列中获取到的任意一个容器D,根据容器D中的任务需求以及超算平台当前的资源使用情况,将容器D部署到超算平台的节点中,包括:
(c1)将超算平台中所有的开启节点划分为有迁移集群和无迁移集群;
(c2)若容器D内的任务有实时性要求,且该任务的资源需求量随时间动态变化,则转入步骤(c3);否则,转入步骤(c4);
(c3)对于有迁移集群中的每一个能够负载容器D的节点,分别计算将容器D调度至该节点前、后该节点的负载均衡指标
Figure BDA0002151200550000075
Figure BDA0002151200550000076
以计算该节点的负载均衡差值为
Figure BDA0002151200550000077
若负载均衡程度与负载均衡指标正相关,则将负载均衡差值最大的节点作为目标节点;否则,将负载均衡差值最小的节点作为目标节点;确定目标节点后转入步骤(c7);
(c4)若CPU资源为超算平台的性能瓶颈,则转入步骤(c5);否则,转入步骤(c6);
(c5)对于无迁移集群中的每一个能够负载容器D的节点,分别计算将容器D调度至该节点前、后该节点的能耗指标
Figure BDA0002151200550000081
Figure BDA0002151200550000082
以计算该节点的能耗指标差值为
Figure BDA0002151200550000083
若能耗与能耗指标正相关,则将能耗指标差值最小的节点作为目标节点;否则,将能耗指标差值最大的节点作为目标节点;确定目标节点后转入步骤(c7);
(c6)对于无迁移集群中的每一个能够负载容器D的节点,分别计算将容器D调度至该节点前、后该节点的资源均衡指标
Figure BDA0002151200550000084
Figure BDA0002151200550000085
以计算该节点的资源均衡指标差值为
Figure BDA0002151200550000086
若资源的使用均衡程度与资源均衡指标正相关,则将资源均衡指标差值最大的节点作为目标节点;否则,将资源均衡指标差值最小的节点作为目标节点;确定目标节点后,转入步骤(c7);
(c7)将容器D调度至目标节点;
其中,负载均衡指标用于衡量节点资源利用率与集群整体的资源利用率之间的相差程度,资源均衡指标用于衡量节点不同资源的资源利用率达到平衡的程度;
本发明所提供的基于Docker容器的电力系统超算平台认为调度方法,在进行容器调度时,会结合任务需求和超算平台当前的资源使用情况确定具体的调度策略,对于有实时性要求,且资源需求量随时间动态变化的任务,则在有迁移集群中选择有利于负载均衡的节点作为容器调度的目标节点;对于其他的任务,则在CPU资源为超算平台的性能瓶颈时,在无迁移集群中选择有利于减小对超算平 台能耗影响的节点作为容器调度的目标节点;在CPU资源不是超算平台的性能瓶颈时,在无迁移集群中选择有利于资源均衡的节点作为容器调度的目标节点;因此,本发明能够实现不同资源均衡负载以提升资源利用率或实现节点负载均衡以保证服务质量,从而在尽量不影响平台运行的情况下降低能耗。
进一步地,本发明第一方面所提供的基于Docker容器的电力系统超算平台认为调度方法,还包括容器迁移步骤;
容器迁移步骤包括:
(d1)以T′为时间间隔,将超算平台的运行时间划分为多个迁移周期;
(d2)在每一个迁移周期的开始时刻,获得有迁移集群内各节点的历史资源使用情况,以预测有迁移集群内各节点在下一个迁移周期的资源利用率和资源预留率;
(d3)对于有迁移集群内的任意一个节点node,计算所预测的资源利用率u″和资源预留率
Figure BDA0002151200550000091
之和为
Figure BDA0002151200550000092
若Sava>1,则预测节点 node为过载节点,并转入步骤(d4);若Sava<thrava,则预测节点node为轻载节点,并转入步骤(d5);若thrava≤Sava≤1,则不进行容器迁移,转入步骤(d6);
(d4)获得节点node内与其相关性最高的容器,并将该容器迁移至容器调度队列中,以减轻节点node的负载,转入步骤(d6);
(d5)将节点node内所有的容器均迁移至容器调度队列中后,关闭节点node,以提高资源利用率,转入步骤(d6);
(d6)针对节点node的容器迁移操作结束;
其中,thrava为预设的阈值,thrava<1,资源预留率表示预留出的资源所占的比例;
本发明所提供的基于Docker容器的电力系统超算平台任务调度方法,通过容器迁移步骤能够识别出有迁移集群中的轻载节点和过载节点,对于轻载节点,将其中的容器均迁移出,以关闭该节点,由此能够提高超算平台的资源利用率,减小空闲资源的能耗;对于过载节点,将与该节点相关性最大的容器(即对该节点影响最大的容器)迁移出,由此能够减小过载节点的资源利用率,保证超算平台的服务质量;因此,本发明能够在尽量不影响平台运行的情况下降低能耗。
进一步地,步骤(d2)中,对于有迁移集群内的任意一个节点node,获得节点node的历史资源使用情况,以预测节点node在下一个迁移周期的资源利用率和资源预留率,包括:
(d21)以T′为时间间隔,向前依次获取节点node在各时刻的CPU资源利用率,从而得到第三时间序列为:
Figure BDA0002151200550000101
(d22)若第三时间序列
Figure BDA0002151200550000102
的长度小于m',则转入步骤(d23);否则,转入步骤(d24);
(d23)计算第三时间序列
Figure BDA0002151200550000103
的绝对中位差,作为节点node在下一个迁移周期的资源预留率
Figure BDA0002151200550000104
并预测节点node在下一个迁移周期的CPU 资源利用率u″为节点node当前的CPU资源利用率,预测结束;
(d24)以T′为时间间隔,向前依次获取m′个时刻节点node的CPU资源利用率,从而得到长度为m′的第四时间序列为:
Figure BDA0002151200550000105
(d25)计算第四时间序列
Figure BDA0002151200550000106
的绝对中位差,作为节点node在下一个迁移周期的资源预留率,并根据第四时间序列
Figure BDA0002151200550000107
预测下一个迁移周期的 CPU资源利用率u″,预测结束;
其中,tbegin表示有资源使用情况记录的最早时刻,tnow表示当前时刻,
Figure BDA0002151200550000108
表示对应时刻节点node的CPU资源利用率,m′∈N+。
进一步地,本发明第一方面提供的基于Docker容器的电力系统超算平台任务调度方法,根据时间序列进行预测的具体方式为:利用AR模型进行预测,由此能够保证较好的预测效果。
按照本发明的第二方面,提供了一种系统,包括处理器和计算机可读存储介质,计算机可读存储介质用于存储可执行程序;
处理器用于读取计算机可读存储介质中存储的可执行程序,执行本发明第一方面提供的基于Docker容器的电力系统超算平台任务调度方法。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明所提供的基于Docker容器的电力系统超算平台任务调度方法,在节点调整步骤中,通过预测未来的资源使用情况,并根据预测结果调整超算平台中开启节点的数量,使得超算平台的资源利用率维持在与利用率阈值相匹配的水平,能够在资源利用率偏低时提高资源利用率,以降低空闲资源的能耗,并在资源利用率偏高时保证服务质量;在资源配置过程中,通过预测未来的资源使用情况,并根据预测结果调整容器的资源配置,使得在任务需求允许的范围内,容器的资源配置与超算平台的资源利用率反相关,由此能够在超算平台资源利用率偏低时提高资源利用率,以降低空闲资源的能耗,并在资源利用率偏高时保证服务质量。总的来说,本发明能够在尽量不影响超算平台运行的情况下,提高资源利用率,从而降低能耗。
(2)本发明所提供的基于Docker容器的电力系统超算平台任务调度方法,在进行容器调度时,会结合任务需求和超算平台当前的资源使用情况确定具体的调度策略,对于有实时性要求,且资源需求量随时间动态变化的任务,则在有迁移集群中选择有利于负载均衡的节点作为容器调度的目标节点;对于其他的任务,则在CPU资源为超算平台的性能瓶颈时,在无迁移集群中选择有利于减小对超算平 台能耗影响的节点作为容器调度的目标节点;在CPU资源不是超算平台的性能瓶颈时,在无迁移集群中选择有利于资源均衡的节点作为容器调度的目标节点;因此,本发明能够实现不同资源均衡负载以提升资源利用率或实现节点负载均衡以保证服务质量,从而在尽量不影响平台运行的情况下降低能耗。
(3)本发明所提供的基于Docker容器的电力系统超算平台任务调度方法,通过容器迁移步骤能够识别出有迁移集群中的轻载节点和过载节点,对于轻载节点,将其中的容器均迁移出,以关闭该节点,由此能够提高超算平台的资源利用率,减小空闲资源的能耗;对于过载节点,将与该节点相关性最大的容器(即对该节点影响最大的容器)迁移出,由此能够减小过载节点的资源利用率,保证超算平台的服务质量;因此,本发明能够在尽量不影响平台运行的情况下降低能耗。
(4)本发明所提供的基于Docker容器的电力系统超算平台任务调度方法,在其优选方案中,利用AR模型进行预测,由此能够保证较好的预测效果。
附图说明
图1为本发明实施例提供的基于Docker容器的电力系统超算平台任务调度方法示意图;
图2为本发明实施例提供的节点调整步骤流程图;
图3为本发明实施例提供的资源配置步骤流程图;
图4为本发明实施例提供的容器调度步骤流程图;
图5为本发明实施例提供的容器迁移步骤流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明及附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
为了解决现有的电力系统超算平台低负载高能耗的问题,本发明提供了一种基于Docker容器的电力系统超算平台任务调度方法,如图1所示,包括:节点调整步骤、资源配置步骤以及容器调度步骤;
如图2所示,节点调整步骤具体包括:
(a1)以T为时间间隔,将超算平台的运行时间划分为多个调整周期;
时间间隔T具体可根据负载特性、系统能耗需求等相应设定,例如,若负载的资源随时间变化幅度较大,则相应地可将时间间隔T设置较小,以使得超算平台的资源利用率维持平衡;在本实施例中,具体设置T=1h;
(a2)在每一个调整周期的开始时刻,获得超算平台的历史资源使用情况,以预测超算平台在下一个调整周期的资源使用量UCluster,并确定对应的利用率阈值thr;
在一个可选的实施方式中,步骤(a2)具体包括:
(a21)以T为时间间隔,向前依次获取m个时刻超算平台的CPU资源使用情况,以计算各时刻超算平台的CPU资源使用量,从而得到长度为m 的第一时间序列为:
Figure BDA0002151200550000131
(a22)若获取成功,说明超算平台已运行了足够长的时间,则转入步骤(a23);否则,说明超算平台处于运行的起始阶段,转入步骤(a24);
(a23)根据第一时间序列
Figure BDA0002151200550000132
预测下一个调整周期的资源使用量 UCluster,并确定下一个调整周期的利用率阈值为thr=thrhigh,预测结束;
(a24)预测下一个调整周期的资源使用量UCluster为超算平台当前的 CPU资源使用量,并确定下一个调整周期的利用率阈值为thr=thrlow,预测结束;
其中,tnow表示当前时刻,
Figure BDA0002151200550000141
表示在t时刻超算平台的CPU资源使用量,thrlow和thrhigh表示预设的阈值,0<thrlow<thrhigh<1,m∈N+;
由于在超算平台运行的起始阶段,没有足够的历史数据用于预测,此时直接将超算平台当前的CPU资源使用量作为预测值,预测结果的准确性较低,确定的利用率阈值较低(thrlow<thrhigh),可以避免后续根据预测结果对开启节点的数量进行调整时,对系统造成过大的影响;
为了获得较好的预测效果,在本发明实施例中,m=10,thrlow=0.8, thrhigh=0.9;应当理解的是,此处的设定仅为一个示例性的说明,不应理解为对本发明的唯一限定;
(a3)根据预测结果调整开启节点的数量,以使得超算平台的资源利用率维持在与利用率阈值thr相匹配的水平;
在一个可选的实施方式中,步骤(a3)具体包括:
(a31)根据预测的资源使用量UCluster预测相应的资源利用率为
Figure BDA0002151200550000142
(a32)若u>thr,则转入步骤(a33);否则,转入步骤(a35);
(a33)开启CPU资源总量最多的一个关闭节点,以增加开启节点的数量,并将资源利用率u更新为
Figure BDA0002151200550000143
在增加开启节点数量时,优先开启CPU资源总量最多的节点,从而增加较少的开启节点,即可达到平衡资源利用率的目的,提高效率;
(a34)若u≤thr,则停止增加开启节点的数量,操作结束;否则,转入步骤(a33),以继续增加开启节点的数量;
(a35)关闭CPU资源使用量最少的一个开启节点,以减少开启节点的数量;在减少开启节点的数量时,优先关闭CPU资源使用量最少的一个开启节点,能够在关闭开启节点时,尽量减小对超算平台的影响,从而保证较高的服务质量;
(a36)获得剩余开启节点中CPU资源使用量最少的节点nlater及其CPU 资源总量rCPUlater后,将资源利用率u更新为:
Figure BDA0002151200550000151
(a37)若u>thr,则停止减少开启节点的数量,操作结束;否则,转入步骤(a35),以继续减少开启节点的数量;
其中,nbegin表示调整开启节点数量之前开启节点的总数,ninc表示增加的开启节点数量,ndec表示减少的开启节点数量,i表示开启节点的序号, rCPUi表示第i个开启节点的CPU资源总量;
对开启节点的数量进行调整时,若预测的资源利用率偏低,则减少开启节点的数量,由此能够提高资源利用率,降低能耗;若预测的资源偏高,则增加开启节点的数量,由此能够保证超算平台的服务质量;具体来说,在调整开启节点的数量时,逐渐减少/增减开启节点的数量,直至超算平台的资源利用率在不超过利用率阈值的情况下最节点利用率阈值,即超算平台的资源利用率达到与利用率阈值相匹配的水平,从而在尽量不影响平台运行的情况下降低能耗;
如图3所示,资源配置步骤包括:
(b1)在新任务TASKj到达时,为其创建容器;
j表示任务序号,可将任务TASKj描述为:
Figure BDA0002151200550000152
其中,
Figure BDA0002151200550000153
和rMEMj分别表示任务TASKj所需的最少CPU资源量、所请求的CPU资源量、最多能使用的CPU资源量以及所请求的内存资源量;
(b2)若任务TASKj没有实时性要求,且超算平台中开启节点的数量已经经过了调整,则转入步骤(b3);否则,根据任务TASKj的任务需求进行资源配置,即按照
Figure BDA0002151200550000161
和rMEMj为该容器进行CPU资源和内存资源的配置,之后转入步骤(b5);
(b3)获得超算平台的历史资源使用情况,以预测超算平台在下一个调整周期的资源利用率u′;
在一个可选的实施方式中,步骤(b3)具体包括:
(b31)将各调整周期分别等分为N个子区间;
在本发明中,N=12,经过划分之后,各子区间的长度为5min;应当理解的是,此处的设定仅为一个示例性的说明,不应理解为对本发明的唯一限定;
(b32)获得当前时刻所在的调整周期,以及在该时间段内的子区间序号p,并确定下一个调整周期内的利用率阈值thr′;
(b33)若p=1或p=N,则预测下一个调整周期的资源利用率为u′=thr′,即预测资源利用率u′既不偏高,也不偏低,后续需要根据
Figure BDA0002151200550000162
和rMEMj进行资源配置,预测结束;否则,转入步骤(b34);
(b34)以为T/N时间间隔,向前依次获取N+p-1个时刻超算平台的 CPU资源使用情况,以计算各时刻超算平台的CPU资源使用量,从而得到长度为N+p-1的第二时间序列为:
Figure BDA0002151200550000163
(b35)根据第二时间序列
Figure BDA0002151200550000166
预测下一个调整周期的资源使用量 UCluster′,以预测下一个调整周期的资源利用率为:
Figure BDA0002151200550000164
其中,tnow表示当前时刻,
Figure BDA0002151200550000165
表示在t时刻超算平台的CPU资源使用量,nnow表示当前时刻开启节点的总数,i表示开启节点的序号,rCPUi表示第i个开启节点的CPU资源总量;
在资源配置步骤中,随着时间推移,有新的历史数据产生,通过包含新的历史数据的时间序列进行预测,获得的预测值更加准确;通过对调整周期进行划分,实现多次预测调整,实现精准预测的目的;第一个子区间内由于刚调整过开启节点数量,因此不需要进行调整配置,最后一个子区间内由于即将调整开启节点数量,保持集群的利用率,也不需要调整配置;预测使用的时间序列数量为N+p-1,由此能够动态调整以除去过早数据产生的不利影响;
(b4)根据预测结果和任务需求为该容器配置资源,以使得在任务需求所允许的范围内,该容器的资源配置与资源利用率u′反相关;
在一个可选的实施方式中,步骤(b4)具体包括:
(b41)确定下一个调整周期的利用率阈值thr′,并根据预测的资源利用率u′与利用率阈值thr′的差值计算资源配置的增量因子为:
Figure BDA0002151200550000171
资源利用率u′与利用率阈值thr′的差值越大,增量因子α越大,反之,增量因子α越小;当资源利用率u′与利用率阈值thr′相等时,增量因子α为0;
(b42)若u′≤thr′,即资源利用率偏低,则按照增量因子α增加CPU资源的配置,相应的CPU资源配置量为
Figure BDA0002151200550000172
否则,即资源利用率偏高,按照增量因子α减少CPU资源的配置,相应的CPU资源配置量为
Figure BDA0002151200550000173
(b43)根据任务需求确定最终的CPU资源配置量为:
Figure BDA0002151200550000174
通过调整,能够保证最终的CPU资源配置量在任务需求允许的范围内;
(b44)按照CPU资源配置量
Figure BDA0002151200550000181
和任务TASKj所请求的内存资源量rMEMj对容器进行资源配置;
其中,η为预设的增量系数,0<η<1;
Figure BDA0002151200550000182
表示向下取整;在本实施例中中,η=0.1;此处的设定仅为一个示例性的说明,不应理解为对本发明的唯一限定;
根据预测结果对容器进行资源配置时,若预测的资源利用率偏低,则在任务需求允许的范围内增加资源配置,由此能够保证较高的资源利用率,降低能耗;若预测的资源利用率偏高,则在任务需求允许范围内减少资源配置,由此能够保证超算平台的服务质量;因此,本发明能够在尽量不影响平台运行的情况下降低能耗;
(b5)将配置好的容器插入到容器调度队列中;
如图4所示,容器调度步骤包括:依次从容器调度队列中获取待调度的容器,根据其中的任务需求以及超算平台当前的资源使用情况,将该容器部署到超算平台的节点中;
在一个可选的实施方式中,容器调度步骤中,对于从容器调度队列中获取到的任意一个容器D,根据容器D中的任务需求以及超算平台当前的资源使用情况,将容器D部署到超算平台的节点中,具体包括:
(c1)将超算平台中所有的开启节点划分为有迁移集群和无迁移集群;
有迁移集群用于负载具有实时性要求且需求资源发生变化的任务的容器,无迁移集群用于负载其他任务的容器;
(c2)若容器D内的任务有实时性要求,且该任务的资源需求量随时间动态变化,则转入步骤(c3);否则,转入步骤(c4);
(c3)对于有迁移集群中的每一个能够负载容器D的节点,分别计算将容器D调度至该节点前、后该节点的负载均衡指标
Figure BDA0002151200550000183
Figure BDA0002151200550000184
以计算该节点的负载均衡差值为
Figure BDA0002151200550000185
若负载均衡程度与负载均衡指标的值正相关,则将负载均衡差值最大的节点作为目标节点;否则,将负载均衡差值最小的节点作为目标节点;确定目标节点后转入步骤(c7);
负载均衡指标用于衡量节点资源利用率与集群整体的资源利用率之间的相差程度;
可选地,可根据
Figure BDA0002151200550000191
计算节点的负载均衡指标;其中,i表示开启节点的序号,
Figure BDA0002151200550000192
Figure BDA0002151200550000193
分别表示该节点的CPU资源利用率、内存资源利用率和带宽资源利用率,
Figure BDA0002151200550000194
Figure BDA0002151200550000195
Figure BDA0002151200550000196
分别表示有迁移集群CPU资源利用率、存资源利用率和宽资源利用率;
由于采用这种方式计算节点的负载均衡指标时,负载均衡程度与负载均衡指标的值反相关,相应地,将负载均衡指标差值最小的节点作为目标节点;
(c4)若CPU资源为超算平台的性能瓶颈,则转入步骤(c5);否则,转入步骤(c6);
可选地,可根据无迁移集群中各资源利用率的相差程度判定当前CPU 资源是否为超算平台的性能瓶颈,例如,当CPU资源利用率远高于(相差两倍或其他)其他资源的利用率时,则可判定CPU资源为超算平台的性能瓶颈;
(c5)对于无迁移集群中的每一个能够负载容器D的节点,分别计算将容器D调度至该节点前、后该节点的能耗指标
Figure BDA0002151200550000197
Figure BDA0002151200550000198
以计算该节点的能耗指标差值为
Figure BDA0002151200550000199
若能耗与能耗指标正相关,则将能耗指标差值小的节点作为目标节点;否则,将能耗指标差值最大的节点作为目标节点;确定目标节点后转入步骤(c7);
可选地,可根据
Figure BDA00021512005500001910
计算节点的能耗指标;其中,
Figure BDA0002151200550000201
Figure BDA0002151200550000202
分别表示该节点的CPU资源利用率和内存资源利用率,c和m为阶数,通常情况下,c=m=3,a0~ac、b0~bm表示回归系数;
由于采用这种方式计算节点的能耗指标时,能耗与能耗指标的值正相关,相应地,将能耗指标差值最小的节点作为目标节点;
(c6)对于无迁移集群中的每一个能够负载容器D的节点,分别计算将容器D调度至该节点前、后该节点的资源均衡指标
Figure BDA0002151200550000203
Figure BDA0002151200550000204
以计算该节点的资源均衡指标差值为
Figure BDA0002151200550000205
若资源的使用均衡程度与资源均衡指标正相关,则将资源均衡指标差值最大的节点作为目标节点;否则,将资源均衡指标差值最小的节点作为目标节点;确定目标节点后,转入步骤(c7);
资源均衡指标用于衡量节点不同资源的资源利用率达到平衡的程度;
可选地,可根据
Figure BDA0002151200550000206
计算节点的资源均衡指标;其中,
Figure BDA0002151200550000207
Figure BDA0002151200550000208
分别表示该节点的CPU 资源利用率、内存资源利用率和带宽资源利用率,
Figure BDA0002151200550000209
Figure BDA00021512005500002010
分别表示无迁移集群CPU资源利用率、存资源利用率和宽资源利用率;
由于采用这种方式计算节点的资源均衡指标时,资源的使用均衡程度与资源均衡指标正相关,相应地,将资源均衡指标差值最大的节点作为目标节点;
(c7)将容器D调度至目标节点;
应当理解的是,上述负载均衡指标、能耗及资源均衡指标的计算方式仅为示例性的说明,不应理解为对本发明的唯一限定,其他用于计算负载均衡指标、能耗及资源均衡方法的方式,同样适用于本发明;
在进行容器调度时,结合任务需求和超算平台当前的资源使用情况确定具体的调度策略,对于有实时性要求,且资源需求量随时间动态变化的任务,则在有迁移集群中选择有利于负载均衡的节点作为容器调度的目标节点;对于其他的任务,则在CPU资源为超算平台的性能瓶颈时,在无迁移集群中选择有利于减小对超算平 台能耗影响的节点作为容器调度的目标节点;在CPU资源不是超算平台的性能瓶颈时,在无迁移集群中选择有利于资源均衡的节点作为容器调度的目标节点;因此,本发明能够实现不同资源均衡负载以提升资源利用率或实现节点负载均衡以保证服务质量,从而在尽量不影响平台运行的情况下降低能耗。
为了实现进一步优化,可选地,上述基于Docker容器的电力系统超算平台认为调度方法,还可包括容器迁移步骤;
如图5所示,容器迁移步骤包括:
(d1)以T′为时间间隔,将超算平台的运行时间划分为多个迁移周期;
在本实施例中,T′=5min;
(d2)在每一个迁移周期的开始时刻,获得有迁移集群内各节点的历史资源使用情况,以预测有迁移集群内各节点在下一个迁移周期的资源利用率和资源预留率;
在一个可选的实施方式中,步骤(d2)中,对于有迁移集群内的任意一个节点node,获得节点node的历史资源使用情况,以预测节点node在下一个迁移周期的资源利用率和资源预留率,具体包括:
(d21)以T′为时间间隔,向前依次获取节点node在各时刻的CPU资源利用率,从而得到第三时间序列为:
Figure BDA0002151200550000211
其中,tbegin表示有资源使用情况记录的最早时刻,tnow表示当前时刻,
Figure BDA0002151200550000212
表示对应时刻节点node的CPU资源利用率;
(d22)若第三时间序列
Figure BDA0002151200550000213
的长度小于m',即超算平台处于运行的起始阶段,则转入步骤(d23);否则,即超算平台已运行了足够的时间,转入步骤(d24);
其中,m′∈N+;在本实施例中,m'=12;
(d23)计算第三时间序列
Figure BDA0002151200550000221
的绝对中位差,作为节点node在下一个迁移周期的资源预留率
Figure BDA0002151200550000222
并预测节点node在下一个迁移周期的CPU 资源利用率u″为节点node当前的CPU资源利用率,预测结束;
具体地,计算第三时间序列
Figure BDA0002151200550000223
的绝对中位差时,先取的第三时间序列
Figure BDA0002151200550000224
中位数为:
Figure BDA0002151200550000225
然后计算绝对中位数为:
Figure BDA0002151200550000226
其中,median{}表示取序列的中位数,a为预设的系数,在本实施例中,此处a=1.5;
(d24)以T′为时间间隔,向前依次获取m′个时刻节点node的CPU资源利用率,从而得到长度为m′的第四时间序列为:
Figure BDA0002151200550000227
(d25)计算第四时间序列
Figure BDA0002151200550000228
的绝对中位差,作为节点node在下一个迁移周期的资源预留率
Figure BDA0002151200550000229
并根据第四时间序列
Figure BDA00021512005500002210
预测下一个迁移周期的CPU资源利用率u″,预测结束;
在步骤(d25)中,第四时间序列
Figure BDA00021512005500002211
的绝对中位差的具体计算方式,可参考上述步骤(d23)的描述,所不同之处在于,此处a=1;
(d3)对于有迁移集群内的任意一个节点node,计算所预测的资源利用率u″和资源预留率
Figure BDA00021512005500002212
之和为
Figure BDA00021512005500002213
若Sava>1,则预测节点 node为过载节点,并转入步骤(d4);若Sava<thrava,则预测节点node为轻载节点,并转入步骤(d5);若thrava≤Sava≤1,则不进行容器迁移,转入步骤(d6);
(d4)获得节点node内与其相关性最高的容器,并将该容器迁移至容器调度队列中,以减轻节点node的负载,转入步骤(d6);
具体可通过计算相关系数来获得节点与容器之间的相关性,相关系数的具体计算表达式如下:
Figure BDA0002151200550000231
其中,
Figure BDA0002151200550000232
表示节点和容器的相关系数,
Figure BDA0002151200550000233
表示节点的平均CPU 资源利用率,
Figure BDA0002151200550000234
表示对应时刻容器的CPU资源利用率,
Figure BDA0002151200550000235
表示容器的平均CPU资源利用率;
(d5)将节点node内所有的容器均迁移至容器调度队列中后,关闭节点node,以提高资源利用率,转入步骤(d6);
(d6)针对节点node的容器迁移操作结束;
其中,thrava为预设的阈值,thrava<1,资源预留率表示预留出的资源所占的比例;在本实施例中,thrava=0.5;
本发明所提供的基于Docker容器的电力系统超算平台任务调度方法,通过容器迁移步骤能够识别出有迁移集群中的轻载节点和过载节点,对于轻载节点,将其中的容器均迁移出,以关闭该节点,由此能够提高超算平台的资源利用率,减小空闲资源的能耗;对于过载节点,将与该节点相关性最大的容器(即对该节点影响最大的容器)迁移出,由此能够减小过载节点的资源利用率,保证超算平台的服务质量;因此,本发明能够在尽量不影响平台运行的情况下降低能耗。
作为一种优选的实施方式,上述基于Docker容器的电力系统超算平台任务调度方法,根据时间序列进行预测的具体方式为:利用AR模型进行预测,由此能够保证较好的预测效果;
AR模型可描述为predict(X,k),用于根据一个时间序列预测一段时间之后的参数取值,AR模型的具体计算过程如下:
X={xk|k=1,2,3,...,S}
Figure BDA0002151200550000241
Figure BDA0002151200550000242
Figure BDA0002151200550000243
Figure BDA0002151200550000244
r=[r1 r2 … rY]T
w=[w1 w2 … wY]T=R-1*r
xS+k=predict(X,k)=[xk xk+1 … xS+k-1]*w(k=1,2,3...)
其中,X表示输入的时间序列,X中任意相邻两个值之间的时间间隔均为Tinterval
Figure BDA0002151200550000245
varx、rI、R、r和w均为计算过程中间值;利用AR模型进行预测时,AR模型会根据输入的时间序列X,预测经过kTinterval之后的值。
本发明还提供了一种系统,包括处理器和计算机可读存储介质,计算机可读存储介质用于存储可执行程序;
处理器用于读取计算机可读存储介质中存储的可执行程序,执行上述基于Docker容器的电力系统超算平台任务调度方法。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于Docker容器的电力系统超算平台任务调度方法,其特征在于,包括:节点调整步骤、资源配置步骤以及容器调度步骤;
所述节点调整步骤包括:
(a1)以T为时间间隔,将所述超算平台的运行时间划分为多个调整周期;
(a2)在每一个调整周期的开始时刻,获得所述超算平台的历史资源使用情况,以预测所述超算平台在下一个调整周期的资源使用量UCluster,并确定对应的利用率阈值thr;
(a3)根据预测结果调整开启节点的数量,以使得所述超算平台的资源利用率维持在与所述利用率阈值thr相匹配的水平;
所述资源配置步骤包括:
(b1)在新任务TASKj到达时,为其创建容器;
(b2)若所述任务TASKj没有实时性要求,且所述超算平台中开启节点的数量已经经过了调整,则转入步骤(b3);否则,根据所述任务TASKj的任务需求进行资源配置后,转入步骤(b5);
(b3)获得所述超算平台的历史资源使用情况,以预测所述超算平台在下一个调整周期的资源利用率u′;
(b4)根据预测结果和任务需求为该容器配置资源,以使得在任务需求所允许的范围内,该容器的资源配置与预测的资源利用率反相关;
(b5)将配置好的容器插入到容器调度队列中;
所述容器调度步骤包括:依次从所述容器调度队列中获取待调度的容器,根据其中的任务需求以及所述超算平台当前的资源使用情况,将该容器部署到所述超算平台的节点中。
2.如权利要求1所述的基于Docker容器的电力系统超算平台任务调度方法,其特征在于,所述步骤(a2)包括:
(a21)以T为时间间隔,向前依次获取m个时刻所述超算平台的CPU资源使用情况,以计算各时刻所述超算平台的CPU资源使用量,从而得到长度为m的第一时间序列为:
Figure FDA0002151200540000021
(a22)若获取成功,则转入步骤(a23);否则,转入步骤(a24);
(a23)根据所述第一时间序列
Figure FDA0002151200540000022
预测下一个调整周期的资源使用量UCluster,并确定下一个调整周期的利用率阈值为thr=thrhigh,预测结束;
(a24)预测下一个调整周期的资源使用量为所述超算平台当前的CPU资源使用量,并确定下一个调整周期的利用率阈值为thr=thrlow,预测结束;
其中,tnow表示当前时刻,
Figure FDA0002151200540000025
表示在t时刻超算平台的CPU资源使用量,thrlow和thrhigh表示预设的阈值,0<thrlow<thrhigh<1,m∈N+。
3.如权利要求1或2所述的基于Docker容器的电力系统超算平台任务调度方法,其特征在于,所述步骤(a3)包括:
(a31)根据预测的资源使用量UCluster预测相应的资源利用率为
Figure FDA0002151200540000023
(a32)若u>thr,则转入步骤(a33);否则,转入步骤(a35);
(a33)开启CPU资源总量最多的一个关闭节点,以增加开启节点的数量,并将所述资源利用率u更新为
Figure FDA0002151200540000024
(a34)若u≤thr,则停止增加开启节点的数量,操作结束;否则,转入步骤(a33),以继续增加开启节点的数量;
(a35)关闭CPU资源使用量最少的一个开启节点,以减少开启节点的数量;
(a36)获得剩余开启节点中CPU资源使用量最少的节点nlater及其CPU资源总量rCPUlater后,将所述资源利用率u更新为:
Figure FDA0002151200540000031
(a37)若u>thr,则停止减少开启节点的数量,操作结束;否则,转入步骤(a35),以继续减少开启节点的数量;
其中,nbegin表示调整开启节点数量之前开启节点的总数,ninc表示增加的开启节点数量,ndec表示减少的开启节点数量,i表示开启节点的序号,rCPUi表示第i个开启节点的CPU资源总量。
4.如权利要求1所述的基于Docker容器的电力系统超算平台任务调度方法,其特征在于,所述步骤(b3)包括:
(b31)将各调整周期分别等分为N个子区间;
(b32)获得当前时刻所在的调整周期,以及在该时间段内的子区间序号p,并确定下一个调整周期内的利用率阈值thr′;
(b33)若p=1或p=N,则预测下一个调整周期的资源利用率为u′=thr′,预测结束;否则,转入步骤(b34);
(b34)以为T/N时间间隔,向前依次获取N+p-1个时刻所述超算平台的CPU资源使用情况,以计算各时刻所述超算平台的CPU资源使用量,从而得到长度为N+p-1的第二时间序列为:
Figure FDA0002151200540000032
(b35)根据所述第二时间序列
Figure FDA0002151200540000033
预测下一个调整周期的资源使用量UCluster′,以预测下一个调整周期的资源利用率为:
Figure FDA0002151200540000034
其中,tnow表示当前时刻,
Figure FDA0002151200540000035
表示在t时刻超算平台的CPU资源使用量,nnow表示当前时刻开启节点的总数,i表示开启节点的序号,rCPUi表示第i个开启节点的CPU资源总量。
5.如权利要求1或4所述的基于Docker容器的电力系统超算平台任务调度方法,其特征在于,所述步骤(b4)包括:
(b41)确定下一个调整周期的利用率阈值thr′,并根据预测的资源利用率u′与利用率阈值thr′的差值计算资源配置的增量因子为:
Figure FDA0002151200540000041
(b42)若u′≤thr′,则按照所述增量因子α增加CPU资源的配置,相应的CPU资源配置量为
Figure FDA0002151200540000042
否则,按照所述增量因子α减少CPU资源的配置,相应的CPU资源配置量为
Figure FDA0002151200540000043
(b43)根据任务需求确定最终的CPU资源配置量为:
Figure FDA0002151200540000044
(b44)按照CPU资源配置量
Figure FDA0002151200540000045
和所述任务TASKj所请求的内存资源量rMEMj对容器进行资源配置;
其中,j表示任务序号,
Figure FDA0002151200540000046
和rMEMj分别表示所述任务TASKj所需的最少CPU资源量、所请求的CPU资源量、最多能使用的CPU资源量以及所请求的内存资源量;η为预设的增量系数,0<η<1;
Figure FDA0002151200540000047
表示向下取整。
6.如权利要求1所述的基于Docker容器的电力系统超算平台任务调度方法及系统,其特征在于,所述容器调度步骤中,对于从所述容器调度队列中获取到的任意一个容器D,根据容器D中的任务需求以及所述超算平台当前的资源使用情况,将容器D部署到所述超算平台的节点中,包括:
(c1)将所述超算平台中所有的开启节点划分为有迁移集群和无迁移集群;
(c2)若容器D内的任务有实时性要求,且该任务的资源需求量随时间动态变化,则转入步骤(c3);否则,转入步骤(c4);
(c3)对于所述有迁移集群中的每一个能够负载容器D的节点,分别计算将容器D调度至该节点前、后该节点的负载均衡指标
Figure FDA0002151200540000051
Figure FDA0002151200540000052
以计算该节点的负载均衡差值为
Figure FDA0002151200540000053
若负载均衡程度与负载均衡指标正相关,则将负载均衡差值最大的节点作为目标节点;否则,将负载均衡差值最小的节点作为目标节点;确定目标节点后转入步骤(c7);
(c4)若CPU资源为所述超算平台的性能瓶颈,则转入步骤(c5);否则,转入步骤(c6);
(c5)对于所述无迁移集群中的每一个能够负载容器D的节点,分别计算将容器D调度至该节点前、后该节点的能耗指标
Figure FDA0002151200540000054
Figure FDA0002151200540000055
以计算该节点的能耗指标差值为
Figure FDA0002151200540000056
若能耗与能耗指标正相关,则将能耗指标差值最小的节点作为目标节点;否则,将能耗指标差值最大的节点作为目标节点;确定目标节点后转入步骤(c7);
(c6)对于所述无迁移集群中的每一个能够负载容器D的节点,分别计算将容器D调度至该节点前、后该节点的资源均衡指标
Figure FDA0002151200540000057
Figure FDA0002151200540000058
以计算该节点的资源均衡指标差值为
Figure FDA0002151200540000059
若资源的使用均衡程度与资源均衡指标正相关,则将资源均衡指标差值最大的节点作为目标节点;否则,将资源均衡指标差值最小的节点作为目标节点;确定目标节点后,转入步骤(c7);
(c7)将容器D调度至所述目标节点;
其中,负载均衡指标用于衡量节点资源利用率与集群整体的资源利用率之间的相差程度,资源均衡指标用于衡量节点不同资源的资源利用率达到平衡的程度。
7.如权利要求6所述的基于Docker容器的电力系统超算平台任务调度方法,其特征在于,还包括容器迁移步骤;
所述容器迁移步骤包括:
(d1)以T′为时间间隔,将所述超算平台的运行时间划分为多个迁移周期;
(d2)在每一个迁移周期的开始时刻,获得所述有迁移集群内各节点的历史资源使用情况,以预测所述有迁移集群内各节点在下一个迁移周期的资源利用率和资源预留率;
(d3)对于所述有迁移集群内的任意一个节点node,计算所预测的资源利用率u″和资源预留率
Figure FDA0002151200540000061
之和为
Figure FDA0002151200540000062
若Sava>1,则预测节点node为过载节点,并转入步骤(d4);若Sava<thrava,则预测节点node为轻载节点,并转入步骤(d5);若thrava≤Sava≤1,则不进行容器迁移,转入步骤(d6);
(d4)获得节点node内与其相关性最高的容器,并将该容器迁移至所述容器调度队列中,以减轻节点node的负载,转入步骤(d6);
(d5)将节点node内所有的容器均迁移至所述容器调度队列中后,关闭节点node,以提高资源利用率,转入步骤(d6);
(d6)针对节点node的容器迁移操作结束;
其中,thrava为预设的阈值,thrava<1,资源预留率表示预留出的资源所占的比例。
8.如权利要求7所述的基于Docker容器的电力系统超算平台任务调度方法,其特征在于,所述步骤(d2)中,对于所述有迁移集群内的任意一个节点node,获得节点node的历史资源使用情况,以预测节点node在下一个迁移周期的资源利用率和资源预留率,包括:
(d21)以T′为时间间隔,向前依次获取节点node在各时刻的CPU资源利用率,从而得到第三时间序列为:
Figure FDA0002151200540000063
(d22)若所述第三时间序列
Figure FDA0002151200540000078
的长度小于m',则转入步骤(d23);否则,转入步骤(d24);
(d23)计算所述第三时间序列
Figure FDA0002151200540000071
的绝对中位差,作为节点node在下一个迁移周期的资源预留率
Figure FDA0002151200540000072
并预测节点node在下一个迁移周期的CPU资源利用率u″为节点node当前的CPU资源利用率,预测结束;
(d24)以T′为时间间隔,向前依次获取m′个时刻节点node的CPU资源利用率,从而得到长度为m′的第四时间序列为:
Figure FDA0002151200540000073
(d25)计算所述第四时间序列
Figure FDA0002151200540000074
的绝对中位差,作为节点node在下一个迁移周期的资源预留率
Figure FDA0002151200540000075
并根据所述第四时间序列
Figure FDA0002151200540000076
预测下一个迁移周期的CPU资源利用率u″,预测结束;
其中,tbegin表示有资源使用情况记录的最早时刻,tnow表示当前时刻,
Figure FDA0002151200540000077
表示对应时刻节点node的CPU资源利用率,m′∈N+。
9.如权利要求2、4或8任一项所述的基于Docker容器的电力系统超算平台任务调度方法,其特征在于,根据时间序列进行预测的具体方式为:利用AR模型进行预测。
10.一种系统,包括处理器和计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储可执行程序;
所述处理器用于读取所述计算机可读存储介质中存储的所述可执行程序,执行权利要求1-9任一项所述的基于Docker容器的电力系统超算平台任务调度方法。
CN201910702436.8A 2019-07-31 2019-07-31 基于Docker容器的电力系统超算平台任务调度方法 Expired - Fee Related CN110457131B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910702436.8A CN110457131B (zh) 2019-07-31 2019-07-31 基于Docker容器的电力系统超算平台任务调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910702436.8A CN110457131B (zh) 2019-07-31 2019-07-31 基于Docker容器的电力系统超算平台任务调度方法

Publications (2)

Publication Number Publication Date
CN110457131A CN110457131A (zh) 2019-11-15
CN110457131B true CN110457131B (zh) 2021-08-20

Family

ID=68484364

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910702436.8A Expired - Fee Related CN110457131B (zh) 2019-07-31 2019-07-31 基于Docker容器的电力系统超算平台任务调度方法

Country Status (1)

Country Link
CN (1) CN110457131B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111143070A (zh) * 2019-12-27 2020-05-12 北京奇艺世纪科技有限公司 一种资源调度方法和装置
CN111209083B (zh) * 2020-01-08 2023-05-09 中国联合网络通信集团有限公司 一种容器调度的方法、设备及存储介质
CN111338798A (zh) * 2020-02-21 2020-06-26 北京天融信网络安全技术有限公司 一种cpu使用率预测方法及装置
CN111694636B (zh) * 2020-05-11 2022-08-23 国网江苏省电力有限公司南京供电分公司 一种面向边缘网络负载均衡的电力物联网容器迁移方法
CN111858069B (zh) * 2020-08-03 2023-06-30 网易(杭州)网络有限公司 集群资源调度的方法、装置及电子设备
CN112269650A (zh) * 2020-12-18 2021-01-26 北京达佳互联信息技术有限公司 任务调度方法、装置、电子设备和存储介质
CN113568746B (zh) * 2021-07-27 2024-01-02 北京达佳互联信息技术有限公司 负载均衡方法、装置、电子设备及存储介质
CN115080215B (zh) * 2022-08-22 2022-11-15 中诚华隆计算机技术有限公司 由状态监控芯片在计算节点间进行任务调度的方法及系统
CN115952008B (zh) * 2023-03-15 2023-06-16 之江实验室 一种服务器集群资源的统一调度方法和装置
CN116795534A (zh) * 2023-03-31 2023-09-22 国电南瑞科技股份有限公司 基于电力物联网负反馈机制的性能动态调整方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530189A (zh) * 2013-09-29 2014-01-22 中国科学院信息工程研究所 一种面向流式数据的自动伸缩及迁移的方法及装置
CN107193652A (zh) * 2017-04-27 2017-09-22 华中科技大学 容器云环境中流数据处理系统的弹性资源调度方法及系统
CN108829494A (zh) * 2018-06-25 2018-11-16 杭州谐云科技有限公司 基于负载预测的容器云平台智能资源优化方法
CN109714400A (zh) * 2018-12-12 2019-05-03 华南理工大学 一种面向容器集群的能耗优化资源调度系统及其方法
CN109918198A (zh) * 2019-02-18 2019-06-21 中国空间技术研究院 一种基于用户特征预测的仿真云平台负载调度系统及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10346206B2 (en) * 2016-08-27 2019-07-09 International Business Machines Corporation System, method and computer program product for resource management in a distributed computation system
US10719363B2 (en) * 2018-01-22 2020-07-21 Vmware, Inc. Resource claim optimization for containers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530189A (zh) * 2013-09-29 2014-01-22 中国科学院信息工程研究所 一种面向流式数据的自动伸缩及迁移的方法及装置
CN107193652A (zh) * 2017-04-27 2017-09-22 华中科技大学 容器云环境中流数据处理系统的弹性资源调度方法及系统
CN108829494A (zh) * 2018-06-25 2018-11-16 杭州谐云科技有限公司 基于负载预测的容器云平台智能资源优化方法
CN109714400A (zh) * 2018-12-12 2019-05-03 华南理工大学 一种面向容器集群的能耗优化资源调度系统及其方法
CN109918198A (zh) * 2019-02-18 2019-06-21 中国空间技术研究院 一种基于用户特征预测的仿真云平台负载调度系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Design and development of a simulation system for smart distribution grid;Min Zhao,Jing Cai 等;《2016 China International Conference on Electricity Distribution (CICED)》;20160813;全文 *

Also Published As

Publication number Publication date
CN110457131A (zh) 2019-11-15

Similar Documents

Publication Publication Date Title
CN110457131B (zh) 基于Docker容器的电力系统超算平台任务调度方法
EP3853731B1 (en) Commitment-aware scheduler
CN109324875B (zh) 一种基于强化学习的数据中心服务器功耗管理与优化方法
US9442760B2 (en) Job scheduling using expected server performance information
CN104657221B (zh) 一种云计算中基于任务分类的多队列错峰调度模型及方法
CN110737529A (zh) 一种面向短时多变大数据作业集群调度自适应性配置方法
CN105912406B (zh) 一种低能耗的独立任务调度与资源配置方法
CN110058924B (zh) 一种多目标优化的容器调度方法
CN111722910B (zh) 一种云作业调度及资源配置的方法
CN108154317B (zh) 多云环境下基于实例自适应分配整合的工作流组调度方法
CN111124689A (zh) 一种集群中容器资源动态分配方法
CN107992353B (zh) 一种基于最小迁移量的容器动态迁移方法及系统
CN105446816B (zh) 一种面向异构平台的能耗优化调度方法
CN106775949B (zh) 感知复合应用特征与网络带宽的虚拟机在线迁移优化方法
Ramezani et al. A multi-objective load balancing system for cloud environments
CN116048802A (zh) 训练推理一体深度学习的gpu集群调度方法
Tian et al. Prepartition: A new paradigm for the load balance of virtual machine reservations in data centers
Singh et al. A comparative study of various scheduling algorithms in cloud computing
Fan et al. An energy-efficient dynamic scheduling method of deadline-constrained workflows in a cloud environment
Joseph et al. Fuzzy reinforcement learning based microservice allocation in cloud computing environments
Wu et al. ABP scheduler: Speeding up service spread in docker swarm
CN116302507A (zh) 基于休假排队的应用服务动态部署与更新方法
CN115562812A (zh) 面向机器学习训练的分布式虚拟机调度方法、装置和系统
Hicham et al. Deadline and energy aware task scheduling in cloud computing
Sun et al. A dynamic cluster job scheduling optimisation algorithm based on data irreversibility in sensor cloud

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210820

CF01 Termination of patent right due to non-payment of annual fee