一种非侵入式的服务器能耗分解系统和方法

文档序号:10569827阅读:282来源:国知局
一种非侵入式的服务器能耗分解系统和方法
【专利摘要】本发明公开了一种非侵入式的服务器能耗分解系统。具体为获取机柜中所有服务器的总体能耗以及各个服务器的状态,通过机器学习的方式获取服务器状态与能耗的对应关系从而从总体能耗中分解出每个服务器的能耗。该系统具有成本低、准确度高、易于部署等特点。系统分为4个模块:状态收集模块负责在机柜的每个服务器上运行监控程序收集服务器状态;能耗监控模块负责从PDU读取机柜的总体能耗;第三模块负责用前两个模块获取的信息作为数据集训练模型从而分解出每个服务器的能耗;第四模块负责不断增加数据集的全面性使分解得到的结果更准确。
【专利说明】
一种非侵入式的服务器能耗分解系统和方法
技术领域
[0001] 本发明属于绿色计算领域,更具体地,涉及一种非侵入式的服务器能耗分解系统 和方法。
【背景技术】
[0002] 随着高性能计算的发展,大规模服务器集群越来越普遍。由于空间、成本的限制, 越来越多的集群采用刀片式服务器。这种刀片式服务器有体积小、计算密度高、功耗低、成 本低、易于部署和扩展等优点。但同时由于追求高计算密度,刀片服务器的许多器件的集成 度也很高,比如交换模块、供电模块、散热模块等都是集成在刀箱内。刀箱内刀片服务器的 供电来自于多组互为冗余的供电模块,即多个供电模块同时向某一个刀片服务器供电且供 电模块的数量和每个供电模块的供电量都是动态变化的。因此我们无法预知每个刀片服务 器的耗电量。目前所普遍采用的方法是通过为每个刀片服务器增加额外的硬件设备(例如 电表)来测量该服务器的能耗。然而,一个普通数据中心中刀片服务器的数量往往会有上万 个,为每个服务器增加一个硬件设备的成本十分昂贵。

【发明内容】

[0003] 针对现有技术的以上缺陷或改进需求,本发明提供了一种非侵入式的刀片服务器 能耗分解系统和方法,其通过监测整个机柜的功耗,结合各个刀片服务器的资源利用率,利 用机器学习的方法得出服务器状态和功耗的对应关系,从而准确地分解出每个刀片服务器 的功耗,进而解决现有方法中存在的由于为每个服务器单独配置硬件设备带来的成本大量 增加的技术问题。
[0004] 为实现上述目的,按照本发明的一个方面,提供了一种非侵入式的服务器能耗分 解系统,包括:
[0005] 第一模块,用于检测机柜中所有服务器各个时刻的状态信息,并将检测到的状态 fg息提供给第二模块;
[0006] 所述第二模块用于通过每个机柜上的能量分布单元获取各个时刻机柜的总体能 耗信息,并将该总体能耗信息提供给第三模块;
[0007] 所述第三模块用于利用服务器状态收集模块提供的状态信息和能耗信息收集模 块提供的总体能耗信息得到服务器状态和能耗的对应关系;
[0008] 所述第四模块用于获取单个服务器的状态信息,并根据得到的服务器状态和能耗 的对应关系计算该服务器的总体能耗信息。
[0009] 优选地,状态信息包括CPU利用率、内存利用率、磁盘读写量、以及网络I/0量。
[0010] 优选地,第二模块通过机柜rou获取所有服务器各个时刻的总体能耗信息。最后分 解出来的各个服务器的能耗的总和等于所有服务器的实际耗电量。
[0011] 优选地,第三模块将某一时刻的服务器状态信息转化为二维数组的形式,然后和 相同时刻机柜的能耗信息对应起来。
[0012] 按照本发明的另一方面,提供了一种非侵入式的服务器能耗分解方法,包括以下 步骤:
[0013] (1)在所有服务器中运行测试程序,使得服务器的状态一直变化,同时收集所有服 务器的状态信息,同时收集机柜的总体能耗信息;
[0014] (2)将步骤(1)获取的状态信息和总体能耗信息进行数据标准化,以得到标准化数 据集,然后根据该标准化数据集得到服务器状态和能耗的对应关系;
[0015] (3)获取单个服务器的状态信息,并根据得到的服务器状态和能耗的对应关系计 算该服务器的总体能耗信息。
[0016] 优选地,步骤(2)具体是将同一时刻所有服务器的状态信息和总体能耗信息转化 为二维矩阵,即标准化数据集。
[0017 ] 优选地,状态信息包括CPU利用率、内存利用率、磁盘读写量、以及网络I/0量。
[0018] 优选地,收集状态信息是通过Linux系统接口实现。
[0019] 总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有 益效果:
[0020] (1)由于本发明使用了第三模块,从而仅需从rou读取机柜的整体能耗信息就能从 其中分解出每台服务器的能耗信息,而不需要使用额外的硬件去单独测量每台服务器,降 低了成本;
[0021] (2)由于使用了第一模块,本发明仅需通过Linux系统接口读取状态信息,非常适 用于大规模的集群系统,容易扩展而且普适性高;
[0022] (3)由于使用了第四模块,随着数据集的更新完善,本发明可以确保单个服务器能 耗确定的准确性。
【附图说明】
[0023] 图1是本发明非侵入式的服务器能耗分解系统的框架图。
[0024] 图2是本发明非侵入式的服务器能耗分解方法的流程图。
【具体实施方式】
[0025] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要 彼此之间未构成冲突就可以相互组合。
[0026] 如图1所示,本发明提供了一种非侵入式的能耗分解系统,不需要插入额外硬件, 仅通过软件方式获取服务器状态信息以及机柜总体能耗,根据服务器的状态以及机柜能耗 信息求出两者的对应关系从而分解出每个服务器的能耗。本发明的能耗分解系统包括以下 四个模块:
[0027] 第一模块,本模块主要负责收集刀箱内每个刀片服务器的实时状态,包括CPU利用 率,内存利用率,磁盘读写量,网络收发量。这些状态主要通过Linux系统接口来读取。所选 状态是所有的服务器都可以获取,当然,系统的可扩展性支持增加其他服务器可获取的有 用信息,例如配备了IPMI的服务器可以增加可读取的服务器当前温度、风扇转速等状态。每 台刀片服务器上运行一个脚本获取自己的状态信息,然后一台管理节点负责收集所有节点 的状态信息。为了收集服务器的不同状态信息,在收集状态信息期间,每台服务器上都会运 行一些程序使得服务器的资源利用率从低到高变化。
[0028] 第二模块,本模块负责收集每个机柜的总体能耗信息,通过PDU提供的RS485接口 按照指定的串口通信参数获取信息流,并按指定的格式解析获得能耗信息。
[0029] 第三模块,本模块主要负责用前两个模块获取的数据训练模型获取状态与能耗的 对应关系,即解出每个状态前面的对应的系数,据此来计算状态对应的能耗。对于同构的集 群,即集群内所有的刀片服务器都是同一品牌,同一型号,相同配置,所有的刀片服务器的 系数应该是完全一样的。对于异构集群,即服务器有不同的种类/配置,比如存储节点、GPU 节点、计算节点等,不同种类服务器的系数是不同的。第三模块获取到服务器状态信息和机 柜耗电信息后,需要对获取到的信息进行标准化处理。由于初始训练集的限制,即收集服务 器状态的不全面性,可能导致结果不够准确。所以我们的系统会不断地更新训练集,即更新 服务器状态集。
[0030] 第四模块,主要负责更新数据集里的状态以及对应的能耗信息。由于初始的数据 集不可能包括所有服务器所有的状态以及对应的能耗信息,会导致训练出来的模型不准 确。所以数据更新模块会不断地更新、完善数据集中的状态信息,以提高模型的准确度。
[0031] 如图2所示,本发明提供了一种非侵入式的能耗分解方法,包括以下步骤:
[0032] (1)在所有服务器中运行测试程序(Benchmark),使得服务器的状态一直变化,同 时收集所有服务器的状态信息,包括CHJ利用率、内存利用率、磁盘读写量、网络I/O量等,同 时收集机柜的总体能耗信息;具体而言,收集状态信息是通过Linux系统接口实现;
[0033] (2)将步骤(1)获取的状态信息和总体能耗信息进行数据标准化,以得到标准化数 据集,然后根据该标准化数据集得到服务器状态和能耗的对应关系;具体而言,本步骤是将 同一时刻所有服务器的状态信息和总体能耗信息转化为二维矩阵(即标准化数据集),举例 而言,t时刻服务器1的三个状态为5\, 1,5\,2,5\,3,服务器2的状态为5\1,5\ 2,5\3,这两 台服务器的总能耗为产。对每个时刻t都有:
[0034] a * Sfj + 办 * S{,2 + c * Sf,3: + d * S§;1 + e * S|,2 + f * ^2,3 ^
[0035] a * S{;1 + h * Sf 2 + c * 3 + d * + e * S-Z2 + / * ^ = Pl
[0036] 通过解f(S)=P求出系数a到f。其中S为每个时服务器的刻状态信息组成的二维矩 阵,P为每个时刻能耗总体信息组成的列向量。
[0037] (3)获取单个服务器的状态信息,并根据得到的服务器状态和能耗的对应关系计 算该服务器的总体能耗信息;
[0038] 本发明提供了一种非侵入式的能耗分解系统,由于使用了第三模块,本发明仅需 从PDU读取机柜的整体能耗信息就能从其中分解出每台服务器的能耗信息,而不需要使用 额外的硬件去单独测量每台服务器,降低了成本;由于使用了状态收集模块,本发明仅需通 过Linux系统接口读取状态信息,非常适用于大规模的集群系统,容易扩展而且普适性高; 由于使用了状态更新模块,随着数据集的更新完善,本发明可以逐渐提高分解结果的准确 性。
[0039]本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以 限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含 在本发明的保护范围之内。
【主权项】
1. 一种非侵入式的服务器能耗分解系统,其特性在于,包括: 第一模块,用于检测机柜中所有服务器各个时刻的状态信息,并将检测到的状态信息 提供给第三模块; 所述第二模块用于通过每个机柜上的能量分布单元获取各个时刻机柜的总体能耗信 息,并将该总体能耗信息提供给第三模块; 所述第三模块用于利用服务器状态收集模块提供的状态信息和能耗信息收集模块提 供的总体能耗信息得到服务器状态和能耗的对应关系; 所述第四模块用于获取单个服务器的状态信息,并根据得到的服务器状态和能耗的对 应关系计算该服务器的总体能耗信息。2. 根据权利要求1所述的能耗分解系统,其特征在于,状态信息包括CPU利用率、内存利 用率、磁盘读写量、以及网络I/O量。3. 根据权利要求1或2所述的能耗分解系统,其特征在于,第二模块通过机柜rou获取所 有服务器各个时刻的总体能耗信息。最后分解出来的各个服务器的能耗的总和等于所有服 务器的实际耗电量。4. 根据权利要求1所述的能耗分解系统,其特征在于,第三模块将某一时刻的服务器状 态信息转化为二维数组的形式,然后和相同时刻机柜的能耗信息对应起来。5. -种非侵入式的服务器能耗分解方法,其特性在于,包括以下步骤: (1) 在所有服务器中运行测试程序,使得服务器的状态一直变化,同时收集所有服务器 的状态信息,同时收集机柜的总体能耗信息; (2) 将步骤(1)获取的状态信息和总体能耗信息进行数据标准化,以得到标准化数据 集,然后根据该标准化数据集得到服务器状态和能耗的对应关系; (3) 获取单个服务器的状态信息,并根据得到的服务器状态和能耗的对应关系计算该 服务器的总体能耗信息。6. 根据权利要求5所述的能耗分解方法,其特征在于,步骤(2)具体是将同一时刻所有 服务器的状态信息和总体能耗信息转化为二维矩阵,即标准化数据集。7. 根据权利要求5所述的能耗分解方法,其特征在于,状态信息包括CPU利用率、内存利 用率、磁盘读写量、以及网络I/O量。8. 根据权利要求5所述的能耗分解方法,其特征在于,收集状态信息是通过Linux系统 接口实现。
【文档编号】G06F11/30GK105930253SQ201610292241
【公开日】2016年9月7日
【申请日】2016年5月5日
【发明人】刘方明, 金海 , 许志峰, 郭鉴
【申请人】华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1