0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

openEuler资源利用率提升之道:虚拟机混部介绍与功耗管理技术

openEuler 来源:openEuler 2023-01-13 15:10 次阅读

随着云计算市场规模的快速增长,各云厂商基础设施投入也不断增加,但行业普遍存在资源利用率低的问题,在上述背景下,提升资源利用率已经成为了一个重要的技术课题。

将业务区分优先级混合部署(下文简称混部)是典型有效的资源利用率提升手段。业务可根据时延敏感性分为高优先级业务和低优先级业务。当高优先级业务和低优先级业务发生资源竞争时,需优先保障高优先级业务的资源供给。

业务混部的核心技术是资源隔离控制,主要涉及内核态基础资源隔离技术及用户态 QoS 控制技术。Skylark 是一种虚拟机混部场景下的 QoS 感知的资源调度器,由 openEuler Skylark 组件承载,在 Skylark 视角下,优先级粒度为虚拟机级别,即给虚拟机新增高低优先级属性,以虚拟机为粒度进行资源的隔离和控制,在保障高优先级虚拟机 QoS 前提下提升物理机资源利用率。内核层提供了一些基础资源干扰隔离机制,比如 CPU 调度硬优先级机制以及 SMT(硬件超线程)干扰隔离机制等。此外集群管理系统软件 OpenStack 也需要感知虚拟机优先级,设计实现一套混部资源模型。

虚拟机混部由 openEuler 社区 OpenStack SIG、Virt SIG 以及 Kernel SIG 联合开发。本文主要介绍 Skylark 组件的功耗管理技术。

为什么需要管理功耗

随着各种混部方案的提出,服务器利用率有了明显的提升。但是平均利用率的提高伴随着的是瞬时利用率冲到 100%的概率大幅增加。服务器一般是以睿频频率运行,当 CPU 以满负荷运行一段时间后,功耗的持续增加会大幅超过 TDP 触发 CPU 降频。由于服务器是以整颗 CPU 供电,所以同一颗 CPU 上的所有 core 将会同时降频,将会影响该 CPU 上运行的所有虚拟机对应的客户业务 QoS。当利用率降低后,功耗也降低到一定值时,频率将再次升高到睿频。因此,高的资源利用率会间接导致 CPU QoS 下降,在虚拟机混部后需要在提高资源利用率的同时保证 CPU QoS 或者说客户业务不受到影响。

本文详细介绍并分享了功耗相关的基础概念以及虚拟机混部技术中功耗管理的技术细节。

CPU 功耗来源

CPU 的功耗主要是由晶体管工作产生,其功耗主要分为开关功耗、短路功耗和漏电功耗三类。下图为 CMOS 反向示意图。

28927fca-9297-11ed-bfe3-dac502259ad0.png

其中,开关功耗主要是电容的充放电。例如当输入低电平时,输出端负载电容会进行一次充电。当输入变成高电平时,电容中储存的电能会以热量的形式被释放。当 CPU 中几十亿个晶体管同时释放时,将会产生大量的热能。短路功耗则是 P 管和 N 管短路时产生的功耗。漏电功耗是 CMOS 管不能严格关闭时发生漏电所产生的功耗,与制程和温度有关。

CPU 功耗关系公式:

28b08146-9297-11ed-bfe3-dac502259ad0.png

公式中,C 代表电容率(Capacitance),是个常数,和 CPU 的工艺相关,在 CPU 出厂时确定。P 是功耗(Power),F 是 CPU 运行的频率(Frequency),V 是电压(Voltage)。可以看出 CPU 的功耗和 CPU 运行的电压以及运行的频率成正比。而其中,电压 V 和频率有一定的对应关系,这是因为当 CPU 的场效应管进行一次充放电需要一定时间,只有充放电完成后采样才能保证信号的完整性。电压越高,充电的时间越短,即翻转的频率就越大。

TDP 是什么

TDP(Thermal Design Power)即热设计功耗,简称热功耗。它是用来指示 CPU 或者 GPU 在满负荷运行时,散热器需要达到的散热热量。根据能量守恒原理,CPU 运行需要输入能量,即电源的功率。输入的电流经过电容产生热量,以热能以及其他形式的能量散发出来,这些热能如果没有耗散掉,那么 CPU 的温度则会越来越高,影响 CPU 的运行,TDP 代表了按照 CPU 设计运行的温度范围内需要耗散的热能,是散热系统的重要参考指标。TDP 越大,表示 CPU 在满负荷工作产生的热量就越大。

随着睿频 2.0 技术引入,TDP 已经不是 CPU 能够排除的最大热量了。在睿频 2.0 中,引入了 PL1、PL2、PL3、PL4、和 Tau。

PL1 是 CPU 运行在默认主频不含睿频和 AVX 的功耗,大多数情况等于 TDP。PL2 是 CPU 可以达到超过 TDP 工作的最大功率限制。可以看出在 Tau 时间内 CPU 是可以超过 TDP 阈值运行的。PL3/PL4 一般厂家不设置,这里略过。Tau 是 CPU 能在 PL2 运行的最长时间。

在实际生产中,由于需要考虑到各种冗余以及生产安全,服务器并不能一直在最高功率下运行,而且为了保护 CPU,甚至会设置"功耗墙",当功耗大于一定阈值时,CPU 会自动调用调频接口通过降低 CPU 的频率来降低功耗。当功耗降低,CPU 温度回复正常时,CPU 频率会逐渐回复到原先频率。

混部功耗管理技术

在 Skylark 虚拟机混部方案中,我们有数据采集,QoS 实时分析,QoS 实时控制,三个核心模块。在这三个模块中,通过以下算法实现功耗管理:

「功耗相关数据采集」:根据 host 上的 topo 关系,通过 MSR 寄存器,准确采集计算 CPU 每个核的频率,以及每个 package 的功耗。

「功耗及利用率实时分析」:在每个定时周期中,根据设定的 TDP 阈值,标记功耗热点 package,以及降频 CPU 核,对降频核上运行的虚拟机 CPU 利用率进行排序。由于我们要尽量保证高优先级虚拟机的 QoS,所以利用率最高的若干个低优先级虚拟机将被放入 QoS 调整队列。

「QoS 实时控制」:在每个 QoS 调整周期,根据 CPU 核状态,功耗热点 package,限制或恢复 QoS 调整队列中虚拟机 vCPU 的 CPU 带宽,通过降低 CPU 带宽,将减小降频核的 CPU 利用率,来达到降低功耗的目的。

总结

在使用了高低优先级虚拟机混部方案之后,平均资源利用率的提高对应着 QoS 降低的风险也随之增加。在 CPU 突发满负载运行时,可能会因功耗升高触发降频而导致 CPU QoS 下降。我们在 Skylark 中提出了功耗管理技术,通过调整热点低优先级虚拟机 vCPU 的 CPU 带宽来间接调整功耗,保障 CPU QoS。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10449

    浏览量

    206579
  • 功耗
    +关注

    关注

    1

    文章

    750

    浏览量

    31531
  • 虚拟机
    +关注

    关注

    1

    文章

    855

    浏览量

    27381
  • 功耗管理
    +关注

    关注

    0

    文章

    8

    浏览量

    7162
  • openEuler
    +关注

    关注

    2

    文章

    289

    浏览量

    5661

原文标题:openEuler资源利用率提升之道 05:虚机混部介绍与功耗管理技术

文章出处:【微信号:openEulercommunity,微信公众号:openEuler】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    一种提升存储资源利用率的方法

    在现代云平台中,存储设备,如基于闪存的固态硬盘(SSD)已经被虚拟化为全系统的共享资源,以提供跨越多个应用实例的存储服务。这使得云平台能够通过在多个多租户虚拟机(VM)之间进行分片来有效利用
    的头像 发表于 11-21 10:15 381次阅读
    一种<b class='flag-5'>提升</b>存储<b class='flag-5'>资源</b><b class='flag-5'>利用率</b>的方法

    GPU-Z可以监控每个vGPU的总GPU利用率吗?

    我同时运行4个VM,每个vGPU是m60-2Q。所有虚拟机都运行bechmark测试。我使用Techpowerup GPU-Z监控每个vGPU。我发现了一个有趣的结果。如果我将所有vGPU利用率
    发表于 09-19 16:59

    是否可以看到每个VM的vGPU利用率

    找到任何具体的帖子。我尝试使用nvidia-smi CLI命令。例如:'nvidia-smi -q',但它显示了每个物理GPU的详细信息,包括利用率。每个虚拟机利用率都没有。谢谢,我感谢您对此请求的任何帮助
    发表于 09-21 11:06

    如何获得每个块的路由资源利用率

    我想知道每个块使用的详细路由资源。 “设计路线状态”仅提供整个设计的网络总数。有谁知道如何获得每个块的路由资源利用率(网络数量,交换机盒等)?
    发表于 05-21 15:35

    提升现网网络资源利用率和网络承载能力的方法

    后1、3小区用户数下降明显,新分裂小区6、7业务吸收良好,指标良好,起到很好的负荷分担及感知提升的作用。  表3 扩容方案实施效果  小区ID操作RRC连接平均数LTE_上行PRB平均利用率LTE_
    发表于 12-03 15:40

    openEuler 资源利用率提升之道 01:概论

    提升资源利用率,这需要在集群调度、OS 等层面出现更多的技术突破。本文简要介绍对于云上资源
    发表于 07-06 09:54

    openEuler资源利用率提升之道02:典型应用下的效果

    前文[1]介绍资源利用率提升这个课题的产生背景、形成原因、解决思路,以及在 openEuler 上所构建的
    发表于 08-10 11:12

    openEuler 资源利用率提升之道 03:rubik 引擎简介

    :支持高级用户针对特定业务场景开发自定义扩展插件。rubik引擎在系统中的位置特性介绍在保障在线业务服务质量前提下实现资源利用率最大化
    发表于 09-01 11:00

    openEuler 资源利用率提升之道 04:CPU 抢占和 SMT 隔离控制

    感知用户配置的业务优先级并配置其 CPU 优先级属性,rubik 具体的介绍和使用详见《openEuler 资源利用率提升
    发表于 09-22 16:50

    爱奇艺:基于龙蜥与 Koordinator 在离线的实践解析

    在一个集群里,没有进行任何特殊的隔离性处理。在 Docker 上经历了困境后,爱奇艺将业务按节点、集群进行了拆分;这又导致离线任务集群资源常年不够用,在线业务集群利用率非常低,尤其是夜间利用
    发表于 12-22 15:56

    虚拟机按需物理资源分配方法

    针对云平台按负载峰值需求配置处理机资源、提供单一的服务应用和资源需求动态变化导致资源利用率低下的问题,采用云虚拟机中心来同时提供多种服务应用
    发表于 01-02 15:18 1次下载
    云<b class='flag-5'>虚拟机</b>按需物理<b class='flag-5'>资源</b>分配方法

    基于虚拟机负载高峰特征的虚拟机放置策略

    提出了一种基于虚拟机负载高峰特征的虚拟机放置策略,通过更好地复用物理主机资源来实现资源共享,从而提高资源
    发表于 01-13 10:34 0次下载

    中标麒麟虚拟化平台软件可大幅度提高资源利用率

    池化并统一管理调度;为您的关键业务提供灵活的基础资源调度,优越的性能和稳定性。系统实现对海光、PowerPC 及X86平台的支持。 中标麒麟虚拟化平台软件能够在提高数据中心空间利用率
    发表于 09-02 10:31 1208次阅读

    openEuler资源利用率提升之道虚拟机混部OpenStack调度

    虚拟机混合部署是指把对 CPU、IO、Memory 等资源有不同需求的虚拟机通过调度方式部署、迁移到同一个计算节点上,从而使得节点的资源得到充分利用
    的头像 发表于 01-30 10:26 657次阅读

    广凌科技:构建预约管理系统,助力高校资源利用率

    广凌科技基于此现象,应用信息化管理手段,构建广凌预约管理系统,有效协助教室、座位、会议室、实训室以及公共场所等的使用进行规范化、实时化管理,协助各大高校提高资源
    的头像 发表于 06-20 09:15 292次阅读
    广凌科技:构建预约<b class='flag-5'>管理</b>系统,助力高校<b class='flag-5'>资源</b><b class='flag-5'>利用率</b>