掌桥专利:专业的专利平台
掌桥专利
首页

服务器能耗模型构建方法、服务器能耗模型及预测方法

文献发布时间:2023-06-19 19:28:50


服务器能耗模型构建方法、服务器能耗模型及预测方法

技术领域

本发明属于服务器能耗技术领域,具体涉及一种服务器能耗预测方法、服务器能耗模型和服务器能耗预测方法。

背景技术

根据相关统计表明:(1)中国2018年数据中心所消耗的电量占全社会总用电量的2%,约为1500kWh,而这一比例将在2025年达到4.05%,与2018年相比增加了一倍;(2)在数据中心能耗如此大的情况下利用率却不是很理想,数据中心服务器的平均利用率低于50%;(3)数据中心有超过50%的能耗被服务器所消耗,而且其余部分的功耗也与服务器的状态息息相关。根据上述研究可得,想要优化数据中心的能耗,优化服务器的能耗是关键。

与此同时,由于如今数据量爆炸增长,服务器的数量也随之增长,服务器的能耗问题已经成为一个不可忽视的问题,所以在优化服务器能耗问题过程中,建立高效、准确的优化算法能够预测和优化服务器的能耗,对于节约资源和提高资源利用率都有着重要的意义。

目前,主要利用数学公式和单个神经网络来对服务能耗进行建模,但利用数学公式这种方法在服务器更换组件或者改变结构时需要重新建模;而利用单个神经网络这种方法无法适应服务器多种运行方式,从而导致无法构建出能够准确对服务器能耗进行预测的模型。

发明内容

本发明的目的是提供一种服务器能耗模型构建方法、服务器能耗模型及预测方法,以解决现有技术中的缺点。

为实现上述发明目的,本发明所采用的技术方案是:

第一方面,本发明实施例提供一种服务器能耗模型构建方法,包括:

获取历史某一时段内的服务器运行参数;

利用PCA算法,计算所述历史某一时段内的服务器运行参数中每个运行参数的权重值,并将权重值小于预设阈值的服务器运行参数舍弃,以得到权重值大于预设阈值的服务器运行参数;

将所述权重值大于所述预设阈值的服务器运行参数输入服务器运行状态分类模型,得到服务器运行状态的类型;所述服务器运行状态的类型为CPU密集型、Memory密集型、IO密集型和混合型中的一种;

根据所述服务器运行状态的类型,选择XGBoost模型或ConvLSTM网络模型进行训练,并在训练完成后,获得服务器能耗预测模型。

可选地,所述服务运行状态分类模型通过以下方式得到:

获取历史某一时段内的服务器运行参数;

利用PCA算法,计算所述历史某一时段内的服务器运行参数中每个运行参数的权重值,并将权重值小于预设阈值的服务器运行参数舍弃,以得到权重值大于预设阈值的服务器运行参数;

利用所述权重值大于所述预设阈值的服务器运行参数,对预先构建的TCN网络进行训练,并在训练完成后,获得所述服务器运行状态分类模型

可选地,所述根据所述服务器运行状态的类型,选择XGBoost模型或ConvLSTM网络模型进行训练,并在训练完成后,获得服务器能耗预测模型,包括:

若所述服务器运行状态的类型为CPU密集型或Memory密集型,则利用所述权重值大于所述预设阈值的服务器运行参数,对预先构建的XGBoost模型进行训练,并在训练完成后,获得第一服务器能耗模型。

可选地,所述根据所述服务器运行状态的类型,选择XGBoost模型或ConvLSTM网络模型进行训练,并在训练完成后,获得服务器能耗预测模型,包括:

若所述服务器运行状态的类型为IO密集型或混合型时,则利用所述权重值大于所述预设阈值的服务器运行参数,对预先构建的ConvLSTM网络模型进行训练,并在训练完成后,获得第二服务器能耗模型。

第二方面,本发明实施例还提供一种服务器能耗模型,包括:所述服务器能耗模型采用上述的服务器能耗模型构建方法构建得到。

第三方面,本发明实施例还提供一种服务器能耗预测方法,基于上述的服务能耗模型,包括:

获取服务器运行参数;

将所述服务器运行参数输入所述服务器能耗预测模型,得到所述服务器能耗预测模型输出的服务器能耗的预测值。

可选地,所述服务器运行参数通过服务器监控系统监测得到;所述服务器监控系统设置于服务器上。

在本发明实施例中,通过获取历史某一时段内的服务器的运行参数;利用PCA算法,计算历史某一时段内的服务器运行参数中每个运行参数的权重值,并将权重值小于预设阈值的服务器运行参数舍弃,以得到权重值大于预设阈值的服务器运行参数;将权重值大于预设阈值的服务器运行参数输入服务器运行状态分类模型,得到服务器运行状态的类型;服务器运行状态的类型为CPU密集型、Memory密集型、IO密集型和混合型中的一种;根据服务器运行状态的类型,选择XGBoost模型或ConvLSTM网络模型进行训练,并在训练完成后,获得服务器能耗预测模型,实现了可以根据服务器的不同运行状态选择适合相应特点的网络进行训练,建立了能够准确预测服务器能耗的模型。

附图说明

图1为本发明提供的服务器能耗模型构建方法的流程示意图。

图2为本发明提供的服务网能耗预测方法的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图1-2,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。若未特别指明,实施例中所用的技术手段为本领域技术人员所熟知的常规手段。

需要说明的是,在不冲突的情况下,本发明中的实施方式及实施方式中的特征可以相互组合。

在本申请实施例的描述中,技术术语“第一”、“第二”等仅用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量、特定顺序或主次关系。在本申请实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。

参照图1,图1为本发明提供的服务器能耗模型构建方法的流程示意图,该方法包括以下步骤:

S100,获取历史某一时段内的服务器运行参数;

服务器运行参数是指服务器在运行时配置的一系列参数,包括但不限于CPU利用率、内存利用率、网络带宽利用率、磁盘利用率等等,本发明实施例对此不作具体限定,可根据实际应用需求进行灵活选择。

以下对服务器运行参数的进行举例说明:

CPU利用率是指运行的程序占用的CPU资源,表示机器在某个时间点的运行程序的情况,利用率越高,说明机器在这个时间上运行了很多程序,反之较少。利用率的高低与机器的CPU强弱有直接关系。CPU利用率的计算方法:通过计算系统CPU的等待时间以及包括等待时间内的总时间即可得到CPU的闲置率,进一步可得到CPU利用率。

内存利用率是指程序或进程所开销的内存。占内存大的程序不一定会占用很多的CPU资源,而占CPU大的程序也不一定开销太大的内存。某一程序的CPU占用率过高会影响其他程序的运行。而某一程序占用内存过大,会影响机器的整体性能。内存利用率的计算方法:内存相关的指数有MemTotal、MemFree、Buffers、Caches等等,先获取总的内存,再获取空闲内存数,即可计算出内存的利用率。

网络宽带利用率是指带宽每秒收到、发送信息的效率。网络宽带利用率的计算方法:统计每个时刻网络数据传输接收Receive和发送Tramsmit的bytes数的变化,即可获得网口传输速率,再除以网口的带宽就得到网络带宽利用率。

磁盘利用率是指硬盘的工作负荷。磁盘利用率的计算方法:统计每个单位时间磁盘进行读和写操作的数据总量,再获取单位时间磁盘的最大吞吐量,通过这两个参数即可得到磁盘的利用率,在本实施例中单位时间可例如是1秒。

具体的,服务器运行参数参照下列表格所示:

S200,利用PCA算法,计算历史某一时段内的服务器运行参数中每个运行参数的权重值,并将权重值小于预设阈值的服务器运行参数舍弃,以得到权重值大于预设阈值的服务器运行参数;

PCA(principal components analysis,主成分分析)算法是利用降维的思想,把多指标转化为少数几个综合指标。

可理解的是,预设阈值可根据实际应用需求进行设置,本实施例对此不做具体限定,可根据实际应用需求进行灵活设置。

S300,将权重值大于预设阈值的服务器运行参数输入服务器运行状态分类模型,得到服务器运行状态的类型;服务器运行状态的类型为CPU密集型、Memory密集型、IO密集型和混合型中的一种;

服务器运行状态分类模型是指利用权重值大于预设阈值的服务器运行参数对TCN模型进行训练后得到的模型,训练过程在后续进行详细说明。

具体地,通过输入权重值大于预设阈值的服务器运行参数至服务器运行状态分类模型进行识别,可以得到服务器运行状态的类型,而服务器运行状态的类型为CPU密集型、Memory密集型、IO密集型和混合型中的一种。

可理解的是,混合型是指服务器运行状态的类型的集合体,例如:混合型可以是CPU密集型和Memory密集型,还可以是CPU密集型和IO密集型,还可以是Memory密集型和IO密集型,还可以是CPU密集型、Memory密集型和IO密集型。

S400,根据服务器运行状态的类型,选择XGBoost模型或ConvLSTM网络模型进行训练,并在训练完成后,获得服务器能耗预测模型。

需要说明的是,由于不同的服务器运行状态的分类结果具有不同的能耗特点,因此需要选择与之合适的网络模型来进行训练,从而来得到准确的服务器能耗模型。

在本实施例中,获取历史某一时段内的服务器的运行参数;利用PCA算法,计算历史某一时段内的服务器运行参数中每个运行参数的权重值,并将权重值小于预设阈值的服务器运行参数舍弃,以得到权重值大于预设阈值的服务器运行参数;将权重值大于预设阈值的服务器运行参数输入服务器运行状态分类模型,得到服务器运行状态的类型;服务器运行状态的类型为CPU密集型、Memory密集型、IO密集型和混合型中的一种;根据服务器运行状态的类型,选择XGBoost模型或ConvLSTM网络模型进行训练,并在训练完成后,获得服务器能耗预测模型,实现了可以根据服务器的不同运行状态选择适合相应特点的网络进行训练,建立了能够准确预测服务器能耗的模型。

可选地,服务运行状态分类模型通过以下方式得到:

第一步:获取历史某一时段内的服务器运行参数;

第二步:利用PCA算法,计算所述历史某一时段内的服务器运行参数中每个运行参数的权重值,并将权重值小于预设阈值的服务器运行参数舍弃,以得到权重值大于预设阈值的服务器运行参数;

第三步:利用所述权重值大于所述预设阈值的服务器运行参数,对预先构建的TCN网络进行训练,并在训练完成后,获得所述服务器运行状态分类模型。

TCN(Temporal Convolutional Network,时序卷积网络)是指一种融合了时域上的建模能力,卷积的低参数量下的特征提取能力的网络模型。

在本实施例中,通过利用PCA算法,计算所述历史某一时段内的服务器运行参数中每个运行参数的权重值,并将权重值小于预设阈值的服务器运行参数舍弃,以得到权重值大于预设阈值的服务器运行参数,然后利用权重值大于预设阈值的服务器运行参数对预先构建的TCN网络进行训练,得到了服务器运行状态分类模型,使得能够在构建服务器能耗模型时能够预测出服务器的运行状态,进而构建出准确的服务器能耗模型。

可选地,上述步骤S400具体还可以包括以下步骤:

若服务器运行状态的类型为CPU密集型或Memory密集型,则利用权重值大于预设阈值的服务器运行参数,对预先构建的XGBoost模型进行训练,并在训练完成后,获得第一服务器能耗模型。

XGBoost(EXtreme Gradient Boosting,分布式梯度提升库)是一种基于决策树的集成机器算法,使用梯度上升框架,适用于分类和回归问题。

在本实施例中,由于XGBoost模型与处于CPU密集型或Memory密集型的服务器的运行特点相符合,所以当服务器运行状态为CPU密集型或Memory密集型时,通过将权重值大于预设阈值的服务器运行参数输入XGBoost模型进行训练,可以训练出能够准确预测服务器能耗的服务器能耗模型。

可选地,上述步骤S400具体还可以包括以下步骤:

若服务器运行状态的类型为CPU密集型或Memory密集型,则利用权重值大于预设阈值的服务器运行参数,对预先构建的XGBoost模型进行训练,并在训练完成后,获得第一服务器能耗模型。

在本实施例中,由于ConvLSTM网络模型与处于IO密集型或混合型的服务器的运行特点相符合,所以当服务器运行状态为IO密集型或混合型时,通过将权重值大于预设阈值的服务器运行参数输入ConvLSTM网络模型进行训练,可以训练出能够准确预测服务器能耗的服务器能耗模型。

基于同样的发明构思,本发明实施例还提供一种服务器能耗模型,其特征在于,包括:服务器能耗模型采用上述的服务器能耗模型构建方法构建得到。

基于同样的发明构思,本发明实施例还提供一种服务器能耗预测方法,基于上述的服务能耗模型,包括:

参照图2,图2为本发明提供的服务网能耗预测方法的流程示意图。

S500,获取服务器运行参数;

服务器运行参数是指服务器在运行时配置的一系列参数,包括但不限于CPU利用率、内存利用率、网络带宽利用率、磁盘利用率等等,本发明实施例对此不作具体限定,可根据实际应用需求进行灵活选择。

以下对服务器运行参数的进行举例说明:

CPU利用率是指运行的程序占用的CPU资源,表示机器在某个时间点的运行程序的情况,利用率越高,说明机器在这个时间上运行了很多程序,反之较少。利用率的高低与机器的CPU强弱有直接关系。CPU利用率的计算方法:通过计算系统CPU的等待时间以及包括等待时间内的总时间即可得到CPU的闲置率,进一步可得到CPU利用率。

内存利用率是指程序或进程所开销的内存。占内存大的程序不一定会占用很多的CPU资源,而占CPU大的程序也不一定开销太大的内存。某一程序的CPU占用率过高会影响其他程序的运行。而某一程序占用内存过大,会影响机器的整体性能。内存利用率的计算方法:内存相关的指数有MemTotal、MemFree、Buffers、Caches等等,先获取总的内存,再获取空闲内存数,即可计算出内存的利用率。

网络宽带利用率是指带宽每秒收到、发送信息的效率。网络宽带利用率的计算方法:统计每个时刻网络数据传输接收Receive和发送Tramsmit的bytes数的变化,即可获得网口传输速率,再除以网口的带宽就得到网络带宽利用率。

磁盘利用率是指硬盘的工作负荷。磁盘利用率的计算方法:统计每个单位时间磁盘进行读和写操作的数据总量,再获取单位时间磁盘的最大吞吐量,通过这两个参数即可得到磁盘的利用率,在本实施例中单位时间可例如是1秒。

S600,将服务器运行参数输入服务器能耗预测模型,得到服务器能耗预测模型输出的服务器能耗的预测值。

服务器运行状态分类模型是指利用历史CPU利用率和内存利用率对TCN模型进行训练后得到的模型。

在本实施例中,通过前述的服务器能耗构建方法构建出服务器能耗预测模型,在对实时获取的服务器运行参数进行预测,可以得到准确的服务器能耗的预测值。

可选地,服务器运行参数通过服务器监控系统监测得到;服务器监控系统设置于服务器上。

服务器监控系统包括但不zabbix、Nagios、Performance Co-Pilot、Anturis、SeaLion、Icinga、Munin、Monit和ganglia。

以下对服务运行监控系统进行举例说明:

Zabbix是指是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,能监视各种网络参数,可以运行在Linux,Solaris,HP-UX,AIX,FreeBSD,Open BSD,OSX等平台上。

Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的状态,交换机路由器等网络设备,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。

Performance Co-Pilot,简称PCP,是一个系统性能分析框架。它收集并分析来自多个主机的各种性能指标。可以通过它观察指标走向的趋势,以帮助您快速识别异常所在点。它提供API,可依据此来开发自定义的监控和报告解决方案。

Anturis是一个基于云的SaaS平台,可监控windows和linux服务器,网站和IT基础架构。通过全面的监控解决方案列表,让管理员快速了解整体主机或者服务器瓶颈与风险。

在本实施例中,通过在服务器上设置服务器监控系统,使得可以分布式监控到服务器的不同运行参数,而且可以将获取的运行参数进行绘图,便于直观查看;另外,获取的运行参数还是数值型的数据,方便计算。

需要指出的是,在上述的实施例中,服务器运行状态的类型包括CPU密集型、IO密集型和Memory密集型这三种类型。但是,本领域技术人员可以根据实际需要增加或减少服务器的类型或可动态扩展服务器运行的类型。例如,在另外的实施例中,服务器运行状态的类型包括五种,即CPU密集型、IO密集型、Memory密集型、Network密集型和磁盘密集型。

需要指出的是,在上述的实施例中,服务器能耗模型可以通过知识蒸馏的方法应用到结构类似的其他服务器上,从而能够有利于其他结构类似的服务器建立出模型。

以上所述的实施例仅是对本发明的优选方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案做出的各种变形、变型、修改、替换,均应落入本发明权利要求书确定的保护范围内。

技术分类

06120115921408