认识powerapi
背景
计算中心电力消耗在国家电力消耗占比越来越大,企业数据中心的电力成本所占企业运营成本越来越高,在全球推行绿色能源,降低碳排放的背景之下,业界已经从单纯追求服务器性能指标转变为追求能效指标。
当前随着处理器集成度的不断提升,服务器和超大规模集成计算系统都需要考虑提高能源效率的问题。在节能方面,软件将发挥重要作用。随着每一代新硬件的进步,将会产生更多的功耗测量和控制功能。这些功能都需要软件参与,以最大限度提高功能优势。
在此背景下,我们设计了该轻量级 API,为用户态程序提供统一的功耗管理接口。powerapi 屏蔽了原有复杂 OS 功耗接口调用,特别是屏蔽了不同硬件平台不同接口的差异,提供一套统一化的测量与控制服务。
简介
openEuler 的 powerapi 是一组用于支持系统功率管理的 API,它们提供了一种标准化方法来管理系统的功率使用情况,包括监控,调整和优化系统的功率消耗。这些 API 可以帮助系统管理员更好地管理系统的能源消耗,从而提升系统的效率和可靠性,并减少能源成本。
powerapi 是为应用层,尤其是集群调度器提供的能效控制统一接口,可对整机的能效进行控制,以达到节能的目的。比如,感知系统 CPU 的负载,和 IPC/访存 MISS 率等,调整 CPU 运行频率。
powerapi 接口以 so 库函数方式提供,当前只支持 X86 和 ARM 平台。
特点
- 支持感知系统各设备功耗信息和系统运行状态。
- 支持感知系统是否自动调频模式。
- 系统支持根据配置的策略自动调整系统工作状态。
组件
powerapi 以 rpm 包的形式提供,主要包含以下两个组件:
- pwrapis:一个服务化进程,可以给 eagle 和第三方系统提供功耗管理相关服务。
- libpwrapi.so: powerapi SDK,含头文件,供应用程序进行二次开发。