一种电力终端中针对电力应用的容器资源管理方法和装置与流程

文档序号:26003749发布日期:2021-07-23 21:21阅读:106来源:国知局
一种电力终端中针对电力应用的容器资源管理方法和装置与流程

【技术领域】

本发明涉及容器资源管理技术领域,特别是涉及一种电力终端中针对电力应用的容器资源管理方法和装置。



背景技术:

容器是一组受到资源限制、彼此间相互隔离的进程,它是一种基于操作系统能力的隔离技术。容器将软件打包成标准化单元,以用于开发、交付和部署。

docker是一个常用的开源容器引擎,使用go语言进行开发实现,基于linux内核的cgroup、namespace、unionfs等技术,对进程进行封装隔离,docker属于容器技术的一种。

在新的电力终端中,每个电力应用程序软件部署在单独的docker容器中,保证了各个应用程序的独立性。各种电力应用程序重要程度不一样,对稳定性的要求也不一样,比如交流电采集应用程序,是配电104应用程序和用电698应用程序的数据来源,稳定性要求最高;而配电104应用程序和用电698应用程序是其他电力应用程序的基础,也是最高优先级;而用电分析和线损分析这些电力应用程序对实时性要求低,则优先级比较低。因此,需要针对多个容器实行不同的资源管理策略,实现不同优先级的容器不同的资源管理方法,资源需要优先保证重要程度高的电力应用。

电力终端属于小型外挂式或内嵌式设备,安装在柱上、墙上或配电箱里,为嵌入式设备,系统硬件资源有限,如常见配置为双核、2g内存、4g存储空间,因此对资源的使用效率提出了更高的要求,无法使用开源的容器平台或容器集群技术来实现容器资源自动化管理,也无法满足针对不同优先级的电力应用程序容器的资源进行灵活调度的要求。

鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。



技术实现要素:

本发明要解决的技术问题是现有的电力终端无法使用开源的容器平台或容器集群技术来实现容器资源自动化管理,也无法满足针对不同优先级的电力应用程序容器的资源进行灵活调度的要求。

本发明采用如下技术方案:

第一方面,本发明提供了一种电力终端中针对电力应用的容器资源管理方法,包括:

生成资源空闲队列、资源缩减队列和资源唤醒队列;

当系统或容器的资源告警时,减少资源空闲队列和/或资源缩减队列中的容器资源,用于补充到资源告警的系统或容器中;

当系统或容器的资源空闲达到预设时长时,唤醒处于资源唤醒队列中被停止的容器。

优选的,所述方法包括:

容器资源告警发生时,判断系统资源是否存在空闲;

若系统资源存在空闲时,将系统剩余可用资源分配给发生资源告警的容器。

优选的,若系统资源不存在空闲时,所述方法包括:

查询资源空闲队列,判断资源空闲队列中的空闲容器资源提供量,分配给告警容器后,能否消除告警;

若可以消除容器资源告警,减少资源空闲队列中选定的容器资源的资源分配,并将释放出来的容器资源分配给发生资源告警的容器。

优选的,所述减少资源空闲队列中选定的容器资源的资源分配,并将释放出来的容器资源分配给发生资源告警的容器,具体包括:

如果队首容器的空闲资源提供量不够用,则先释放队首容器的空闲资源,然后依次往后,直至释放的空闲资源提供量满足要求。

优选的,若资源空闲队列中的空闲容器资源提供量,分配给告警容器后,不能消除告警,所述方法包括:

查询容器资源缩减队列,针对不同优先级的容器,采用预先设定的资源管理策略,缩减最低优先级容器的资源开销,并将释放出来的资源转移给发生告警的容器中;

其中,所述资源管理策略,包括采用减少资源、重启容器和停止容器中的一种或者多种方式进行容器资源缩减队列所包含容器的资源缩减。

优选的,所述方法还包括:

当最低优先级只有单一容器时,则所述单一容器为缩减对象;

当最低优先级有多个容器时,则根据设定的资源缩减系数计算方法,找到资源缩减的容器的顺序。

优选的,所述生成资源空闲队列、资源缩减队列和资源唤醒队列,具体包括:

在第一预设周期时间内,获取系统资源使用率和各容器资源使用率;所述系统资源使用率和各容器资源使用率,包括cpu使用率和内存使用率;

根据各个资源使用率,结合资源管理策略配置的算法,生成由容器id组成的资源空闲队列、资源缩减队列和资源唤醒队列。

优选的,所述资源管理策略配置的算法,包括容器的资源空闲系数计算方法、容器的资源缩减系数计算方法和容器的唤醒系数计算方法,具体包括:

将资源空闲系数低于空闲阈值的容器,加入到资源空闲队列;

容器的资源空闲系数计算方法如下:

资源空闲系数=(100%-当前资源使用率r1)×(容器分配资源qc/系统总资源qt)×空闲时长;

其中,空闲时长为所述第一预设周期时间;

空闲容器可以提供调度的资源数量为:

空闲资源提供量=(100%-当前资源使用率r1)/2×容器分配资源qc;

根据资源缩减系数,生成资源缩减队列,所述资源缩减系数的计算方法具体为:

资源缩减系数=(当前资源使用率r1-启动时资源使用率r0)×(容器分配资源qc/系统总资源qt)/权重w;

所述当前资源使用率r1为相应容器在当前周期时间内的资源使用率;

所述启动时资源使用率r0为相应容器在启动时的资源使用率;

所述容器分配资源qc是指相应容器在启动时被分配的资源;

所述系统总资源qt是指当前系统的总资源;

所述权重w是指将同一优先级里的容器,按照其重要性的不同,赋予相应的分数,分数越大表示容器的重要程度越高;

计算出来的资源缩减系数结果数值越大的容器作为最先资源缩减的对象;

被停止的容器,根据资源使用率、容器系统分配资源和空闲时长参数计算出来的资源唤醒系数,组成资源唤醒队列;

资源唤醒系数计算方法如下:

资源唤醒系数=(停止时平均使用率r1-启动时资源使用率r0)×(容器分配资源qc/系统总资源qs)×停止时长;

停止时长为第一预设周期时间的数量,对应停止一个第一预设周期时间,则停止时长增加一个单位。

优选的,方法还包括:

资源空闲队列中的容器成员,以相应的容器允许动态执行资源调度,并且,相应的空闲资源提供量大于等于第一预设阈值,为加入资源空闲队列的条件;

资源缩减队列中的容器成员,以相应的容器允许动态执行资源调度,并且,相应的资源缩减系数大于等于第二预设阈值,为加入资源缩减队列的条件;

资源唤醒队列以相应的容器允许进入休眠状态为加入资源唤醒队列的条件。

第二方面,本发明还提供了一种电力终端中针对电力应用的容器资源管理装置,用于实现第一方面所述的电力终端中针对电力应用的容器资源管理方法,所述装置包括:

至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行第一方面所述的电力终端中针对电力应用的容器资源管理方法。

第三方面,本发明还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成第一方面所述的电力终端中针对电力应用的容器资源管理方法。

本发明通过容器资源管理策略配置,针对不同级别的容器采用不同的资源管理方法,生成资源空闲队列、资源缩减队列、资源唤醒队列;当系统或容器资源告警时,减少资源空闲队列或资源缩减队列中的容器资源,补充到资源告警的系统或容器中;或者当系统或容器资源空闲达到预设时长时,唤醒处于资源唤醒队列中被停止的容器,实现了容器资源自动化管理和针对不同优先级的容器的资源进行灵活调度,提高了嵌入式环境中的系统资源利用效率。

【附图说明】

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种电力终端中针对电力应用的容器资源管理方法的流程示意图;

图2是本发明实施例提供的一种电力终端中针对电力应用的容器资源管理方法的告警处理流程图;

图3是本发明实施例提供的一种电力终端中针对电力应用的容器资源管理方法的流程示意图;

图4是本发明实施例提供的一种容器资源队列生成的处理流程图;

图5是本发明实施例提供的一种容器唤醒的处理流程图;

图6是本发明实施例提供的一种资源管理策略配置的处理流程图;

图7是本发明实施例提供的一种电力终端中针对电力应用的容器资源管理装置的示意图。

【具体实施方式】

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

实施例1:

本发明实施例1提供了一种电力终端中针对电力应用的容器资源管理方法,在本发明实施例中容器,是指部署了电力应用程序的docker容器,通常情况下一个容器部署一个电力应用程序,保证应用程序的独立性和业务功能的单一性。如图1所示,方法包括:

在步骤201中,生成资源空闲队列、资源缩减队列和资源唤醒队列。

在实际实现过程中,所述资源空闲队列、资源缩减队列和资源唤醒队列在生成之后不一定就有容器被加入到队列中,并且,生成的时机也可以根据实际情况来进行设定,可以是预先生成,也可以在有相应类型容器需要首次添加到相应队列时,才生成相应队列。在具体实现过程中,各类型的队列的数量也不限定为一个队列,若需要加入队列的容器数量较大也可以根据实际情况需求给予各类型的队列设定一定长度,并根据实际情况一旦要超过相应设定的长度就动态的生成多个队列,这是为了保证各个队列里查询容器和进行资源控制的速度考虑。在具体实现过程中,可以根据容器拥有的空闲资源多少,分别归入不同的队列,从而根据具体情况下所需资源的多少有目的在相应队列中进行本发明实施例所提出的技术方案操作。

在步骤202中,当系统或容器的资源告警时,减少资源空闲队列和/或资源缩减队列中的容器资源,用于补充到资源告警的系统或容器中。

具体的减少资源空闲队列和/或资源缩减队列的容器资源方式将在本发明后续实施例扩展内容和相应的具体实施例中进行具体展示。

在步骤203中,当系统或容器的资源空闲达到预设时长时,唤醒处于资源唤醒队列中被停止的容器。

此处步骤203为条件执行的步骤,而相应的预设时长可以根据实际场景需求进行调整,通常的设定的依据至少可以一下几种方式之一或者方式的组合,

方式一:根据被停止的容器历史上的使用频率作为预设时长的设定依据,在这种方式下,所述预设时长通常表现为一动态调整的参数值,即在加入到资源唤醒队列中的容器的历史使用频率的不用,相应的预设时长会根据使用频率最短的容器加入到资源唤醒队列中而发生改变。而作为方式一的可选方案之一,所述预设时长还可以采用加入到资源唤醒队列中的多个容器的历史使用频率的求平均值得到,还可以通过各个容器所适用的场景重要等级对各自的使用频率做加权后求平均值得到,依次类推得到的等同求预设时长的方式均属于本发明的保护范围;

方式二:可以直接根据经验值进行设定;

方式三:根据相应加入到资源唤醒队列中容器所服务的应用,在发现为其所分配的容器处于停止状态时,触发请求激活消息的时间与相应停止容器的时间的时差作为调整所述预设时长的依据。

上述三种方式各有优劣,方式三所得到的预设时长是最贴近实际情况的,而方式一也算是根据历史的经验值(容器的使用频率)和实际情况(加入资源唤醒队列的容器的不同)结合一种产物,相比较方式三而言其生成预设时长的速度较快,而方式二作为纯粹凭借经验进行设定的方式缺乏方式一和方式三的准确性,但是其实现的速度是最快的。

本发明通过容器资源管理策略配置,针对不同级别的容器采用不同的资源管理方法,生成资源空闲队列、资源缩减队列、资源唤醒队列;当系统或容器资源告警时,减少资源空闲队列或资源缩减队列的容器资源,补充到资源告警的系统或容器中;或者当系统或容器资源空闲达到预设时长时,唤醒处于资源唤醒队列中被停止的容器,实现了容器资源自动化管理和针对不同优先级的容器的资源进行灵活调度,提高了嵌入式环境中的系统资源利用效率。

在执行本发明实施例步骤202之前,通常会优先去征询系统资源是否有盈余,若没有盈余才会执行步骤202中对应特征内容,因此,如图2所示,所述方法包括:

在步骤301中,容器资源告警发生时,判断系统资源是否存在空闲。

在步骤302中,若系统资源存在空闲时,将系统剩余可用资源分配给发生资源告警的容器。

在实现过程中,上述步骤301相比较步骤201-步骤203而言是相对独立并行的执行过程,而步骤301-步骤302的执行过程可以理解为是优先级高于步骤202的过程,只有在所述步骤302-步骤302无法有效克服兼容器资源告警时,才进一步触发步骤202的执行过程(使用资源空闲队列和/或资源缩减队列中的容器资源),而相应的步骤202的执行过程也可以拆分为以下几部分来完成。

第一部分,首先征询资源空闲队列

查询资源空闲队列,判断资源空闲队列中的空闲容器资源提供量,分配给告警容器后,能否消除告警;

若可以消除容器资源告警,减少资源空闲队列中选定的容器资源的资源分配,并将释放出来的容器资源分配给发生资源告警的容器。如果队首容器的空闲资源提供量不够用,则先释放队首容器的空闲资源,然后依次往后,直至释放的空闲资源提供量满足要求。

第二部分,其次征询容器资源缩减队列

若资源空闲队列中的空闲容器资源提供量,分配给告警容器后,不能消除告警,所述方法包括:

查询容器资源缩减队列,针对不同优先级的容器,采用预先设定的资源管理策略,缩减最低优先级容器的资源开销,并将释放出来的资源转移给发生告警的容器中;

其中,所述资源管理策略,包括采用减少资源、重启容器和停止容器中的一种或者多种方式进行容器资源缩减队列所包含容器的资源缩减。

当最低优先级只有单一容器时,则所述单一容器为缩减对象;

当最低优先级有多个容器时,则根据设定的资源缩减系数计算方法,找到资源缩减的容器的顺序。

将释放出来的资源转移给发生告警的容器中后,进一步会更新告警容器的资源,即增加该告警容器的cpu资源和/或内存资源,在其使用率降至阈值以下,消除容器资源告警;资源更新操作处理完成后,记录所选择的处理方式和结果,包括被停止的容器,在被执行停止操作时的容器资源使用率,用于记录日志和上报主站平台。

在本发明实施例中,涉及的所述生成资源空闲队列、资源缩减队列和资源唤醒队列,从各自所述涉及的核心算法层面,展现其技术内容实现如下:

第一方面,资源空闲队列:

在第一预设周期时间内,获取系统资源使用率和各容器资源使用率;

根据各个资源使用率,结合资源管理策略配置的算法,生成由容器id组成的资源空闲队列、资源缩减队列和资源唤醒队列。

此处的第一预设周期时间可以根据预先准备分配给三个队列(资源空闲队列、资源缩减队列和资源唤醒队列)的更新速度进行挂钩,若要上述三个队列的更新速度较快,则相应的第一预设周期时间的参数值通常会被设置的较小,这样的话用于“获取系统资源使用率和各容器资源使用率”的操作也会更多的占用计算资源。因此,相应的若增大所述第一预设周期时间参数值,也能够减小由此产生的计算资源的占用。实际值可以根据具体应用场景,并借鉴上述分析的关系进行设定,在此不限定具体的值。

在可选的实现方案中,所述第一预设周期时间和第一预设周期时间可以是同一参数值,即此处的“在第一预设周期时间内,获取系统资源使用率和各容器资源使用率”即步骤301中的相应步骤内容,而后续的“根据各个资源使用率,结合资源管理策略配置的算法,生成由容器id组成的资源空闲队列、资源缩减队列和资源唤醒队列。”可以理解为是与步骤302并行/串行执行的方法步骤。

所述资源管理策略配置的算法,包括容器的资源空闲系数计算方法、资源缩减系数计算方法和资源唤醒系数计算方法,具体包括:

将资源空闲系数低于空闲阈值的容器,加入到资源空闲队列;

容器的资源空闲系数计算方法如下:

资源空闲系数=(100%-当前资源使用率r1)×(容器分配资源qc/系统总资源qt)×空闲时长;

其中,空闲时长为所述第一预设周期时间;

空闲容器可以提供调度的资源数量为:

空闲资源提供量=(100%-当前资源使用率r1)/2×容器分配资源qc;

第二方面,资源缩减队列:

根据资源缩减系数,生成资源缩减队列,所述资源缩减系数的计算方法具体为:

资源缩减系数=(当前资源使用率r1-启动时资源使用率r0)×(容器分配资源qc/系统总资源qt)/权重w;

所述当前资源使用率r1为相应容器在当前周期时间内的资源使用率;

所述启动时资源使用率r0为相应容器在启动时的资源使用率;

所述容器分配资源qc是指相应容器在启动时被分配的资源;

所述系统总资源qt是指当前系统的总资源;

所述权重w是指将同一优先级里的容器,按照其重要性的不同,赋予相应的分数,分数越大表示容器的重要程度越高;

计算出来的资源缩减系数结果数值越大的容器作为最先资源缩减的对象;

第三方面,资源唤醒队列:

被停止的容器,根据资源使用率、容器系统分配资源和空闲时长参数计算出来的资源唤醒系数,组成资源唤醒队列;

资源唤醒系数计算方法如下:

资源唤醒系数=(停止时平均使用率r1-启动时资源使用率r0)×(容器分配资源qc/系统总资源qs)×停止时长;

停止时长为第一预设周期时间的数量,对应停止一个第一预设周期时间,则停止时长增加一个单位。

其中,若两个资源唤醒系数相同,则依次将优先级更高和/或权重w分数更高容器居于队首。

在本发明实施例中,资源空闲队列中的容器成员,以相应的容器允许动态执行资源调度,并且,相应的空闲资源提供量大于等于第一预设阈值,为加入资源空闲队列的条件;资源缩减队列中的容器成员,以相应的容器允许动态执行资源调度,并且,相应的资源缩减系数大于等于第二预设阈值,为加入资源缩减队列的条件;资源唤醒队列以相应的容器允许进入休眠状态为加入资源唤醒队列的条件。

相应的,相应的空闲资源提供量小于第一预设阈值,为退出资源空闲队列的条件;相应的资源缩减系数小于第二预设阈值,为退出资源缩减队列的条件;而退出资源唤醒队列的条件为相应的容器从休眠状态被唤醒。其中,第一预设阈值和第二预设阈值可以根据经验和场景中容器数量和各自拥有的资源使用情况进行设置和动态的调整。

实施例2:

在本发明实施例中,通过步骤301-302进一步将系统资源使用到了如何克服容器告警的场景之中,而对于实施例1所阐述的技术要素来说,还可以进一步使用到资源缩减队列,因此,本发明实施例就从较为完整的逻辑阐述在同时包含有资源空闲队列和资源缩减队列的场景下,如何克服容器告警问题,如图3所示,方法包括:

在步骤401中,在第一预设周期时间内,获取系统资源使用率和各容器资源使用率,所述资源使用率包括cpu使用率和内存使用率。

如预设周期为5分钟,通过命令获取系统资源使用率和容器资源使用率:

如系统资源cpu使用率:

其中available为1.4g标识可用内存,使用率为30%;

%cpu(s):39.1us,10.2sy,0.0ni,50.4id,0.1wa,0.0hi,0.2si,0.0st;

其中50.4id表示空闲cpu为50.4%;

查询到容器cpu使用率和内存使用率

containerindex:0;

containername:pd_104;

containerstatus:running;

containerip:172.17.0.9;

containercpu:4cores;

containercpu-usage:3%;

containermaxmem:1024m;

containermem-usage:1%;

containerdisk-size:1024m;

containerdisk-usage:5%;

其中容器pd_104的cpu使用率3%,内存使用率1%。

所述容器,是指部署了电力应用程序的docker容器,通常情况下一个容器部署一个电力应用程序,保证应用程序的独立性和业务功能的单一性。

在步骤402中,资源告警发生。所述资源告警,包括系统资源告警或容器资源告警,是指资源使用率超过了预设的阈值。

本实施例的阈值设置为90%,当cpu使用率或内存使用率超过了90%就发出发告警事件。此处的cpu使用率和内存使用率,更具场景的不同可以是上述的系统的cpu使用率和系统的内存使用率,也可以是容器的cpu使用率和容器的内存使用率;也存在概率性的,两者同时发生。

在步骤403中,判断系统资源是否存空闲;所述系统资源存在空闲,是指系统将空闲资源分配给告警容器、消除告警后不会引起系统资源告警。

比如说系统空闲内存有1.4g,消除容器告警需要0.2g,还剩下1.2g不会引起系统告警,则此时认为系统资源存在空闲;

系统资源存在空闲时,进入步骤408,将系统剩余可用资源分配给该容器,更新该容器的资源;否则进入步骤404。

在步骤404中,当资源告警发生,而系统资源不存在空闲时,查询资源空闲队列。

在步骤405中,判断资源空闲队列是否满足要求,即资源空闲队列中的空闲资源提供量,分配给告警容器后,能否消除告警。如果是,进入步骤407中;否则,进入步骤406。所述空闲资源提供量,是指资源空闲队列的所有容器的空闲资源提供量之和。

在步骤406中,查询资源缩减队列,选择容器资源缩减对象。

针对不同优先级的容器,采用预先设定的不同的资源管理策略,缩减最低优先级容器的资源开销。

当最低优先级只有单一容器时,则该单一容器为缩减对象;

当最低优先级有多个容器时,则根据设定的策略算法,找到资源缩减的唯一容器。具体的策略算法参考实施例1中相应技术表述,在此不做赘述。

在步骤407中,针对选定队列容器资源更新,减少资源,即减少选定容器的资源,包括资源空闲队列或资源缩减队列。

所述减少选定容器的资源,若为资源空闲队列,则将资源空闲队列中的容器的空闲资源分配给该容器,更新该容器的资源;需要说明的是,减少队列资源的过程中,如果队首容器的空闲资源提供量不够用,则先释放队首容器的空闲资源,然后依次往后,直至释放的空闲资源提供量满足要求。

若为资源缩减队列,则根据该容器的资源管理策略,采用相应的处理方法来释放资源,至少包括减少资源、重启容器、停止容器三种。

在步骤408中更新告警容器的资源。即增加该容器的cpu或内存资源,使其使用率降至阈值以下,消除容器资源告警。

在步骤409中资源更新操作处理完成后,记录所选择的处理方式和结果,包括停止容器时的容器资源使用率,用于记录日志和上报主站平台。

实施例3:

在本发明实施例中,进一步细化了上述个实施例中所涉及的“在第一预设周期时间内,获取系统资源使用率和各容器资源使用率”的方法实例过程。如图4所示,具体包括:

在步骤501中,在第一预设周期时间内,获取系统资源使用率和各容器资源使用率。

根据各个资源使用率,结合资源管理策略配置的算法,生成由容器id组成的资源空闲队列、资源缩减队列、资源唤醒队列。

在步骤502中,计算容器的资源空闲系数,组成资源空闲队列。

所述资源空闲队列,是指将资源使用率低于空闲阈值的容器,根据资源使用率、容器系统分配资源和空闲时长等参数计算出来的资源空闲系数,组成的容器队列;队首为资源空闲系数最大的容器。

在步骤503中,计算容器的资源缩减系数,组成资源缩减队列。

所述资源缩减队列,是指针对不同优先级的容器,采用预先设定的不同的资源管理策略,计算资源缩减系数,具体方法是,同一级别的容器,每个应用设置不同权重,根据资源开销的变化率和资源占用率,并结合权重计算:

资源缩减系数=(当前资源使用率r1-启动时资源使用率r0)x(容器分配资源qc/系统总资源qt)/权重w;

其中,所述当前资源使用率r1为相应容器在当前周期时间内的资源使用率,所述启动时资源使用率r0为相应容器在启动时的资源使用率,所述容器分配资源qc是指相应容器在启动时被分配的资源,所述系统总资源qt是指当前系统的总资源;所述权重w,是指将同一优先级里的容器,按照其重要性的不同,赋予相应的分数(例如:赋值范围为1-100),分数越大表示容器的重要程度越高;计算出来的资源缩减系数结果数值越大的容器作为最先资源缩减的对象。

在步骤504中,计算资源唤醒系数,组成资源唤醒队列。

所述资源唤醒队列,是因资源告警被停止、等待启动的容器队列,当系统或容器资源空闲满足预设条件时,被停止的容器会根据资源唤醒系数来唤醒;

被停止的容器,根据资源使用率、容器系统分配资源和空闲时长等参数计算出来的资源唤醒系数,组成的容器队列;队首为资源唤醒系数最大的容器。

资源唤醒系数计算方法如下:

资源唤醒系数=(停止时平均使用率r1-启动时资源使用率r0)×(容器分配资源qc/系统总资源qs)×停止时长;

其中,停止时长为预设周期数量,如停止一个周期,则停止时长增加一个单位;如果两个资源唤醒系数相同,则依次将优先级更高和/或权重w分数更高容器居于队首。

实施例4:

本发明实施例从容器唤醒流程角度,阐述在本发明实施例中所涉及的资源唤醒队列所涉及的较为完整的技术方案的实现过程,如图5所示,方法包括:

在步骤601中,在第一预设周期时间内,获取系统资源使用率和各容器资源使用率。

在步骤602中,当资源空闲时间超过预设空闲时长,这里的资源空闲是指系统资源空闲或容器资源空闲,预设空闲时长为指定数量的所述步骤601中的第一预设周期。

在步骤603中,判断资源唤醒队列是否为空;如果为空,表示没有容器需要唤醒,流程结束;否则进入步骤604。

在步骤604中,查询资源唤醒队列队首容器所需资源,即运行该容器所设置的资源需求数量。

在步骤605中,查询空闲资源提供量,判断空闲资源是否够用;所述空闲资源提供量,是指系统空闲资源提供量和资源空闲队列的所有容器的空闲资源提供量之和;如果系统空闲资源提供量足够使用,则跳过步骤606,直接进入步骤607。

在步骤606中,减少资源空闲队列中的被选定的容器的资源,以便将相应资源提供给资源唤醒队列中的容器使用。若相应被减少资源的容器的空闲资源提供量低于第一预设阈值,则并将相应容器从资源空闲队列移除;需要说明的是,减少队列资源的过程中,如果队首容器的空闲资源提供量不够用,则先释放队首容器的空闲资源,然后依次往后,直至释放的空闲资源提供量满足要求。

在步骤607中,启动资源唤醒队列队首容器。

在步骤608中,处理完成,生成操作记录,容器唤醒流程结束。

实施例5:

在执行本发明上述各实施例之前的,优选的是对系统中所涉及的容器、相关策略和阈值等等进行预先的配置,因此,如图6所示,方法还包括:

在步骤701中,初始化资源管理策略配置,并设置系统资源告警阈值和空闲阈值,对容器进行分类,不同应用程序的容器,优先级不一样,资源处理策略也不一样;这些策略配置不是固定不变的,是可以通过相关平台远程更新的;

在步骤702中,接收远程下发的资源管理策略配置,并将策略配置存储在本地文件系统中;如果远程下发的策略为空,则采用本地策略;

所述策略配置包括系统资源阈值,每个容器的优先级和权重w分数,以及处理方式,资源阈值。

所述优先级,是根据电力应用的特点,将系统里的所有容器分为不同的优先级;比如核心的电力基础应用程序,对稳定性要求最高,其容器作为第一优先级;电力基本业务应用程序,业务数据来源于基础应用程序,其容器作为第二优先级;高级业务和增值业务应用程序,其容器作为第三优先级,以此类推。

所述权重配置,是指将同一优先级里的容器,按照其重要性,赋予不同的权重w分数,系数范围为1-100,分数越大表示容器的重要程度越高。

所述处理方式,是指资源缩减的处理方式,有三种方式:

a:直接减少资源缩减对象的容器资源,并确保不会引起容器资源告警;

b:重启资源缩减对象的容器,释放运行过程中产生的容器资源;

c:停止资源缩减对象的容器,彻底释放该容器所占用的资源;

在资源缩减的处理过程中,可以采取所述三种方式中的组合,也可以采取某一单一处理方式,由资源管理策略决定。

比如前一种方式无法达到预期效果,继续采用后一种方式;所述预期效果,是指资源缩减对象所释放的资源,可以用于告警容器,使该容器告警消失。

所述阈值,是系统和每个容器的资源使用率的临界值,越过阈值则会告警;如,资源使用率超过告警阈值会产生告警流程,资源使用率低于空闲阈值达到预定时间会产生唤醒流程。

本实施例中,以电力应用的特点为例,将系统里的所有容器分为三个优先级:

交流电采集ac_data、配电业务pd_104、抄表业务yx_698属于核心的电力基础应用程序,对稳定性要求最高,其容器作为第一优先级;

电力基本业务应用程序,包括配变检测dt_monitor、线损分析lineloss_analysis、电能量统计energy_statistics,业务数据来源于基础应用程序,其容器作为第二优先级;

高级业务和增值业务应用程序,包括充电桩管理charge_manage、能效管理efficiency_manage、用电分析pow_analysis,这些应用程序如果短暂重启或停止,不会产生严重后果,其容器作为第三优先级;

每个优先级的容器的权重,分为100、50、20等权重系数,系数范围为1-100,系数越大表示容器的重要程度越高;

每个容器的资源缩减的处理方式,如前文所述的三种,可以是其中的一种或者多种组合;如果是多种组合,则依次执行;

每个容器的资源阈值是容器资源使用率的临界值,如设为90%,越过阈值则会告警。

本实施例的资源管理策略配置如下:

实施例6:

如图7所示,是本发明实施例的电力终端中针对电力应用的容器资源管理装置的架构示意图。本实施例的电力终端中针对电力应用的容器资源管理装置包括一个或多个处理器21以及存储器22。其中,图7中以一个处理器21为例。

处理器21和存储器22可以通过总线或者其他方式连接,图7中以通过总线连接为例。

存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序和非易失性计算机可执行程序,如实施例1中的电力终端中针对电力应用的容器资源管理方法。处理器21通过运行存储在存储器22中的非易失性软件程序和指令,从而执行电力终端中针对电力应用的容器资源管理方法。

存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1中的电力终端中针对电力应用的容器资源管理方法,例如,执行以上描述的图1-图6所示的各个步骤。

值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或光盘等。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1