CN103389791A - 数据系统的功率控制方法及装置 - Google Patents
数据系统的功率控制方法及装置 Download PDFInfo
- Publication number
- CN103389791A CN103389791A CN201310256590XA CN201310256590A CN103389791A CN 103389791 A CN103389791 A CN 103389791A CN 201310256590X A CN201310256590X A CN 201310256590XA CN 201310256590 A CN201310256590 A CN 201310256590A CN 103389791 A CN103389791 A CN 103389791A
- Authority
- CN
- China
- Prior art keywords
- power
- back end
- power limit
- application program
- application
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Direct Current Feeding And Distribution (AREA)
- Power Sources (AREA)
Abstract
本发明实施例提供一种数据系统的功率控制方法及装置。本发明实施例提供的数据系统的功率控制方法,包括:根据数据集群和/或数据节点内应用程序所占用资源,基于设定函数确定所述应用程序的消耗功率;根据所述应用程序的消耗功率,基于设定策略对所述数据集群、数据节点和/或应用程序进行功率控制。本发明实施例提供的功率控制方法的可以针对不同应用程序进行功率控制、管理精度高。
Description
技术领域
本发明实施例涉及数据处理技术,尤其涉及一种数据系统的功率控制方法及装置。
背景技术
数据系统是企业或机构内部,以及企业或机构之间实现信息集中管理与共享,提供信息服务与决策支持的平台。数据系统的电力供给是数据系统的命脉,而随着数据系统功能的不断强大及设备数量的不断增大,数据系统对电力的需求不断增长。而如何在总的供电能力有限的情况下,平衡数据系统功能的实现与资源利用成为亟需解决的问题之一。
为解决上述问题,业界提出多种有益的措施,如硬件设备的新材料及新工艺的引入、硬件设备内部架构的优化和改进及虚拟化技术等。在数据系统内设备材料、设备内部架构及虚拟化技术的优化和改进的基础上,还提出一种基于数据系统内部的设备集群及节点的功率控制方法。数据系统一般由多个数据节点组成,多个数据节点可构成数据集群,统一调度数据节点的资源并进行功率控制。该方法通过检测整个集群中的各个节点功率状态,基于总的供电能力受限的情况下,对各个数据节点进行功率控制。
由于每个数据节点上可能运行多个应用程序,而每个应用程序占用的资源可能各不相同,然而,基于现有的功率控制方法进行功率资源管理,由于其精度较低,无法针对不同应用程序进行功率控制,可能会使得数据节点中占用资源较少的应用程序的空余资源多,而占用资源比较多的应用程序的运行受限,从而使得数据系统实现功能受限。
发明内容
本发明实施例提供一种数据系统的功率控制方法及装置,以解决现有的功率控制方法精度低使得数据系统实现功能受限的问题。
第一方面,本发明实施例提供一种数据系统的功率控制方法,包括:
根据数据集群和/或数据节点内应用程序所占用资源,基于设定函数确定所述应用程序的消耗功率;
根据所述应用程序的消耗功率,基于设定策略对所述数据集群、数据节点和/或应用程序进行功率控制。
在本发明第一方面的第一种可能实现的方式中,根据数据集群和/或数据节点内应用程序所占用资源,基于设定函数确定所述应用程序的消耗功率包括:
接收待启动应用程序向所述数据集群和/或数据节点发起的资源申请;
根据所述待启动应用程序的属性信息预测待分配资源;
根据所述待分配资源基于设定函数确定所述待启动应用程序的功率限值,作为所述消耗功率。
根据第一方面或第一方面的第一种可能实现的方式,在第二种可能实现的方式中,所述根据所述应用程序的消耗功率,基于设定策略对所述数据集群、数据节点和/或应用程序进行功率控制包括:
根据所述应用程序的消耗功率,基于设定策略,调整以下至少一项:所述数据集群的功率限值、所述数据节点的功率限值、所述应用程序的功率限值、分配给所述应用程序的资源、分配给所述数据集群和/或数据节点中其他应用程序的资源。
根据第一方面的第二种可能实现的方式,在第三种可能实现的方式中,根据所述应用程序的消耗功率,基于设定策略对所述数据集群、数据节点和/或应用程序进行功率控制包括:
根据所述应用程序的消耗功率,以及所述数据集群和/或数据节点的实测功率,基于设定策略对所述数据集群、数据节点和/或应用程序进行功率控制。
根据第一方面的第一种可能实现的方式,在第四种可能实现的方式中,所述根据所述待分配资源基于设定函数确定所述待启动应用程序的功率限值包括:
根据所述待分配资源基于设定函数确定所述待启动应用程序的基础功率限值;
根据所述待启动应用程序的属性信息、以及所述数据集群和/或所述数据节点的资源分配状态确定所述待启动应用程序的浮动功率限值,所述基础功率限值与浮动功率限值之和作为所述待启动应用程序的功率限值。
根据第一方面的第一种或第四种可能实现的方式,在第五种可能实现的方式中,所述根据所述应用程序的消耗功率,基于设定策略对所述应用程序进行功率控制包括:
根据所述数据节点内已运行应用程序的功率限值、所述数据节点的实测功率、以及所述数据节点的功率范围值,确定所述数据节点是否满足所述待启动应用程序的功率限值要求;
如果确定满足功率限值要求,根据所述待启动应用程序的功率限值基于放大策略为所述待启动应用程序分配资源;
如果确定不满足功率限值要求,减少分配给其他已运行应用程序的资源,或将所述待启动应用程序调度至其他数据节点进行资源申请。
根据第一方面的第一种可能实现的方式,在第六种可能实现的方式中,所述方法还包括:
实时获取所述数据节点的功率极值和功率限值,并根据所述数据节点的实测功率计算所述数据节点的功率范围值。
在第一方面的第七种可能实现的方式中,所述根据数据集群和/或数据节点内应用程序所占用资源,基于设定函数确定所述应用程序的消耗功率包括:
实时监测数据节点内已运行应用程序所占用资源,基于设定函数确定所述应用程序的实测功率,作为所述消耗功率。
根据第一方面的第七种可能实现的方式,在第八种可能实现的方式中,所述根据所述应用程序的消耗功率,基于设定策略对所述应用程序进行功率控制包括:
根据已运行应用程序的实测功率,判断所述已运行应用程序的实测功率是否大于功率限值;
如果所述已运行应用程序的实测功率大于功率限值,判断所述已运行应用程序所在的数据节点的实测功率是否大于数据节点的功率限值;
如果所述已运行应用程序所在的数据节点的实测功率大于数据节点的功率限值,则减少分配给所述已运行应用程序的资源,或降低所述已运行应用程序的功率限值,或减少分配给其他低优先级已运行应用程序的资源。
根据第一方面的第7种或第八种可能实现的方式,在第九种可能实现的方式中,所述方法还包括:
实时获取所述数据节点的功率极值、功率限值和所述数据节点的实测功率。
根据第一方面的第一种可能实现的方式,在第十种可能实现的方式中,所述根据所述应用程序的消耗功率,基于设定策略对所述应用程序进行功率控制包括:
根据所述数据集群内各数据节点的实测功率和功率限值,以及所述待启动应用程序的功率限值,确定至少一个备选数据节点,并针对各备选数据节点逐一执行如下节点内匹配操作:
根据所述备选数据节点内已运行应用程序的功率限值、所述备选数据节点的实测功率、以及所述备选数据节点的功率范围值,确定所述备选数据节点是否满足所述待启动应用程序的功率限值要求;
如果确定所述备选数据节点满足所述待启动应用程序的功率限值要求,在所述备选数据节点中,根据所述待启动应用程序的功率限值基于放大策略为所述待启动应用程序分配资源;
如果确定所述备选数据节点不满足所述待启动应用程序的功率限值要求,选择下一个备选数据节点;
当最后一个备选数据节点不满足待启动应用程序的功率限值要求时,减少分配给其他已运行应用程序的资源,或返回执行所述确定至少一个备选数据节点的操作。
在第一方面的第十种可能实现的方式,在第十一种可能实现的方式中,所述根据所述应用程序的消耗功率,基于设定策略对所述应用程序进行功率控制包括:
根据已运行应用程序的实测功率,判断所述已运行应用程序的实测功率是否大于功率限值;
如果所述已运行应用程序的实测功率大于功率限值,判断所述已运行应用程序所在的数据节点的实测功率是否大于数据节点的功率限值;
若所述已运行应用程序所在的数据节点的实测功率大于数据节点的功率限值,根据所述数据集群的实测功率、功率限值和功率极值,判断所述数据集群的实测功率是否满足所述数据集群的功率限值的要求;
若所述数据集群的实测功率不满足所述数据集群的功率限值的要求,则减少分配给所述已运行应用程序的资源,或降低所述已运行应用程序的功率限值,或减少分配给其他低优先级已运行应用程序的资源。
根据第一方面的第十一种可能实现的方法,在第十二种可能实现的方式中,所述方法还包括:
实时获取所述数据集群中各数据节点的实测功率、功率极值、功率限值和所述数据集群的实测功率。
根据第一方面的第十种至第十二种任一可能实现的方式,在第十三种可能实现的方式中,所述方法还包括:
根据所述数据集群的功率极值和所述数据集群的物理架构,确定所述数据集群的功率限值;
根据所述数据集群的功率极值和所述数据集群的功率限值,确定所述数据集群中各数据节点的功率极值和功率限值。
根据第一方面的第八种或第十一种可能实现的方式,在第十四种可能实现的方式中,所述根据已运行应用程序的实测功率,判断所述已运行应用程序的实测功率是否大于功率限值包括:
根据已运行应用程序的实测功率,判断所述已运行应用程序的实测功率是否大于基础功率限值;
若所述已运行应用程序的实测功率大于基础功率限值,则判断所述已运行应用程序的实测功率是否大于功率限值,其中,所述功率限值为基础功率限值与浮动功率限值之和;
若所述已运行应用程序的实测功率不大于基础功率限值,则调整所述已运行应用程序的浮动功率限值。
根据第一方面的第八种或第十一种可能实现的方式,在第十五种可能实现的方式中,若所述已运行应用程序的实测功率大于功率限值,所述方法还包括:
判断所述已运行应用程序是否属于应用程序集群;
若所述已运行应用程序不属于应用程序集群,则继续执行后续操作;
若所述已运行应用程序属于应用程序集群,根据所述应用程序集群的优先级执行功率控制。
根据第一方面的第十五种可能实现的方式,在第十六种可能实现的方式中,所述根据所述应用程序集群的优先级执行功率控制包括:
若识别出所述应用程序集群的优先级为高优先级,获取所述应用程序集群中各已运行应用程序所在数据节点的功率限值及所述数据集群的功率限值;
根据所述应用程序集群中各已运行应用程序所在数据节点的功率限值及所述数据集群的功率限值,确定所述已运行应用程序所在数据节点的功率限值是否满足在所述数据集群的功率限值内提高的要求;
若所述已运行应用程序所在数据节点的功率限值满足在所述数据集群的功率限值内提高的要求,则提高所述已运行应用程序所在数据节点的功率限值,若所述已运行应用程序所在数据节点的功率限值不满足在所述数据集群的功率限值内提高的要求,减少所述已运行应用程序的功率限值,或减少分配给其他已运行应用程序的资源。
第二方面,本发明实施例还提供一种数据系统的功率控制装置,包括:
第一确定模块,用于根据数据集群和/或数据节点内应用程序所占用资源,基于设定函数确定所述应用程序的消耗功率;
控制模块,用于根据所述应用程序的消耗功率,基于设定策略对所述数据集群、数据节点和/或应用程序进行功率控制。
在第二方面的第一种可能实现的方式中,所述第一确定模块,具体用于接收待启动应用程序向所述数据集群和/或数据节点发起的资源申请;
根据所述待启动应用程序的属性信息预测待分配资源;
根据所述待分配资源基于设定函数确定所述待启动应用程序的功率限值,作为所述消耗功率。
根据第二方面或第二方面的第一种可能实现的方式,在第二种可能实现的方式中,所述控制模块,具体用于根据所述应用程序的消耗功率,基于设定策略,调整以下至少一项:所述数据集群的功率限值、所述数据节点的功率限值、所述应用程序的功率限值、分配给所述应用程序的资源、分配给所述数据集群和/或数据节点中其他应用程序的资源。
根据第二方面或第二方面的第二种可能实现的方式,在第三种可能实现的方式中,所述控制模块,具体用于根据所述应用程序的消耗功率,以及所述数据集群和/或数据节点的实测功率,基于设定策略对所述数据集群、数据节点和/或应用程序进行功率控制。
根据第二方面的第一种可能实现的方式,在第四种可能实现的方式中,所述第一确定模块,具体还用于根据所述待分配资源基于设定函数确定所述待启动应用程序的基础功率限值;
根据所述待启动应用程序的属性信息、以及所述数据集群和/或所述数据节点的资源分配状态确定所述待启动应用程序的浮动功率限值,所述基础功率限值与浮动功率限值之和作为所述待启动应用程序的功率限值。
根据第二方面的第一种或第四种可能实现的方式,在第五种可能实现的方式中,所述控制模块,具体用于根据所述数据节点内已运行应用程序的功率限值、所述数据节点的实测功率、以及所述数据节点的功率范围值,确定所述数据节点是否满足所述待启动应用程序的功率限值要求;
如果确定满足功率限值要求,根据所述待启动应用程序的功率限值基于放大策略为所述待启动应用程序分配资源;
如果确定不满足功率限值要求,减少分配给其他已运行应用程序的资源,或将所述待启动应用程序调度至其他数据节点进行资源申请。
根据第二方面的第一种可能实现的方式,在第六种可能实现的方式中,所述装置,还包括:
监测处理模块,用于实时获取所述数据节点的功率极值和功率限值,并根据所述数据节点的实测功率计算所述数据节点的功率范围值。
在第二方面的第七种可能实现的方式中,所述第一确定模块,具体用于实时监测数据节点内已运行应用程序所占用资源,基于设定函数确定所述应用程序的实测功率,作为所述消耗功率。
根据第二方面的第七种可能实现的方式,在第八种可能实现的方式中,所述控制模块,具体用于根据已运行应用程序的实测功率,判断所述已运行应用程序的实测功率是否大于功率限值;
如果所述已运行应用程序的实测功率大于功率限值,判断所述已运行应用程序所在的数据节点的实测功率是否大于数据节点的功率限值;
如果所述已运行应用程序所在的数据节点的实测功率大于数据节点的功率限值,则减少分配给所述已运行应用程序的资源,或降低所述已运行应用程序的功率限值,或减少分配给其他低优先级已运行应用程序的资源。
根据第二方面的第七种或第八种可能实现的方式,在第九种可能实现的方式中,所述装置,还包括:
第一监测模块,用于实时获取所述数据节点的功率极值、功率限值和所述数据节点的实测功率。
根据第二方面第一种可能实现的方式,在第十种可能实现的方式中,所述控制模块,具体用于根据所述数据集群内各数据节点的实测功率和功率限值,以及所述待启动应用程序的功率限值,确定至少一个备选数据节点,并针对各备选数据节点逐一执行如下节点内匹配操作:
根据所述备选数据节点内已运行应用程序的功率限值、所述备选数据节点的实测功率、以及所述备选数据节点的功率范围值,确定所述备选数据节点是否满足所述待启动应用程序的功率限值要求;
如果确定所述备选数据节点满足所述待启动应用程序的功率限值要求,在所述备选数据节点中,根据所述待启动应用程序的功率限值基于放大策略为所述待启动应用程序分配资源;
如果确定所述备选数据节点不满足所述待启动应用程序的功率限值要求,选择下一个备选数据节点;
当最后一个备选数据节点不满足待启动应用程序的功率限值要求时,减少分配给其他已运行应用程序的资源,或返回执行所述确定至少一个备选数据节点的操作。
在第二方面的第十种可能实现的方式,在第十一种可能实现的方式中,所述控制模块,具体用于根据已运行应用程序的实测功率,判断所述已运行应用程序的实测功率是否大于功率限值;
如果所述已运行应用程序的实测功率大于功率限值,判断所述已运行应用程序所在的数据节点的实测功率是否大于数据节点的功率限值;
若所述已运行应用程序所在的数据节点的实测功率大于数据节点的功率限值,根据所述数据集群的实测功率、功率限值和功率极值,判断所述数据集群的实测功率是否满足所述数据集群的功率限值的要求;
若所述数据集群的实测功率不满足所述数据集群的功率限值的要求,则减少分配给所述已运行应用程序的资源,或降低所述已运行应用程序的功率限值,或减少分配给其他低优先级已运行应用程序的资源。
根据第二方面的第十一种可能实现的方式,在第十二种可能实现的方式中,所述装置还包括:
第二监测模块,用于实时获取所述数据集群中各数据节点的实测功率、功率极值、功率限值和所述数据集群的实测功率。
根据第二方面的第十种至第十二种任一可能实现的方式,在第十三种可能实现的方式中,所述装置,还包括:
第二确定模块,用于根据所述数据集群的功率极值和所述数据集群的物理架构,确定所述数据集群的功率限值;
根据所述数据集群的功率极值和所述数据集群的功率限值,确定所述数据集群中各数据节点的功率极值和功率限值。
根据第二方面的第八种或第十一种可能实现的方式,在第十四种可能实现的方式中,所述控制模块,具体用于,根据已运行应用程序的实测功率,判断所述已运行应用程序的实测功率是否大于基础功率限值;
若所述已运行应用程序的实测功率大于基础功率限值,则判断所述已运行应用程序的实测功率是否大于功率限值,其中,所述功率限值为基础功率限值与浮动功率限值之和;
若所述已运行应用程序的实测功率不大于基础功率限值,则调整所述已运行应用程序的浮动功率限值。
根据第二方面的第八种或第十一种可能实现的方式,在第十五种可能实现的方式中,若所述已运行应用程序的实测功率大于功率限值,所述装置还包括:
判断模块,用于判断所述已运行应用程序是否属于应用程序集群;
处理模块,用于若所述已运行应用程序不属于应用程序集群,则继续执行后续操作;
若所述已运行应用程序属于应用程序集群,根据所述应用程序集群的优先级执行功率控制。
根据第二方面的第十五种可能实现的方式,在第十六种可能实现的方式中,所述处理模块,具体还用于若识别出所述应用程序集群的优先级为高优先级,获取所述应用程序集群中各已运行应用程序所在数据节点的功率限值及所述数据集群的功率限值;
根据所述应用程序集群中各已运行应用程序所在数据节点的功率限值及所述数据集群的功率限值,确定所述已运行应用程序所在数据节点的功率限值是否满足在所述数据集群的功率限值内提高的要求;
若所述已运行应用程序所在数据节点的功率限值满足在所述数据集群的功率限值内提高的要求,则提高所述已运行应用程序所在数据节点的功率限值,若所述已运行应用程序所在数据节点的功率限值不满足在所述数据集群的功率限值内提高的要求,减少所述已运行应用程序的功率限值,或减少分配给其他已运行应用程序的资源。
本发明实施例数据系统的功率控制方法及装置,根据数据集群和/或数据节点内应用程序所占用资源,基于设定函数确定应用程序的消耗功率,然后根据消耗功率,基于设定策略对该数据集群、数据节点和/或应用程序进行功率控制,该功率控制方法的管理精度高,可以针对不同应用程序进行功率控制。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一所提供的数据系统的功率控制方法的流程图;
图2为本发明实施例二所提供的数据系统的功率控制方法的流程图;
图3为本发明实施例二所提供的数据系统功率控制方法中单数据节点内待启动应用程序新申请资源的方法流程图;
图4为本发明实施例三提供的数据系统的功率控制方法的流程图;
图5为本发明实施例四所提供的数据系统的功率控制方法的流程图;
图6为本发明实施例四所提供的数据系统功率控制方法中数据集群内待启动应用程序新申请资源的方法流程图;
图7为本发明实施例五所提供的数据系统功率控制方法中数据集群内已运行应用程序的功率控制方法流程图;
图8为本发明实施例六所提供的数据系统的功率控制方法中单数据节点内部已运行应用程序的功率控制方法的流程图;
图9为本发明实施例七所提供的基于应用程序集群的功率控制方法的流程图;
图10为本发明实施例八所提供的数据系统的功率控制装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明实施例一所提供的数据系统的功率控制方法的流程图。本实施例的方法适用于数据系统进行功率控制,该数据系统至少包括一个数据节点,包括多个数据节点时各数据节点可以单独控制功率,或者多个数据节点可构成数据集群,由数据集群统一进行功率控制。数据集群包括多个数据节点,数据节点可以为不同的数据中心设备,而不同的数据节点上运行的应用程序无论是从数量还是实现功能均可能存在不同。数据集群即数据系统中心设备的集群可以是将数据系统中心设备按照不同规则分为不同的集群,如设备大小、散热或与其他设备的连接关系等情况。数据系统包含一整套复杂的设施,不仅仅包括计算机系统和其它与之配套的设备,例如通信和存储系统,还包含冗余的数据通信连接、环境控制设备、监控设备以及各种安全装置,是企业或机构处理信息业务的核心。
每个数据节点中可运行不同应用程序,应用程序根据需要会处于运行状态而占用资源,或者停止运行时会释放资源。该方法由数据系统的功率控制装置执行,该装置通常以硬件和/或软件的方式来实现,集成在数据系统中,具体可以布设在单个的数据节点中,或者也可以布设在数据集群的控制部件中。
本实施例的方法包括如下步骤:
步骤100、根据数据集群和/或数据节点内应用程序所占用资源,基于设定函数确定所述应用程序的消耗功率。
具体地,数据节点上的应用程序可能占用的资源一般包括,中央处理器(Central Processing Unit,简称CPU)资源、内存(Memory)资源、硬盘(Storage)资源及输入输出(Input Output,简称IO)接口资源等。上述各类资源又可具体涉及存储介质种类、宽带速率、主频等。不同的应用程序需占用的资源组成可能不同。本步骤中应用程序所占用资源可以为已运行应用程序实际占用的资源,也可以是指预估的待启动应用程序需要占用的资源。
应用程序不同于实体装置或设备,其消耗功率不能通过类似实体装置或设备功率的检测方法获得,应用程序的消耗功率通过该应用程序占用的软件及硬件的资源、占用时间等参数表征。因此根据应用程序占用资源参数信息基于设定函数确定消耗功率。该设定函数可通过经验预先设定,也可以通过反馈信息动态调整设定函数的参数。
步骤101、根据所述应用程序的消耗功率,基于设定策略对所述数据集群、数据节点和/或应用程序进行功率控制。
具体地,功率控制可直接控制数据集群的功率,各数据节点的功率,或者也可以通过控制应用程序来调整功率。优选是根据上述步骤100确定得到的应用程序的消耗功率,对应用程序的资源占用情况进行控制,从而对应用程序进行功率控制,进而可以对数据节点及数据集群进行控制。
本发明实施例一提供的数据系统的功率控制方法,通过根据对数据集群和/或数据节点内应用程序占用资源确定应用程序的消耗功率,从而根据该消耗功率,基于设定策略对所述数据集群、数据节点和/或应用程序进行功率控制,该基于应用程序的功率控制方法,其控制精度更高,从而能够更好的平衡功能实现与总的功率资源的问题。
进一步地,步骤101具体可以包括:
根据所述应用程序的消耗功率,基于设定策略,调整以下至少一项:所述数据集群的功率限值、所述数据节点的功率限值、所述应用程序的功率限值、分配给所述应用程序的资源、分配给所述数据集群和/或数据节点中其他应用程序的资源。
具体地,数据集群的功率限值由系统管理软件给出,可以由管理人员通过系统管理软件的输入界面进行配置,也可以是由系统管理软件根据预设的管理策略,根据当前收集到的系统信息进行的动态配置。数据集群的功率限值可以表示为P_Cluster_Cap。数据节点的功率限值的配置过程可以参考数据集群的功率限值的配置过程,数据节点的功率限值为该数据节点可以消耗功率的限值,表示为P_Node_Cap。应用程序的功率限值为该应用程序可消耗的功率限值,表示为P_App_Cap。
为数据集群、数据节点和各应用程序都分别设置了功率限值这一参数,功率限值区别于功率极值(Max)。功率极值一般是由硬件属性和供电能力决定的功率上限值,实测功率超过功率极值时一般会导致故障、断电等强制降低功率的措施。功率限值则一般是设定的控制上限值,可等于或低于功率极值,当实测功率短时间超过功率限值时还在一定的可控范围内。
上述技术方案提供了多种功率控制的具体手段,即控制所述数据集群的功率限值、所述数据节点的功率限值、所述应用程序的功率限值、分配给所述应用程序的资源、分配给所述数据集群和/或数据节点中其他应用程序的资源中的任意一个或多个都可以达到功率控制的目的,使得功率控制的手段更为灵活。
进一步地,步骤101具体还可包括:
根据所述应用程序的消耗功率,以及所述数据集群和/或数据节点的实测功率,基于设定策略对所述数据集群、数据节点和/或应用程序进行功率控制。
具体地,数据集群的实测功率可表示为P_Cluster(t),表示整个数据集群实际测量得到的功率值。数据节点的实测功率可表示为P_Node(t),表示该数据节点实际测量得到的功率值。P_Node(t)及P_Cluster(t)可以通过类似设备实际功率的检测方法得到。
上述方案进一步结合了数据集群和/或数据节点的实测功率来进行功率控制,能够有效兼顾应用程序的资源分配情况和设备的实际功率消耗情况。
实施例二
图2为本发明实施例二所提供的数据系统的功率控制方法的流程图。本发明实施例二提供的数据系统的功率控制方法是在实施例一的基础上进行进一步优化,具体适用于在单个数据节点上待启动应用程序申请资源时的功率控制。本实施例中,上述步骤100具体包括:
步骤200、接收待启动应用程序向所述数据节点发起的资源申请。
该待启动应用程序可以是新安装的待启动应用程序,在运行前,需要申请资源,包括软件资源和硬件资源。该待启动应用程序也可以是已有的应用程序,由于使用频率低,每次运行前需要重新进行资源申请。
步骤201、根据所述待启动应用程序的属性信息预测待分配资源。
待启动应用程序的属性信息可以是应用程序的名称、版本、类型及优先级等信息。根据该待启动应用程序的属性信息预测分配给该待启动应用程序的资源包括CPU资源、Memory资源、Storage资源及IO接口资源等。
步骤202、根据所述待分配资源基于设定函数确定所述待启动应用程序的功率限值,作为所述消耗功率。
该待启动应用程序的功率限值,表示为P_App_Cap,为该待启动应用程序运行时的预测功率限值,而实际运行时该待启动应用程序的实测功率P_App(t)可能会允许超过P_App_Cap的约束。根据待分配资源基于设定函数确定待启动应用程序的功率限值,可以是通过输入该待分配资源各参数信息,通过设定的函数,如预先已通过自学习、自适应的神经网络计算方法,计算得到P_App_Cap,作为消耗功率。该待启动应用程序的实测功率P_App(t)也可以是通过类似的方法得到的功率值。
进一步,本实施例二中的待启动应用程序的功率限值可以分别通过基础功率限值和浮动功率限制进行确定,在保证基本服务质量的基础上,提供更好的性能。
即,步骤202可具体包括如下步骤:
根据所述待分配资源基于设定函数确定所述待启动应用程序的基础功率限值;
根据所述待启动应用程序的属性信息、以及所述数据集群和/或所述数据节点的资源分配状态确定所述待启动应用程序的浮动功率限值,所述基础功率限值与浮动功率限值之和作为所述待启动应用程序的功率限值。
具体地,根据待分配资源基于设定函数确定的待启动应用程序的功率限值,其中设定函数的精确设置直接应用影响该待启动应用程序的功率限值,而由于资源的参数信息众多,在基于设定函数确定的待启动应用程序的功率限值时不可能穷尽,因此基于设定函数确定得到的待启动应用程序的功率限值为粗粒度的功率限值。该粗粒度的功率限值仅可保证应用程序基本的功能实现,因此该粗精度的功率限值可称为基础功率限值,也可称为状态功率限值,可表示为P_App_State。P_App_State赋值可使得应用程序可处于基本的功能实现状态,从而保证应用程序具有基本的服务质量(Quality of Service,简称QoS)。为了保证基本的功能的稳定实现,一般情况不更改已确定的P_App_State值。
然而在基本的服务质量的基础上,还需要保证应用程序可以有更好的性能,因此已经配置P_App_State的基础上,还配置浮动功率限值,表示为P_App_Token。根据待启动应用程序的属性信息、以及数据节点和/或数据集群当前的资源分配状态确定并赋予该待启动应用程序的首次P_App_Token值。P_App_Token与P_App_State作用的不同,决定P_App_Token为可浮动功率值,可在预设时间对P_App_Token的赋值进行刷新,刷新可以是根据当前数据节点和/或数据集群的实际的占用资源重新对P_App_Token进行赋值。
进一步地,上述步骤101具体包括:
步骤203、根据所述数据节点内已运行应用程序的功率限值、所述数据节点的实测功率、以及所述数据节点的功率范围值,确定所述数据节点是否满足所述待启动应用程序的功率限值要求;若是,则执行步骤204,若否,则执行步骤205。
具体地,上述数据节点内已运行应用程序的功率限值近似等于该数据节点的功率限值P_Node_Cap。该数据节点的实测功率,为接收到待启动应用程序发起的资源申请时,检测到的该数据节点的实际消耗功率,可以表示为P_Node(t)。然而在实际运行时该数据节点的实测功率P_Node(t)可能会允许超过P_Node_Cap的约束。数据节点的功率范围值指的是该数据节点实际运行时实测功率与该数据节点的功率限值之间功率余量,可以表示为P_Node_Margin。该数据节点是否满足该待启动应用程序的功率限值要求,也就是说,判断P_APP_Cap与P_Node_Margin的大小。若P_APP_Cap小于等于P_Node_Margin则表明该数据节点还有剩余功率可提供给该应用程序。
步骤204、当确定满足功率限值要求时,根据所述待启动应用程序的功率限值基于放大策略为所述待启动应用程序分配资源。
步骤205、当确定不满足功率限值要求时,减少分配给其他已运行应用程序的资源,或将所述待启动应用程序调度至其他数据节点进行资源申请。
若该数据节点满足功率限值要求时,也就是说,当P_APP_Cap≤P_Node_Margin时,根据P_APP_Cap基于放大策略为该待启动应用程序分配资源。
功率在能效管理方面,很大程度指的是时间维度上的平均值。然而,应用软件在不同的时间占用资源的起伏较大,在某一个时间点,实际测量得到的功率值可能超出平均值很多,如果预先分配的功率值等于或是接近平均值,可能会限制波峰时的功能实现。因此,需要按照放大策略进行分配资源。
该放大策略是指实际分配给待启动应用程序的资源应大于该待启动应用程序的功率限值所对应的资源。
举例来说,假设给该待启动应用程序分配的P_APP_Cap为25W,若给该待启动应用程序分配CPU资源、Memory资源等硬件资源的总的消耗功率限额直接按照25W进行分配,某一时刻由于软件资源消耗过大,而使得功率消耗的需求远远超出25W,造成功率余量过大,当软件资源受限的时,会使得该待启动应用程序在运行波峰时的功能实现受限。因此分配给该待启动应用程序的硬件资源应大于P_APP_Cap,即大于25W,比如,40W。虽然给该待启动应用程序分配的P_APP_Cap为25W,数据系统的功率管理软件可以按照放大策略对该待启动应用程序运行时的软件资源及硬件资源进行合理分配,保证该待启动应用程序运行一段时间内的平均功率保证在25W以内,同时还不影响其他应用程序和整个数据节点的正常运行。上述协调分配该待启动应用程序运行时的软件资源及硬件资源,与虚拟内存和实际物理内存的管理类似,在此不再赘述。
若该数据节点不满足功率限值要求时,也就是说,P_APP_Cap≥P_Node_Margin时,通过减少分配给其他已运行应用程序的资源,使得P_Node_Margin变大以满足该待启动应用程序的功率限值。由于每个数据节点软件资源及硬件资源都可能不相同,当该数据节点不满足时,其他的数据节点可能满足要求,因此将该待启动应用程序调度至其他的数据节点申请资源。
在上述技术方案的基础上,在步骤100之前还可进一步包括:
实时获取所述数据节点的功率极值和功率限值,并根据所述数据节点的实测功率计算所述数据节点的功率范围值。
具体地,实时获取的数据节点的功率极值,为该数据节点允许可消耗的最大功率值,可以表示为P_Node_Max。如果该数据节点的实测功率P_Node(t)大于P_Node_Max,可能会引发掉电事故,为避免掉电事故的发生,可通过其他的管理策略,例如可以根据数据集群的资源状态重新对P_Node_Max赋值。因此在数据系统正常运行过程中,实际运行时P_Node(t)可能会允许超过P_Node_Cap,而不会超过P_Node_Max。
P_Node_Cap为该数据节点可消耗功率的限值,P_Node_Max为该数据节点允许可消耗的最大功率值,因此P_Node_Max大于等于P_Node_Cap。
该数据节点的功率范围值P_Node_Margin例如可以是通过P_Node_Margin=P_Node_Cap-P_Node(t)计算获得。
上述方案中数据节点的功率极值和功率限值并非设定不变的,而是可以根据情况动态调整的,例如有数据集群调整数据节点的功率限值,从而每次启动程序申请资源时其功率范围值会发生变化。
本实施例二通过待启动应用程序在单数据节点内资源申请对数据节点和/或应用程序进行功率控制,其功率控制更加精细化,从而更好的平衡数据系统的功能实现及总的功率资源受限的问题。
下面通过具体实例进行说明:
图3为本发明实施例二所提供的数据系统功率控制方法中单数据节点内待启动应用程序新申请资源的方法流程图。如图3所示,具体的实例进行解释说明:
步骤300、实时获取P_Node_Max、P_Node_Cap,P_Node(t),计算得到P_Node_Margin。
步骤301、接收待启动应用程序发起的资源申请。
步骤302、根据待启动应用程序的属性信息预测待分配资源。
步骤303、根据该待分配资源基于设定函数确定P_App_State。
步骤304、根据该待启动应用程序的优先级、以及该数据节点的资源分配状态确定首次的P_App_Token,P_App_Cap等于P_App_State与P_App_Token之和。
上述步骤303和步骤304的具体解释及说明详见上述实施例二中步骤202进一步限定的解释及说明。
步骤305、根据P_Node_Cap、P_Node(t)、P_Node_Margin,确定该数据节点是否满足该待启动应用程序的功率限值要求。
具体来说,确定该数据节点是否满足该待启动应用程序的功率限值要求,就是判断P_Node_Margin是否大于P_App_Cap。
若是,即该数据节点满足该待启动应用程序的功率限值要求,则执行步骤306。
若否,也就是说该数据节点不满足该待启动应用程序的功率限值要求,则执行步骤307或步骤308。
步骤306、根据P_App_Cap基于放大策略为该待启动应用程序分配资源。
步骤307、减少分配给其他应用程序的资源。
具体地,也就是通过其他的应用程序腾出部分资源以使该数据节点满足该待启动应用程序的功率限值要求。
步骤308、调度该待启动应用程序至其他数据节点进行资源申请。
当腾出该数据节点中的其余应用程序的资源可能导致其余某个应用程序的运行连基本的功能都无法实现,那么则不可以腾出该应用的资源,需要调度该待启动应用程序至其他数据节点进行资源申请。
需要说明的是,上述步骤307和步骤308互为可替代的方案,不存在时序关系,也无优劣之分,当该数据节点不满足该待启动应用程序的功率限值要求时,可选的方案策略,并不限于上述步骤307和步骤308的方案,在此不再赘述。
实施例三
图4为本发明实施例三提供的数据系统的功率控制方法的流程图,本实施例是在实施例一的基础上进行优化,提供了单个数据节点基于已运行应用程序的资源进行功率控制的方案,上述步骤100具体包括:
步骤400、实时监测数据节点内已运行应用程序所占用资源,基于设定函数确定所述应用程序的实测功率,作为所述消耗功率。
具体地,数据系统会实时的监控某一数据节点内的各个应用程序的功率消耗状态,而对应用程序的功率消耗状态的监控主要通过监测应用程序的占用资源,并根据设定函数确定得到。
该应用程序的实测功率为该数据节点内某一已运行应用程序的实测功率,根据该数据节点内已运行应用程序所占用资源的分配情况,确定该应用程序的占用资源,从而基于设定函数确定该应用程序的实测功率,该应用程序的实测功率可表示为P_App(t)。
举例来说,F(n)为该设定函数,具有特定的函数参数,输入参数n包括该应用程序占用资源参数,该应用程序占用资源参数包括CPU资源、memory资源、IO资源、Storage资源等。该特定的函数参数例如可以是通过预先的系统自学习得到的经验参数值。
该数据节点内已运行的应用程序的实测功率之和,理论上应该等于该数据节点的实测功率,但是实际上存在一定的偏差。该数据节点的实测功率可以是通过类似设备实际功率的检测方法得到。通过对该数据节点内已运行的应用程序的实测功率进行加权处理,累加之后与P_Node(t)进行比较,得到实际的误差反馈,进而可对F(n)的函数参数进行适应的调整,以使得后续通过该设定函数得到的该应用程序的实测功率更加精确,从而更好的进行功率资源的协调及分配,保证数据系统功率管理的精细化。
进一步地,上述步骤101具体包括:
步骤401、根据已运行应用程序的实测功率P_App(t),判断所述已运行应用程序的实测功率是否大于功率限值。
若是,则执行步骤402,否则,表示应用程序占用的资源没有超出分配值,则执行步骤406,继续执行该应用程序。
具体地,数据系统通过实时监测得到已运行应用程序的实测功率P_App(t),并比较P_App(t)与该应用程序分配的P_App_Cap。若P_App(t)≤P_App_Cap则该已运行应用程序继续运行。
步骤402、当判断出所述已运行应用程序的实测功率大于功率限值时,判断所述已运行应用程序所在的数据节点的实测功率是否大于数据节点的功率限值。
若是,则执行步骤403-405的任意一个或多个,若否,表明该数据节点的功率还有可用空间,则执行步骤406,继续执行该应用程序。
若P_App(t)>P_App_Cap,也就是说该应用程序的实际消耗功率超过该应用程序被允许的功率范围,需要判断该应用程序所在数据节点的实测功率P_Node(t)与该数据节点的功率限值P_Node_Cap。若P_Node(t)≤P_Node_Cap,则该已运行应用程序继续运行。
步骤403、减少分配给所述已运行应用程序的资源。
步骤404、降低所述已运行应用程序的功率限值。
步骤405、减少分配给其他低优先级已运行应用程序的资源。
若P_Node(t)>P_Node_Cap,也就是说该数据节点可用的功率资源已经被突破,说明该数据节点的资源利用率过高,需要减少分配给该应用程序的资源,或降低该已运行应用程序的功率限值,或者也可以减少分配给其他低优先级已运行应用程序的资源。
需要说明的是,上述步骤403-405互为可替代的方案,不存在时序关系,也无优劣之分,当该数据节点的实测功率不满足该数据节点的功率范围值的要求时,可选的方案策略,并不限于上述步骤403-405的方案,在此不再赘述。
步骤406、该已运行应用程序继续运行。
进一步地,在步骤100之前还可以包括:
步骤400a、实时获取所述数据节点的功率极值、功率限值和所述数据节点的实测功率。
本发明实施例三是在上述实施例一的基础上,进一步,还提供一种数据系统的功率管理方法,通过监控某个数据节点上已运行的应用程序的占用资源从而确定该应用程序的实际消耗功率,在判断该应用程序的实测功率是否满足应用程序的功率限值要求的基础上,进而判断该应用程序所在数据节点的实测功率是否满足该数据节点的功率限值要求,并采取对应的措施,以使得占用资源的分配及功率限值的分配都更加合理化。
实施例四
图5为本发明实施例四所提供的数据系统的功率控制方法的流程图。本发明实施例四是在上述实施例的基础上进一步优化,提供了数据集群中待启动应用程序申请资源时的功率控制方案。
其中,根据数据集群内应用程序所占用资源,基于设定函数确定所述应用程序的消耗功率具体包括:
步骤500、接收待启动应用程序向所述数据集群发起的资源申请;
本实施例中,以数据集群为统一进行功率控制的单位,应用程序向数据集群发起申请,数据集群可根据具体情况在数据节点中进行调度。
步骤501、根据所述待启动应用程序的属性信息预测待分配资源;
步骤502、根据所述待分配资源基于设定函数确定所述待启动应用程序的功率限值,作为所述消耗功率。
上述估算应用程序功率限值的操作与实施例二中类似,此处不再赘述。
在上述方案的基础上,根据所述应用程序的消耗功率,基于设定策略对所述应用程序进行功率控制可具体包括:
步骤503、根据所述数据集群内各数据节点的实测功率和功率限值,以及所述待启动应用程序的功率限值,确定至少一个备选数据节点,并针对各备选数据节点逐一执行如下节点内匹配操作。
具体地,根据实时监测得到的每个节点的P_Node(t)、P_Node_Cap,以及待启动应用程序的P_App_Cap,从该数据集群中的多个节点中确定至少一个备选数据节点,并对该待启动应用程序逐一进行资源申请,当在某一备选数据节点满足该待启动应用程序的功率限值要求,后续的备选节点则无需进行匹配操作。
步骤504、根据所述备选数据节点内已运行应用程序的功率限值、所述备选数据节点的实测功率、以及所述备选数据节点的功率范围值,确定所述备选数据节点是否满足所述待启动应用程序的功率限值要求。若是,则执行步骤505,否则执行步骤506。
本实施例中步骤504的具体实现过程及解释说明与上述实施例二中对步骤101的进一步限定中确定数据节点是否满足该待启动应用程序的功率限值要求的实现过程类似,在此,不再赘述。
步骤505、当确定满足功率限值要求时,在所述备选数据节点中,根据所述待启动应用程序的功率限值基于放大策略为所述待启动应用程序分配资源。
本实施例中步骤505的具体实现过程及解释说明与上述实施例二中对步骤101的进一步限定中当确定满足功率限值要求时,根据该待启动应用程序的功率限值基于放大策略为该待启动应用程序分配资源的具体实现过程即解释说明类似,在此,不再赘述。
步骤506、当确定不满足功率限值要求时,选择下一个备选数据节点,重复执行上述节点内匹配操作,即执行步骤504,直至找到符合要求的备选数据节点,若均不符合,则执行步骤507。
具体地,在上述步骤中确定了至少一个备选数据节点,当针对各备选数据节点逐一执行步骤504中备选数据节点和待启动应用程序匹配操作,某个备选数据节点不满足该待启动应用程序的功率限值要求,返回继续执行步骤504的操作,继续后续备选数据节点与该待启动应用程序的匹配操作。
步骤507、当最后一个备选数据节点不满足待启动应用程序的功率限值要求时,减少分配给其他已运行应用程序的资源,或返回执行所述确定至少一个备选数据节点的操作。
具体地,在上述步骤506中的后续备选数据节点与该待启动应用程序的匹配操作中,当最后一个备选数据节点也不满足待启动应用程序的功率限值要求时,也通过减少分配给该最后一个备选数据节点中其他已运行应用程序的资源,或者返回执行上述步骤503的操作,从新再选择备选数据节点,由于经过了一定的时间,所以各数据节点的功率状态有可能发生了变化,可再次选择备选数据节点。
需要说明的是,步骤507中在当备选数据节点均不满足该启动应用程序的功率限值要求时才执行。当该待启动应用程序的启动时间要求比较紧迫时,通过执行步骤507来为该待启动应用程序分配资源,当该待启动应用程序的启动时间要求比较宽松,但对其运行的稳定性及性能优化要求更高时,可通过返回执行步骤503重新确定备选数据节点进而重新匹配,并分配资源。
进一步地,在步骤501之前还可以包括:
步骤500a、根据所述数据集群的功率极值和所述数据集群的物理架构,确定所述数据集群的功率限值。
步骤500b、根据所述数据集群的功率极值和所述数据集群的功率限值,确定所述数据集群中各数据节点的功率极值和功率限值。
具体地,数据集群的功率极值,为该数据集群总的供电功率,表示为P_Cluster_Max。数据集群的物理架构包括该数据集群的供电、散热及设备布局等。数据集群的功率限值,由数据系统的管理软件给出,可以是管理人员通过数据系统管理软件的输入界面根据经验值配置的,也可以是数据系统的管理软件根据管理策略及当时采集到的该数据系统的参数信息动态配置,表示为P_Cluster_Cap。P_Cluster_Cap应该小于P_Cluster_Max,因此在P_Cluster_Cap与P_Cluster_Max之间的差值称为该数据集群的功率余量,表示为P_Cluster_Margin。由于数据系统总的供电功率是有限的,因此P_Cluster_Max一般为固定值,P_Cluster_Margin的设定,主要决定与P_Cluster_Cap的设定。P_Cluster_Margin的合理设定,使得数据系统的运行有一个安全的空间。因此可在数据系统的安全运行的功率范围内,设置不同的告警级别,而不同的告警级别对应不同的措施,即针对不同的P_Cluster_Cap与P_Cluster_Max设置不同的告警级别,例如可以是,P_Cluster_Cap越接近P_Cluster_Max其对应的告警级别越高,P_Cluster_Cap越远离P_Cluster_Max其对应的告警级别越低。
假设该数据集群中有N个数据节点,该N个数据节点的P_Node_Max之和小于等于P_Cluster_Max,该N个数据节点的P_Node_Cap之和小于等于P_Cluster_Cap。因此可根据P_Cluster_Max确定该数据节点的P_Node_Max,根据P_Cluster_Cap确定该数据节点的P_Node_Cap。
本发明实施例四是在实施例二的基础上,进一步还提出一种数据系统的功率控制方法,当待启动应用向数据集群和/或数据节点发起资源申请时,首先从该数据集群的多个数据节点中确定至少一个备选数据节点,并针对该备选数据节点逐一进行功率限值要求的匹配,若某一备选数据节点匹配成功,则在该则在备选数据节点分配资源。
本实施例四提供的数据系统的功率控制方法在上述实施例二中待启动应用程序的资源申请时,在考虑单数据节点的功率限值要求的基础上,还需要考虑该数据集群中其他数据节点的功率限值要求,从而在该数据集群中的选出的多个备选数据节点中匹配出一个符合待启动应用程序的功率限值要求的数据节点,可避免在单一数据节点不符合待启动应用程序的功率限值要求,且该单一数据节点内其他应用程序的占用资源已经是维持基本功能实现的基础,则无法通过减少该单一数据节点其他应用程序的占用资源,为该待启动应用程序腾出资源。本实施例六的提供的数据系统的功率控制方法中功率管理的考虑因素更多,使得功率管理更加精细化。
在上述实施例中,根据所述待分配资源基于设定函数确定所述待启动应用程序的功率限值也可以具体包括:
根据所述待分配资源基于设定函数确定所述待启动应用程序的基础功率限值;
根据所述待启动应用程序的属性信息、以及所述数据集群和/或所述数据节点的资源分配状态确定所述待启动应用程序的浮动功率限值,所述基础功率限值与浮动功率限值之和作为所述待启动应用程序的功率限值。
上述实现方案与实施例二中所述类似,不再赘述。
下面通过具体实例进行说明:
图6为本发明实施例四所提供的数据系统功率控制方法中数据集群内待启动应用程序新申请资源的方法流程图。如图6所示,具体的实例进行解释说明:
步骤600、根据P_Cluster_Max,参考数据系统的物理架构,确定P_Cluster_Cap。
具体地,步骤600的具体实现过程及解释说明与上述实施例中进一步的步骤502之前的具体实现过程和解释说明类似,在此不再赘述。
步骤601、根据P_Cluster_Max、P_Cluster_Cap,确定所述数据集群中各数据节点的P_Node_Max和P_Node_Cap。
具体地,步骤600的具体实现过程及解释说明与上述实施例中步骤503的具体实现过程和解释说明类似,在此不再赘述。
步骤602、实时获取该数据集群内各数据节点的P_Node(t)、P_Cluster(t)。
具体地,该数据集群内各数据节点的P_Node(t)、P_Cluster(t)的获取可以是通过类似设备实际功率的检测方法获得,例如可以是通过在不同的数据节点安置电流及电压传感器检测数据节点的电流及电压,从而可通过功率计算公式计算获得。
步骤603、接收待启动应用程序发起的资源申请。
步骤604、根据该待启动应用程序的优先级、以及该数据集群的资源分配状态确定P_App_State,并根据该待启动应用程的优先级、类型等属性信息,以及该数据集群的资源状态,确定该待启动应用程序的P_App_Token,P_App_State和P_App_Token之和作为P_App_Cape。
步骤605、根据该数据集群内各数据节点的P_Node(t)和P_Node_Cap,以及P_App_Cap,确定至少一个备选数据节点。
具体地,步骤605的具体实现过程及解释说明与上述实施例中的步骤500的具体实现过程及解释说明类似。
步骤606、备选数据节点是否满足该待启动应用程序的功率限值要求。
具体地,对步骤605中确定的至少一个备选数据节点依次进行功率限值匹配。
首先对第一各备选数据节点进行匹配,若是,则继续执行步骤607;
若否,则返回执行步骤606,进行下一个备选数据节点的匹配;
若是,则继续执行步骤607;
若否,则返回执行步骤606,直至最后一个备选节点的匹配;
当最后一个备选数据节点还不满足该待启动应用程序的功率限值要求时,执行步骤608,可通过减少该最后一个备选数据节点中分配给其他应用程序的资源,以使得该最后一个备选数据节点满足待启动应用程序的功率限值要求;或者返回执行步骤605,重新确定备选数据节点,然后重新逐一进行匹配。
步骤607、根据P_App_State、P_App_Token,基于放大策略为该待启动应用程序分配资源。
步骤608、减少分配给其他应用程序的资源。
需要说明的是,步骤608,是在当备选数据节点均不满足该启动应用程序的功率限值要求时才执行。当该待启动应用程序的启动时间要求比较紧迫时,通过执行步骤608来为该待启动应用程序分配资源;当该待启动应用程序的启动时间要求比较宽松,但对其运行的稳定性及性能优化要求更高时,可通过返回执行步骤605重新确定备选数据节点进而重新匹配,并分配资源。
实施例五
本发明实施例五是在实施例一所提供的数据系统功率控制方法的基础上,提供了数据集群对于运行应用程序的功率控制,该方法具体步骤包括:
实时获取所述数据集群中各数据节点的实测功率、功率极值、功率限值和所述数据集群的实测功率。
进一步地,上述步骤101具体包括:
根据已运行应用程序的实测功率,判断所述已运行应用程序的实测功率是否大于功率限值;
当所述已运行应用程序的实测功率大于功率限值,判断所述已运行应用程序所在的数据节点的实测功率是否大于数据节点的功率限值;
若所述已运行应用程序所在的数据节点的实测功率大于数据节点的功率限值,根据所述数据集群的实测功率、功率限值和功率极值,判断所述数据集群的实测功率是否满足所述数据集群的功率限值的要求;
若所述数据集群的实测功率不满足所述数据集群的功率限值的要求,则减少分配给所述已运行应用程序的资源,或降低所述已运行应用程序的功率限值,或减少分配给其他低优先级已运行应用程序的资源。
具体地,数据系统通过实时监测得到已运行应用程序的实测功率P_App(t),并比较P_App(t)与该应用程序分配的P_App_Cap。
若P_App(t)>P_App_Cap,判断P_Node(t)与P_Node_Cap的大小。
若P_Node(t)>P_Node_Cap,然后判断P_Cluster(t)与P_Cluster_Cap的大小。
若P_Cluster(t)>P_Cluster_Cap时,也就是此时数据集群的实测功率不满足所述数据集群的功率限值的要求,则可减少分配给该应用程序所在数据节点上已运行应用程序的资源,或降低已运行应用程序的功率限值,或减少分配给其他低优先级已运行应用程序的资源。
进一步地,还包括:
根据所述数据集群的功率极值和所述数据集群的物理架构,确定所述数据集群的功率限值;
根据所述数据集群的功率极值和所述数据集群的功率限值,确定所述数据集群中各数据节点的功率极值和功率限值。
具体地,确定数据集群的功率限值及确定该数据集群中各数据节点的功率极值和功率限值的具体实现方法和解释说明与实施例六中的确定数据集群的功率限值及确定该数据集群中各数据节点的功率极值和功率限值的具体实现方法和解释说明类似,在此不再赘述。
本发明实施例五在实施例一的基础上,还一种数据系统功率控制方法,通过在实施例一中基于应用程序的功率控制的基础上,在监控整个数据集群内应用程序的运行的过程中,考虑数据集群的功率极限、限值及物理架构等因素,对该数据集群进行功率控制,使得数据系统的功率控制更全面且更精细化。
下面通过具体实例进行说明:
图7为本发明实施例五所提供的数据系统功率控制方法中数据集群内已运行应用程序的功率控制方法流程图。如图7所示,具体的实例进行解释说明:
步骤700、实时获取P_Node_Max、P_Node_Cap、P_Node(t)和P_Cluster(t)。
步骤701、根据已运行应用程序的P_App(t),判断该已运行应用程序的实测功率是否满足该已运行应用程序的功率限值要求。若是,则执行步骤707。若否,则继续执行步骤702。
步骤702、判断该已运行应用程序所在的数据节点的P_Node(t)是否满足P_Node_Cap的要求。若是,则执行步骤707。若否,则执行步骤703,也就是说在已运行应用实测功率不满足该已运行应用程序的功率限值要求,且该已运行应用程序所在的数据节点的实测功率也不满足P_Node_Cap的要求时,还需要判断该数据集群的实测功率是否满足还数据集群的功率限值要求。
步骤703、判断该数据集群的P_Cluster(t)是否满足P_Cluster_Cap的要求。若是,则执行步骤707。若否,则执行步骤704、步骤705或步骤706中任意一个。
步骤704、减少分配给该已运行应用程序的资源。
步骤705、降低所述已运行应用程序的功率限值。
步骤706、减少分配给其他低优先级已运行应用程序的资源。
需要说明的是,上述步骤704、步骤705和步骤706互为可替代的方案,不存在时序关系,也无优劣之分。
步骤707、该已运行应用程序继续运行。
实施例六
本发明实施例六还提供一种数据系统的功率控制方法,在上述各实施例的基础上,进一步地增加调整应用程序浮动功率限值的方案,即判断该已运行应用程序的实测功率是否大于功率限值方法的具体步骤包括:
根据已运行应用程序的实测功率,判断所述已运行应用程序的实测功率是否大于基础功率限值;
若所述已运行应用程序的实测功率大于基础功率限值,则判断所述已运行应用程序的实测功率是否大于功率限值,其中,所述功率限值为基础功率限值与浮动功率限值之和;
若所述已运行应用程序的实测功率不大于基础功率限值,则调整所述已运行应用程序的浮动功率限值。
具体地,首先判断已运行应用程序的P_App(t)是否大于P_App_State,以判断该已运行应用程序是否达到基本的功能实现。
若所述已运行应用程序的实测功率大于基础功率限值,说明该已运行应用程序已经达到基本功能的实现了,还需要判断该判断已运行应用程序的P_App(t)是否大于P_App_Cap,在该已运行应用程序在基本功能实现的基础上,考虑其优化性能实现过程,还需要该已运行应用程序是否已达到该已运行应用程序预先分配的功率限值要求,其中P_App_Cap等于P_App_State和P_App_Token之和;
若所述已运行应用程序的实测功率不大于基础功率限值,则该已运行应用程序继续运行。
判断已运行应用程序的P_App(t)是否大于P_App_Cap,若是,则说明该已运行应用程序已经超出该已运行应用程序预先分配的功率限值要求,调整预先分配的已运行应用程序的P_App_Token值;若否,说明该已运行应用程序处于性能优化实现过程,该已运行应用程序继续运行。
本发明实施例六所提供的数据系统功率控制方法,在通过监控数据系统内运行应用程序时,通过调整已运行应用程序的功率浮动限值,使得已运行应用程序在保证基本的功能实现的基础还进一步优化该运行应用程序的性能。
下面通过具体实例进行说明:
图8为本发明实施例六所提供的数据系统的功率控制方法中单数据节点内部已运行应用程序的功率控制方法的流程图。如图8所示,具体的实例进行解释说明:
步骤800、实时获取P_Node_Max、P_Node_Cap和P_Node(t)。
步骤801、判断已运行应用程序的P_App(t)是否大于P_App_State
步骤802、判断该已运行应用程序的P_App(t)是否大于P_App_Cap,P_App_Cap等于P_App_State与P_App_Token之和。
步骤803、调整该已运行应用程序的P_App_Token。
步骤804、该已运行应用程序继续运行。
上述方案为在单数据节点中基于运行的应用程序的浮动功率限值进行功率控制的技术方案。在数据集群中对浮动功率限值进行控制的方案与此类似,不再赘述。
实施例七
本发明实施例七提供的数据系统的功率控制方法是在上述各实施例的基础上,当判断出已运行应用程序实测功率大于功率限值时,还包括如下步骤:
判断所述已运行应用程序是否属于应用程序集群;
若所述已运行应用程序不属于应用程序集群,则继续执行后续操作;
若所述已运行应用程序属于应用程序集群,根据所述应用程序集群的优先级执行功率控制。
具体地,一个数据集群中有多个数据节点,而每个数据节点上运行不少于1的应用程序,该数据集群上的应用程序中存在有相同功能的应用程序,而相同功能的应用程序一般具有相同的服务质量要求和功率要求,这些具有相同功能的应用程序可能存在于不同的数据节点上,在此,将具有相同功能的应用程序称为应用程序集群。而不同的应用程序集群具有不同的标识。
不同的应用程序集群可以根据应用程序实现功能的重要性或其占用资源的大小分为不同的优先级。在判断已运行应用程序实测功率大于功率限值时,还需要判断该已运行应用程序是否某一个应用程序集群,若是,则按照该应用程序所属的应用程序集群的优先级执行功率控制。
进一步地,该应用程序集群的优先级执行功率控制包括:
若识别出所述应用程序集群的优先级为高优先级,获取所述应用程序集群中各已运行应用程序所在数据节点的功率限值及所述数据集群的功率限值;
根据所述应用程序集群中各已运行应用程序所在数据节点的功率限值级所述数据集群的功率限值,确定所述已运行应用程序所在数据节点的功率限值是否满足在所述数据集群的功率限值内提高的要求;
若所述已运行应用程序所在数据节点的功率限值满足在所述数据集群的功率限值内提高的要求,则提高所述已运行应用程序所在数据节点的功率限值,若所述已运行应用程序所在数据节点的功率限值不满足在所述数据集群的功率限值内提高的要求,减少所述已运行应用程序的功率限值,或减少分配给其他已运行应用程序的资源。
具体地,当该已运行应用程序的集群属于高优先级时,可优先提高该已运行应用程序所在数据节点的功率限值,通过提高该已运行应用程序所在数据节点的功率限值,使得当该已运行应用程序的实测功率超过其功率限值时,该已运行应用程序所在数据节点的实测功率不会超过数据节点的功率限值,以保证该高优先级的应用程序稳定运行。而提高该该已运行应用程序所在数据节点的功率限值的步骤,可以是通过数据系统的功率管理软件重新给该数据节点配置一个更高的功率限值。
当该已运行应用程序的集群属于低优先级时,在保证低优先级应用程序基本功能实现的基础上,可以通过减少其他已运行应用程序的功率限值中的浮动功率限值,或减少分配给该已运行应用程序的资源,为高优先级应用程序集群腾出足够的资源,保证高优先级的应用程序性能的完善和优化。
本发明实施例七所提供的数据系统的功率管理方法,通过在基于应用程序功率控制的基础上,考虑应用程序集群的优先级进行功率资源的调度与控制,使得不同应用程序集群分配的功率限值与其功能实现达到平衡,使得有限的功率资源得到合理的分配及有效利用。
下面通过具体实例进行说明:
图9为本发明实施例七所提供的基于应用程序集群的功率控制方法的流程图。如图9所示,具体的实例进行解释说明:
步骤900、实时获取P_Node_Max、P_Node_Cap和P_Node(t)。
步骤901、判断已运行应用程序的P_App(t)是否满足该已运行应用程序的功率限值要求。
若是,则执行步骤906;若否,则执行步骤902。
步骤902、判断该已运行应用程序是否具有应用程序集群的标识。
应用程序集群的标识可以表示为P_App_Group Tag,当应用程序集群为高优先级时,P_App_Group Tag例如可以为1,当应用程序集群为低优先级时,P_App_Group Tag例如可以为0。判断该已运行应用程序是否具有应用程序集群的标识,若是,则实行步骤903,若否则执行步骤907。
步骤903、判断该已运行应用程序所在的应用程序集群是高优先级还是低优先级。
具体地,可以通过检测P_App_Group Tag的赋值判断该已运行应用程序所在的应用程序集群优先级的高低。当检测到P_App_Group Tag的值为1时,确定该已运行应用程序所在的应用程序集群为高优先级,则执行步骤904;当检测到P_App_Group Tag的值为0时,确定该已运行应用程序所在的应用程序集群为低优先级,则执行步骤905。
步骤904、提高该已运行应用程序所在数据节点的P_Node_Max、P_Node_Cap。
步骤905、减少该已运行应用程序的功率限值或分配资源。
具体地,当应用程序集群为低优先级时,可直接减少该已运行应用程序的功率限值或分配资源,以为高优先应用集群的应用程序腾出资源。
步骤906、该已运行应用程序继续运行。
步骤907、按照普通的应用程序功率控制方法进行控制。
具体地,当该已运行应用程序不具有P_App_Group Tag时,可按照普通的应用程序功率控制方法进行控制,指的是,还需要判断该已运行应用程序所在数据节点的功率限值,或者所在数据集群的功率限值要求等,继而对该已运行应用程序采用对应的管理措施。
实施例八
图10为本发明实施例八所提供的数据系统的功率控制装置的结构示意图。本实施例提供一种功率控制装置,以执行上述实施例提供的数据系统的功率控制方法。该装置通常以硬件和/或软件的方式来实现,集成在数据系统中,具体可以布设在单个的数据节点中,或者也可以布设在数据集群的控制部件中。如图10所示,该装置1000,包括:第一确定模块1001和控制模块1002。
第一确定模块1001,用于根据数据集群和/或数据节点内应用程序所占用资源,基于设定函数确定所述应用程序的消耗功率;
控制模块1002,用于根据所述应用程序的消耗功率,基于设定策略对所述数据集群、数据节点和/或应用程序进行功率控制。
在上述方案的基础上,进一步地,第一确定模块1001,具体用于接收待启动应用程序向所述数据集群和/或数据节点发起的资源申请;
根据所述待启动应用程序的属性信息预测待分配资源;
根据所述待分配资源基于设定函数确定所述待启动应用程序的功率限值,作为所述消耗功率。
进一步地,控制模块1002,具体用于根据所述应用程序的消耗功率,基于设定策略,调整以下至少一项:所述数据集群的功率限值、所述数据节点的功率限值、所述应用程序的功率限值、分配给所述应用程序的资源、分配给所述数据集群和/或数据节点中其他应用程序的资源。
在上述方案的基础上,进一步地,控制模块1002,具体用于根据所述应用程序的消耗功率,以及所述数据集群和/或数据节点的实测功率,基于设定策略对所述数据集群、数据节点和/或应用程序进行功率控制。
进一步地,第一确定模块1001,具体还用于根据所述待分配资源基于设定函数确定所述待启动应用程序的基础功率限值;
根据所述待启动应用程序的属性信息、以及所述数据集群和/或所述数据节点的资源分配状态确定所述待启动应用程序的浮动功率限值,所述基础功率限值与浮动功率限值之和作为所述待启动应用程序的功率限值。
在上述方案的基础上,进一步地,控制模块1002,具体用于根据所述数据节点内已运行应用程序的功率限值、所述数据节点的实测功率、以及所述数据节点的功率范围值,确定所述数据节点是否满足所述待启动应用程序的功率限值要求;
如果确定满足功率限值要求,根据所述待启动应用程序的功率限值基于放大策略为所述待启动应用程序分配资源;
如果确定不满足功率限值要求,减少分配给其他已运行应用程序的资源,或将所述待启动应用程序调度至其他数据节点进行资源申请。
在上述方案的基础上,进一步地,该装置1000还包括:
监测处理模块,用于实时获取所述数据节点的功率极值和功率限值,并根据所述数据节点的实测功率计算所述数据节点的功率范围值。
进一步地,第一确定模块1001,具体用于实时监测数据节点内已运行应用程序所占用资源,基于设定函数确定所述应用程序的实测功率,作为所述消耗功率。
在上述方案的基础上,进一步地,控制模块1002,具体用于根据已运行应用程序的实测功率,判断所述已运行应用程序的实测功率是否大于功率限值;
如果所述已运行应用程序的实测功率大于功率限值,判断所述已运行应用程序所在的数据节点的实测功率是否大于数据节点的功率限值;
如果所述已运行应用程序所在的数据节点的实测功率大于数据节点的功率限值,则减少分配给所述已运行应用程序的资源,或降低所述已运行应用程序的功率限值,或减少分配给其他低优先级已运行应用程序的资源。
在上述方案的基础上,该装置1000,还包括:
第一监测模块,用于实时获取所述数据节点的功率极值、功率限值和所述数据节点的实测功率。
进一步地,控制模块1002,具体用于根据所述数据集群内各数据节点的实测功率和功率限值,以及所述待启动应用程序的功率限值,确定至少一个备选数据节点,并针对各备选数据节点逐一执行如下节点内匹配操作:
根据所述备选数据节点内已运行应用程序的功率限值、所述备选数据节点的实测功率、以及所述备选数据节点的功率范围值,确定所述备选数据节点是否满足所述待启动应用程序的功率限值要求;
如果确定所述备选数据节点满足所述待启动应用程序的功率限值要求,在所述备选数据节点中,根据所述待启动应用程序的功率限值基于放大策略为所述待启动应用程序分配资源;
如果确定所述备选数据节点不满足所述待启动应用程序的功率限值要求,选择下一个备选数据节点;
当最后一个备选数据节点不满足待启动应用程序的功率限值要求时,减少分配给其他已运行应用程序的资源,或返回执行所述确定至少一个备选数据节点的操作。
进一步地,控制模块1002,具体用于根据已运行应用程序的实测功率,判断所述已运行应用程序的实测功率是否大于功率限值;
如果所述已运行应用程序的实测功率大于功率限值,判断所述已运行应用程序所在的数据节点的实测功率是否大于数据节点的功率限值;
若所述已运行应用程序所在的数据节点的实测功率大于数据节点的功率限值,根据所述数据集群的实测功率、功率限值和功率极值,判断所述数据集群的实测功率是否满足所述数据集群的功率限值的要求;
若所述数据集群的实测功率不满足所述数据集群的功率限值的要求,则减少分配给所述已运行应用程序的资源,或降低所述已运行应用程序的功率限值,或减少分配给其他低优先级已运行应用程序的资源。
在上述方案的基础上,该装置1000还包括:
第二监测模块,用于实时获取所述数据集群中各数据节点的实测功率、功率极值、功率限值和所述数据集群的实测功率。
在上述方案的基础上,进一步地,该装置1000还包括:
第二确定模块,用于根据所述数据集群的功率极值和所述数据集群的物理架构,确定所述数据集群的功率限值;
根据所述数据集群的功率极值和所述数据集群的功率限值,确定所述数据集群中各数据节点的功率极值和功率限值。
进一步地,控制模块1002,具体用于,根据已运行应用程序的实测功率,判断所述已运行应用程序的实测功率是否大于基础功率限值;
若所述已运行应用程序的实测功率大于基础功率限值,则判断所述已运行应用程序的实测功率是否大于功率限值,其中,所述功率限值为基础功率限值与浮动功率限值之和;
若所述已运行应用程序的实测功率不大于基础功率限值,则调整所述已运行应用程序的浮动功率限值。
进一步地,若所述已运行应用程序的实测功率大于功率限值,该装置100还包括:
判断模块,用于判断所述已运行应用程序是否属于应用程序集群;
处理模块,用于若所述已运行应用程序不属于应用程序集群,则继续执行后续操作;
若所述已运行应用程序属于应用程序集群,根据所述应用程序集群的优先级执行功率控制。
在上述方案的基础上,上述处理模块,具体用于若识别出所述应用程序集群的优先级为高优先级,获取所述应用程序集群中各已运行应用程序所在数据节点的功率限值及所述数据集群的功率限值;
根据所述应用程序集群中各已运行应用程序所在数据节点的功率限值及所述数据集群的功率限值,确定所述已运行应用程序所在数据节点的功率限值是否满足在所述数据集群的功率限值内提高的要求;
若所述已运行应用程序所在数据节点的功率限值满足在所述数据集群的功率限值内提高的要求,则提高所述已运行应用程序所在数据节点的功率限值,若所述已运行应用程序所在数据节点的功率限值不满足在所述数据集群的功率限值内提高的要求,减少所述已运行应用程序的功率限值,或减少分配给其他已运行应用程序的资源。
本实施例提供的功率管理装置可以执行上述任一实施例提供的数据系统的功率管理方法,其具体模块的实现方法和技术效果与上述实施例类似,在此不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (34)
1.一种数据系统的功率控制方法,其特征在于,包括:
根据数据集群和/或数据节点内应用程序所占用资源,基于设定函数确定所述应用程序的消耗功率;
根据所述应用程序的消耗功率,基于设定策略对所述数据集群、数据节点和/或应用程序进行功率控制。
2.根据权利要求1所述的方法,其特征在于,所述根据数据集群和/或数据节点内应用程序所占用资源,基于设定函数确定所述应用程序的消耗功率包括:
接收待启动应用程序向所述数据集群和/或数据节点发起的资源申请;
根据所述待启动应用程序的属性信息预测待分配资源;
根据所述待分配资源基于设定函数确定所述待启动应用程序的功率限值,作为所述消耗功率。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述应用程序的消耗功率,基于设定策略对所述数据集群、数据节点和/或应用程序进行功率控制包括:
根据所述应用程序的消耗功率,基于设定策略,调整以下至少一项:所述数据集群的功率限值、所述数据节点的功率限值、所述应用程序的功率限值、分配给所述应用程序的资源、分配给所述数据集群和/或数据节点中其他应用程序的资源。
4.根据权利要求3所述的方法,其特征在于,所述根据所述应用程序的消耗功率,基于设定策略对所述数据集群、数据节点和/或应用程序进行功率控制包括:
根据所述应用程序的消耗功率,以及所述数据集群和/或数据节点的实测功率,基于设定策略对所述数据集群、数据节点和/或应用程序进行功率控制。
5.根据权利要求2所述的方法,其特征在于,所述根据所述待分配资源基于设定函数确定所述待启动应用程序的功率限值包括:
根据所述待分配资源基于设定函数确定所述待启动应用程序的基础功率限值;
根据所述待启动应用程序的属性信息、以及所述数据集群和/或所述数据节点的资源分配状态确定所述待启动应用程序的浮动功率限值,所述基础功率限值与浮动功率限值之和作为所述待启动应用程序的功率限值。
6.根据权利要求2或5所述的方法,其特征在于,所述根据所述应用程序的消耗功率,基于设定策略对所述应用程序进行功率控制包括:
根据所述数据节点内已运行应用程序的功率限值、所述数据节点的实测功率、以及所述数据节点的功率范围值,确定所述数据节点是否满足所述待启动应用程序的功率限值要求;
如果确定满足功率限值要求,根据所述待启动应用程序的功率限值基于放大策略为所述待启动应用程序分配资源;
如果确定不满足功率限值要求,减少分配给其他已运行应用程序的资源,或将所述待启动应用程序调度至其他数据节点进行资源申请。
7.根据权利要求2所述的方法,其特征在于,还包括:
实时获取所述数据节点的功率极值和功率限值,并根据所述数据节点的实测功率计算所述数据节点的功率范围值。
8.根据权利要求1所述的方法,其特征在于,所述根据数据集群和/或数据节点内应用程序所占用资源,基于设定函数确定所述应用程序的消耗功率包括:
实时监测数据节点内已运行应用程序所占用资源,基于设定函数确定所述应用程序的实测功率,作为所述消耗功率。
9.根据权利要求8所述的方法,其特征在于,所述根据所述应用程序的消耗功率,基于设定策略对所述应用程序进行功率控制包括:
根据已运行应用程序的实测功率,判断所述已运行应用程序的实测功率是否大于功率限值;
如果所述已运行应用程序的实测功率大于功率限值,判断所述已运行应用程序所在的数据节点的实测功率是否大于数据节点的功率限值;
如果所述已运行应用程序所在的数据节点的实测功率大于数据节点的功率限值,则减少分配给所述已运行应用程序的资源,或降低所述已运行应用程序的功率限值,或减少分配给其他低优先级已运行应用程序的资源。
10.根据权利要求8或9所述的方法,其特征在于,还包括:
实时获取所述数据节点的功率极值、功率限值和所述数据节点的实测功率。
11.根据权利要求2所述的方法,其特征在于,所述根据所述应用程序的消耗功率,基于设定策略对所述应用程序进行功率控制包括:
根据所述数据集群内各数据节点的实测功率和功率限值,以及所述待启动应用程序的功率限值,确定至少一个备选数据节点,并针对各备选数据节点逐一执行如下节点内匹配操作:
根据所述备选数据节点内已运行应用程序的功率限值、所述备选数据节点的实测功率、以及所述备选数据节点的功率范围值,确定所述备选数据节点是否满足所述待启动应用程序的功率限值要求;
如果确定所述备选数据节点满足所述待启动应用程序的功率限值要求,在所述备选数据节点中,根据所述待启动应用程序的功率限值基于放大策略为所述待启动应用程序分配资源;
如果确定所述备选数据节点不满足所述待启动应用程序的功率限值要求,选择下一个备选数据节点;
当最后一个备选数据节点不满足待启动应用程序的功率限值要求时,减少分配给其他已运行应用程序的资源,或返回执行所述确定至少一个备选数据节点的操作。
12.根据权利要求1所述的方法,其特征在于,所述根据所述应用程序的消耗功率,基于设定策略对所述应用程序进行功率控制包括:
根据已运行应用程序的实测功率,判断所述已运行应用程序的实测功率是否大于功率限值;
如果所述已运行应用程序的实测功率大于功率限值,判断所述已运行应用程序所在的数据节点的实测功率是否大于数据节点的功率限值;
若所述已运行应用程序所在的数据节点的实测功率大于数据节点的功率限值,根据所述数据集群的实测功率、功率限值和功率极值,判断所述数据集群的实测功率是否满足所述数据集群的功率限值的要求;
若所述数据集群的实测功率不满足所述数据集群的功率限值的要求,则减少分配给所述已运行应用程序的资源,或降低所述已运行应用程序的功率限值,或减少分配给其他低优先级已运行应用程序的资源。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
实时获取所述数据集群中各数据节点的实测功率、功率极值、功率限值和所述数据集群的实测功率。
14.根据权利要求11-13任一所述的方法,其特征在于,所述方法还包括:
根据所述数据集群的功率极值和所述数据集群的物理架构,确定所述数据集群的功率限值;
根据所述数据集群的功率极值和所述数据集群的功率限值,确定所述数据集群中各数据节点的功率极值和功率限值。
15.根据权利要求9或12所述的方法,其特征在于,所述根据已运行应用程序的实测功率,判断所述已运行应用程序的实测功率是否大于功率限值包括:
根据已运行应用程序的实测功率,判断所述已运行应用程序的实测功率是否大于基础功率限值;
若所述已运行应用程序的实测功率大于基础功率限值,则判断所述已运行应用程序的实测功率是否大于功率限值,其中,所述功率限值为基础功率限值与浮动功率限值之和;
若所述已运行应用程序的实测功率不大于基础功率限值,则调整所述已运行应用程序的浮动功率限值。
16.根据权利要求9或12所述的方法,其特征在于,若所述已运行应用程序的实测功率大于功率限值,所述方法还包括:
判断所述已运行应用程序是否属于应用程序集群;
若所述已运行应用程序不属于应用程序集群,则继续执行后续操作;
若所述已运行应用程序属于应用程序集群,根据所述应用程序集群的优先级执行功率控制。
17.根据权利要求16所述的方法,其特征在于,所述根据所述应用程序集群的优先级执行功率控制包括:
若识别出所述应用程序集群的优先级为高优先级,获取所述应用程序集群中各已运行应用程序所在数据节点的功率限值及所述数据集群的功率限值;
根据所述应用程序集群中各已运行应用程序所在数据节点的功率限值及所述数据集群的功率限值,确定所述已运行应用程序所在数据节点的功率限值是否满足在所述数据集群的功率限值内提高的要求;
若所述已运行应用程序所在数据节点的功率限值满足在所述数据集群的功率限值内提高的要求,则提高所述已运行应用程序所在数据节点的功率限值,若所述已运行应用程序所在数据节点的功率限值不满足在所述数据集群的功率限值内提高的要求,减少所述已运行应用程序的功率限值,或减少分配给其他已运行应用程序的资源。
18.一种功率控制装置,其特征在于,包括:
第一确定模块,用于根据数据集群和/或数据节点内应用程序所占用资源,基于设定函数确定所述应用程序的消耗功率;
控制模块,用于根据所述应用程序的消耗功率,基于设定策略对所述数据集群、数据节点和/或应用程序进行功率控制。
19.根据权利要求18所述的装置,其特征在于,所述第一确定模块,具体用于接收待启动应用程序向所述数据集群和/或数据节点发起的资源申请;
根据所述待启动应用程序的属性信息预测待分配资源;
根据所述待分配资源基于设定函数确定所述待启动应用程序的功率限值,作为所述消耗功率。
20.根据权利要求18或19所述的装置,其特征在于,所述控制模块,具体用于根据所述应用程序的消耗功率,基于设定策略,调整以下至少一项:所述数据集群的功率限值、所述数据节点的功率限值、所述应用程序的功率限值、分配给所述应用程序的资源、分配给所述数据集群和/或数据节点中其他应用程序的资源。
21.根据权利要求20所述的装置,其特征在于,所述控制模块,具体用于根据所述应用程序的消耗功率,以及所述数据集群和/或数据节点的实测功率,基于设定策略对所述数据集群、数据节点和/或应用程序进行功率控制。
22.根据权利要求19所述的装置,其特征在于,所述第一确定模块,具体还用于根据所述待分配资源基于设定函数确定所述待启动应用程序的基础功率限值;
根据所述待启动应用程序的属性信息、以及所述数据集群和/或所述数据节点的资源分配状态确定所述待启动应用程序的浮动功率限值,所述基础功率限值与浮动功率限值之和作为所述待启动应用程序的功率限值。
23.根据权利要求19或22所述的装置,其特征在于,所述控制模块,具体用于根据所述数据节点内已运行应用程序的功率限值、所述数据节点的实测功率、以及所述数据节点的功率范围值,确定所述数据节点是否满足所述待启动应用程序的功率限值要求;
如果确定满足功率限值要求,根据所述待启动应用程序的功率限值基于放大策略为所述待启动应用程序分配资源;
如果确定不满足功率限值要求,减少分配给其他已运行应用程序的资源,或将所述待启动应用程序调度至其他数据节点进行资源申请。
24.根据权利要求19所述的装置,其特征在于,所述装置,还包括:
监测处理模块,用于实时获取所述数据节点的功率极值和功率限值,并根据所述数据节点的实测功率计算所述数据节点的功率范围值。
25.根据权利要求18所述的装置,其特征在于,所述第一确定模块,具体用于实时监测数据节点内已运行应用程序所占用资源,基于设定函数确定所述应用程序的实测功率,作为所述消耗功率。
26.根据权利要求25所述的装置,其特征在于,所述控制模块,具体用于根据已运行应用程序的实测功率,判断所述已运行应用程序的实测功率是否大于功率限值;
如果所述已运行应用程序的实测功率大于功率限值,判断所述已运行应用程序所在的数据节点的实测功率是否大于数据节点的功率限值;
如果所述已运行应用程序所在的数据节点的实测功率大于数据节点的功率限值,则减少分配给所述已运行应用程序的资源,或降低所述已运行应用程序的功率限值,或减少分配给其他低优先级已运行应用程序的资源。
27.根据权利要求25或26所述的装置,其特征在于,所述装置,还包括:
第一监测模块,用于实时获取所述数据节点的功率极值、功率限值和所述数据节点的实测功率。
28.根据权利要求19所述的装置,其特征在于,所述控制模块,具体用于根据所述数据集群内各数据节点的实测功率和功率限值,以及所述待启动应用程序的功率限值,确定至少一个备选数据节点,并针对各备选数据节点逐一执行如下节点内匹配操作:
根据所述备选数据节点内已运行应用程序的功率限值、所述备选数据节点的实测功率、以及所述备选数据节点的功率范围值,确定所述备选数据节点是否满足所述待启动应用程序的功率限值要求;
如果确定所述备选数据节点满足所述待启动应用程序的功率限值要求,在所述备选数据节点中,根据所述待启动应用程序的功率限值基于放大策略为所述待启动应用程序分配资源;
如果确定所述备选数据节点不满足所述待启动应用程序的功率限值要求,选择下一个备选数据节点;
当最后一个备选数据节点不满足待启动应用程序的功率限值要求时,减少分配给其他已运行应用程序的资源,或返回执行所述确定至少一个备选数据节点的操作。
29.根据权利要求18所述的装置,其特征在于,所述控制模块,具体用于根据已运行应用程序的实测功率,判断所述已运行应用程序的实测功率是否大于功率限值;
如果所述已运行应用程序的实测功率大于功率限值,判断所述已运行应用程序所在的数据节点的实测功率是否大于数据节点的功率限值;
若所述已运行应用程序所在的数据节点的实测功率大于数据节点的功率限值,根据所述数据集群的实测功率、功率限值和功率极值,判断所述数据集群的实测功率是否满足所述数据集群的功率限值的要求;
若所述数据集群的实测功率不满足所述数据集群的功率限值的要求,则减少分配给所述已运行应用程序的资源,或降低所述已运行应用程序的功率限值,或减少分配给其他低优先级已运行应用程序的资源。
30.根据权利要求29所述的装置,其特征在于,所述装置还包括:
第二监测模块,用于实时获取所述数据集群中各数据节点的实测功率、功率极值、功率限值和所述数据集群的实测功率。
31.根据权利要求28-30任一所述的装置,其特征在于,所述装置,还包括:
第二确定模块,用于根据所述数据集群的功率极值和所述数据集群的物理架构,确定所述数据集群的功率限值;
根据所述数据集群的功率极值和所述数据集群的功率限值,确定所述数据集群中各数据节点的功率极值和功率限值。
32.根据权利要求26或29所述的装置,其特征在于,所述控制模块,具体用于,根据已运行应用程序的实测功率,判断所述已运行应用程序的实测功率是否大于基础功率限值;
若所述已运行应用程序的实测功率大于基础功率限值,则判断所述已运行应用程序的实测功率是否大于功率限值,其中,所述功率限值为基础功率限值与浮动功率限值之和;
若所述已运行应用程序的实测功率不大于基础功率限值,则调整所述已运行应用程序的浮动功率限值。
33.根据权利要求26或29所述的装置,其特征在于,若所述已运行应用程序的实测功率大于功率限值,所述装置还包括:
判断模块,用于判断所述已运行应用程序是否属于应用程序集群;
处理模块,用于若所述已运行应用程序不属于应用程序集群,则继续执行后续操作;
若所述已运行应用程序属于应用程序集群,根据所述应用程序集群的优先级执行功率控制。
34.根据权利要求32所述的装置,其特征在于,所述处理模块,具体用于若识别出所述应用程序集群的优先级为高优先级,获取所述应用程序集群中各已运行应用程序所在数据节点的功率限值及所述数据集群的功率限值;
根据所述应用程序集群中各已运行应用程序所在数据节点的功率限值及所述数据集群的功率限值,确定所述已运行应用程序所在数据节点的功率限值是否满足在所述数据集群的功率限值内提高的要求;
若所述已运行应用程序所在数据节点的功率限值满足在所述数据集群的功率限值内提高的要求,则提高所述已运行应用程序所在数据节点的功率限值,若所述已运行应用程序所在数据节点的功率限值不满足在所述数据集群的功率限值内提高的要求,减少所述已运行应用程序的功率限值,或减少分配给其他已运行应用程序的资源。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310256590.XA CN103389791B (zh) | 2013-06-25 | 2013-06-25 | 数据系统的功率控制方法及装置 |
PCT/CN2014/072208 WO2014206097A1 (zh) | 2013-06-25 | 2014-02-19 | 数据系统的功率控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310256590.XA CN103389791B (zh) | 2013-06-25 | 2013-06-25 | 数据系统的功率控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103389791A true CN103389791A (zh) | 2013-11-13 |
CN103389791B CN103389791B (zh) | 2016-10-05 |
Family
ID=49534086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310256590.XA Active CN103389791B (zh) | 2013-06-25 | 2013-06-25 | 数据系统的功率控制方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103389791B (zh) |
WO (1) | WO2014206097A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014206097A1 (zh) * | 2013-06-25 | 2014-12-31 | 华为技术有限公司 | 数据系统的功率控制方法及装置 |
WO2017016429A1 (zh) * | 2015-07-30 | 2017-02-02 | 阿里巴巴集团控股有限公司 | 一种启动资源的确定方法和装置 |
CN107003929A (zh) * | 2014-12-12 | 2017-08-01 | 高通股份有限公司 | 用于异构核设备上的机器学习的应用特征化 |
CN108469895A (zh) * | 2018-03-29 | 2018-08-31 | 联想(北京)有限公司 | 数据处理方法及数据处理系统 |
WO2020258569A1 (zh) * | 2019-06-27 | 2020-12-30 | 苏州浪潮智能科技有限公司 | 一种整机箱功耗的分配方法、系统、装置及可读存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3313936B1 (en) | 2015-06-24 | 2023-02-15 | Dow Global Technologies LLC | Filled polymer-based compositions with low viscosity, good mechanical properties and adhesion |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1779600A (zh) * | 2004-11-23 | 2006-05-31 | 国际商业机器公司 | 在计算机中心动态重新安排应用及其它服务器资源的方法 |
CN102063327A (zh) * | 2010-12-15 | 2011-05-18 | 中国科学院深圳先进技术研究院 | 具有功耗意识的数据中心应用服务调度方法 |
CN102076064A (zh) * | 2009-11-19 | 2011-05-25 | 韩国电子通信研究院 | 用于簇系统的功率控制装置和方法 |
US20120233475A1 (en) * | 2011-03-09 | 2012-09-13 | Nec Corporation | Cluster system |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103389791B (zh) * | 2013-06-25 | 2016-10-05 | 华为技术有限公司 | 数据系统的功率控制方法及装置 |
-
2013
- 2013-06-25 CN CN201310256590.XA patent/CN103389791B/zh active Active
-
2014
- 2014-02-19 WO PCT/CN2014/072208 patent/WO2014206097A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1779600A (zh) * | 2004-11-23 | 2006-05-31 | 国际商业机器公司 | 在计算机中心动态重新安排应用及其它服务器资源的方法 |
CN102076064A (zh) * | 2009-11-19 | 2011-05-25 | 韩国电子通信研究院 | 用于簇系统的功率控制装置和方法 |
CN102063327A (zh) * | 2010-12-15 | 2011-05-18 | 中国科学院深圳先进技术研究院 | 具有功耗意识的数据中心应用服务调度方法 |
US20120233475A1 (en) * | 2011-03-09 | 2012-09-13 | Nec Corporation | Cluster system |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014206097A1 (zh) * | 2013-06-25 | 2014-12-31 | 华为技术有限公司 | 数据系统的功率控制方法及装置 |
CN107003929A (zh) * | 2014-12-12 | 2017-08-01 | 高通股份有限公司 | 用于异构核设备上的机器学习的应用特征化 |
WO2017016429A1 (zh) * | 2015-07-30 | 2017-02-02 | 阿里巴巴集团控股有限公司 | 一种启动资源的确定方法和装置 |
CN106383739A (zh) * | 2015-07-30 | 2017-02-08 | 阿里巴巴集团控股有限公司 | 一种启动资源的确定方法和装置 |
CN108469895A (zh) * | 2018-03-29 | 2018-08-31 | 联想(北京)有限公司 | 数据处理方法及数据处理系统 |
WO2020258569A1 (zh) * | 2019-06-27 | 2020-12-30 | 苏州浪潮智能科技有限公司 | 一种整机箱功耗的分配方法、系统、装置及可读存储介质 |
US11586264B2 (en) | 2019-06-27 | 2023-02-21 | Inspur Suzhou Intelligent Technology Co., Ltd | Allocation method, system and device for power consumption of complete machine box, and readable storage medium |
Also Published As
Publication number | Publication date |
---|---|
WO2014206097A1 (zh) | 2014-12-31 |
CN103389791B (zh) | 2016-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9939834B2 (en) | Control of power consumption | |
CN103389791A (zh) | 数据系统的功率控制方法及装置 | |
US10128684B2 (en) | Energy control via power requirement analysis and power source enablement | |
US7904287B2 (en) | Method and system for real-time prediction of power usage for a change to another performance state | |
US8458500B2 (en) | Server allocation to workload based on energy profiles | |
US8701121B2 (en) | Method and system for reactive scheduling | |
US11216059B2 (en) | Dynamic tiering of datacenter power for workloads | |
WO2019154739A1 (en) | Method and system for controlling power consumption of a data center based on load allocation and temperature measurements | |
Bates et al. | Electrical grid and supercomputing centers: An investigative analysis of emerging opportunities and challenges | |
US20110307110A1 (en) | Management of a virtual power infrastructure | |
US20110107341A1 (en) | Job scheduling with optimization of power consumption | |
JP2009176304A (ja) | 電力制御システム | |
JP2012523593A (ja) | ストレージシステム、ストレージ装置の制御方法 | |
EP3238162B1 (en) | Forecast for demand of energy | |
CN102004671A (zh) | 一种云计算环境下数据中心基于统计模型的资源管理方法 | |
CN103150003A (zh) | 信息处理系统、该信息处理系统的节电控制方法和装置 | |
US20140094984A1 (en) | Method and system for allocating energy | |
CN104049600A (zh) | 用与自动化系统相关的能量信息更新置信值的系统及方法 | |
Nesmachnow et al. | Holistic multiobjective planning of datacenters powered by renewable energy | |
CN104049595A (zh) | 用工业自动化系统的组织模型确定能量信息的系统及方法 | |
JP6815928B2 (ja) | 電力管理装置及びプログラム | |
Zhang et al. | GreenDRL: managing green datacenters using deep reinforcement learning | |
CN106708624B (zh) | 一种多工作域计算资源的自适应调整方法 | |
CN114741180A (zh) | 机架管理系统、方法及控制器 | |
CN116627237A (zh) | 一种基于芯粒Chiplet的电源管理芯片架构系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |