【专访Kepler专案核心维护者】不只拥有秒级的能耗指标,还能结合碳感知提供更精细的碳足迹

目前是Kepler专案核心成员之一的IBM东京研究院研究科学家Marcelo Carneiro do Amaral指出, Kepler专案成立的目的是,建立一个开源工具,能够跨平台上统一执行并收集能耗相关指标数据。

随著多云混合云架构成为主流,许多公司正在使用不同的云端供应商的服务,但也增加云原生碳排追踪的挑战。「这正是Kepler专案的目的,要建立一个开源工具,能够跨平台统一执行并收集能耗相关指标数据」。Kepler专案核心成员之一的IBM东京研究院研究科学家Marcelo Carneiro do Amaral说。

这位隶属于IBM混合云部门的研究员,长期专注于云端运算工作负载、工作负载最佳化、资源管理、平行与分散式系统及系统效能评估的研究,尤其是微服务工作负载效能最佳化及混合云可扩展性的改进。

迈向云原生永续IT有四大阶段

Marcelo归纳,企业发展云原生永续IT,可分为4个阶段,分别是量化、评估、优化、自动化四个阶段。首先企业需进行量化,计算云端应用程式的能耗,借此了解各应用、每个工作负载、租用VM、容器及服务所消耗的能源与碳足迹数据。接著进入评估和分析阶段,企业需识别出高耗能应用,并透过调度框架进行优化,以提高能源效率,最后阶段是自动化,透过自动化控制改善应用程式和资料中心资源管理,达成更永续的营运效率与环境效益。

不过,Marcelo直言,目前企业要落实云原生IT永续最大的挑战是,缺乏统一的指标来监控云原生环境的IT能耗与碳排放。

他解释,不同云端供应商在云端服务能耗计算,经常采用不同的标准,尤其是碳足迹的计算,存在显著差异,甚至在私有云和公有云环境中所使用的碳排放指标也可能不同,导致企业难以整合来自不同供应商或环境的能耗资讯,进行一致地追踪与管理。Marcelo强调,这正是Kepler推出的目的,要来解决这个问题。

Marcelo指出:「Kepler专案的目标是打造一个云原生永续监控工具的开源版本,能在多平台上统一执行并收集能耗的指标,让任何人都能在不同环境中使用相同的标准进行计算。」

Kepler工具在K8s丛集监控最小单位是Process

目前公云巨头的碳排放监控工具,大多以个别服务或产品为最小单位,如Google Cloud碳足迹仪表板工具,而且多采取每月更新,缺乏更即时的数据,甚至,多家工具仅提供碳排放数据,未涵盖能源使用情况。此外,仪表板可查看的资讯,通常是所有应用程式和服务加总合计的整体碳排放资讯,较缺乏个别应用程式的详细碳排数据,也就难以准确评估应用程式行为并做出有针对性的能源效率改进。

相较之下,他表示,Kepler的监控方式更为精细,最小管理单位是Process,能直接在Kubernetes平台中监控到系统底层的Process的能耗变化,可提供小时甚至分钟级别的能耗数据。

他解释,Process是作业系统层级的基本运作单位。例如,在一个容器中可能同时执行多个Process,如网页伺服器和资料库等,每个这类小元件的执行都可以是一个Process;一个容器内可以有多个Process,多个容器再构成一个Pod。因此,用户可借由Kepler精细地监控到单一Pod、单一容器、单一Process能耗数据,无论这些工作负载部署在公有云的虚拟环境(VM)或裸机环境(Bare Metal)的Kubernetes丛集上都能掌握。

Marcelo表示,数据颗粒度越细致,代表更清楚地掌握应用程式中各元件的能耗情况,让企业能针对性地调整和优化,例如针对高能耗的应用进行程式码最佳化。此外,企业还可分析云端应用程式的能耗随季节变化或昼夜交替的趋势,进一步提升能耗管理的效率。

取得云原生应用的能耗数据后,企业可以将每个容器或运算节点所消耗的kWh能耗数据乘上碳排放因子,换算出相应的碳排放量。此外,还可以透过K8s软体控制器工具SusQL和碳感知SDK工具来动态追踪碳足迹,将这些能耗数据自动转换成碳排放量,并汇出到Prometheus中汇整,最后再透过Gafana仪表板进行视觉化呈现。

甚至,时间颗粒度上,Marcelo强调,Kepler可以提供到以秒为单位的能耗指标,结合碳感知SDK使用,能实现更精细的碳排放追踪。

不仅能追踪K8s丛集的能耗变化,Kepler本身还可监控非K8s环境的设备能耗数据,例如边缘运算设备。他指出,Kepler以Process作为最小监控单位,因此可监控作业系统中执行的所有资源,包括Docker容器等,提供灵活的监控解决方案。

因应GenAI的发展,Marcelo表示,这让Kepler工具变得非常重要,企业可以使用Kepler来监控GenAI专案的工作负载,估算出推论与训练过程中的能源消耗,作为优化LLM模型能耗的依据,不仅有助于降低模型的能耗,使其更具永续性,还能在环境友善的资料中心内完成模型训练。

Marcelo提到,最近就有企业为了因应欧洲法规需求,要求IBM提供LLM模型的能耗报告。IBM团队正使用Kepler工具来取得LLM模型在训练和推理阶段的能耗数据。

Kepler提供裸机和虚拟环境两种部署途径

Kepler目前提供了两种部署途径,因应裸机环境(Bare Metal)与公有云虚拟环境(VM)中 Kubernetes 丛集的能耗数据搜集需求。在裸机环境中,企业可直接透过硬体感测器即时获取系统功率指标;在公有云虚拟机器环境中,由于云端供应商未公开硬体感测器的数据,需依训练好的功率模型来推论背后的功率数据,提供给Kepler使用,来推估能耗数据。 (图片来源/IBM)

他指出,Kepler目前提供了裸机环境(Bare Metal)与公云的虚拟环境(VM)两种部署途径,根据不同的部署方式,测量的能耗结果的准确度可能会有所差异。

在裸机环境中,由于可以直接存取硬体感测器上的数据,Kepler能够直接获取CPU使用率、记忆体和GPU操作等系统指标来估算能耗。例如,当一个Process使用了10%的CPU,也就占用了CPU功耗的10%,进而精确测量每个Process、容器或Pod的能耗数据。

相比之下,在公云的虚拟环境上,因为云端供应商未公开硬体感测器的数据,Kepler无法直接测量VM的功耗,只能依赖事先训练的功率预测模型,来推估每个虚拟机器的功耗,因此,在公云虚拟环境中的能耗测量准确度不及裸机环境。

在公云环境中,Kepler推估VM的功率需要一个功率模型,这个功率模型必须在模型伺服器上完成训练,先用裸机的数据训练出一个功率模型之后,再把整套模型伺服器软体装到和Kepler相同的执行环境,来根据该环境提供的资讯来推论背后的功率数据,提供给Kepler使用,来推估能耗数据。

Marcelo强调,Kepler专案团队正持续改进Kepler工具,以提升功率模型的准确性。例如针对亚马逊AWS等公云使用的硬体训练专属功率模型。此外,随著新处理器的推出,团队也会陆续增加更多功率模型。

Kepler近期新增VM功耗建模功能,开始支援搜集EC2 Spot实例的能耗数据,也利用开放功耗资料库SPECpower来训练模型,此外,还能结合Kuberentes云原生CI/CD工具Tekton,建立自动化模型训练流程。

但他坦言,目前在公有云虚拟机环境中,使用功率模型进行估算,虽已尽可能接近实际数据,但准确度仍难达到100%。他期盼未来云端供应商能公开每台虚拟机的能耗数据,以便更精确地计算云端应用的能耗数据。

近来,不少云原生永续新专案与Kepler工具结合,逐渐形成生态系,像是Peaks专案可以感知功耗变化并调整工作负载排程,优化Kubernetes资源分配与调度。Clever专案则可利用ML模型预测和调整Pod资源使用进行调度等。

 相关报导