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

    文章

    10854

    浏览量

    211578
  • 功耗
    +关注

    关注

    1

    文章

    810

    浏览量

    31936
  • 虚拟机
    +关注

    关注

    1

    文章

    914

    浏览量

    28160
  • 功耗管理
    +关注

    关注

    0

    文章

    8

    浏览量

    7169
  • openEuler
    +关注

    关注

    2

    文章

    312

    浏览量

    5860

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

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

收藏 人收藏

    评论

    相关推荐

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

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

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

    后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

    关于Swarm和Mesos资源利用率优化实践分析

    资源调度领域的优秀经验,以及他们在Mesos社区为提升Mesos资源利用率而正在进行的实践活动,深度剖析了Mesos资源的收集和调度原理,以
    发表于 10-10 11:54 0次下载
    关于Swarm和Mesos<b class='flag-5'>资源</b><b class='flag-5'>利用率</b>优化实践分析

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

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

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

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

    虚拟机内部隔离故障驱动提高虚拟机可靠性

    利用虚拟技术来整合资源已成为高性能服务器提高资源利用率的重要手段,
    发表于 02-23 10:25 1次下载

    基于自适应虚拟机迁移的云资源调度及架构

    ,提岀了¨迁移路径”和“服务开销”等概念,并以服务器的CPU利用率和服务器间的带宽利用率为指标,为系统中所有迁移的虛拟规划最优的迁移路径,以使系统总的服务开销最小化。首先,设计了基于阈值的
    发表于 05-07 15:44 7次下载

    openEuler Summit 2021-云/虚拟化分论坛:业内解决方案+虚拟机系统模拟

    openEuler Summit 2021-云/虚拟化分论坛:业内解决方案+虚拟机系统模拟
    的头像 发表于 11-10 14:42 1699次阅读
    <b class='flag-5'>openEuler</b> Summit 2021-云/<b class='flag-5'>虚拟</b>化分论坛:业内解决方案+<b class='flag-5'>虚拟机</b>系统模拟

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

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

    广凌房产管理系统(一):土地资源管理,提高资产资源利用率

    做好高校的土地资源管理,有效保障学校和使用单位的合法权益,确保整个变更过程公开、公正、透明,避免因人工进行房屋与土地管理带来的纰漏,大大提升工作效率,提高土地资源
    的头像 发表于 06-22 09:16 474次阅读
    广凌房产<b class='flag-5'>管理</b>系统(一):土地<b class='flag-5'>资源管理</b>,提高资产<b class='flag-5'>资源</b><b class='flag-5'>利用率</b>

    Docker与虚拟机的区别

    的操作系统实例来实现虚拟化的技术。其实现方式是通过Hypervisor来实现的。Hypervisor是一个运行在物理机上的软件或硬件,负责管理和分配虚拟机的硬件
    的头像 发表于 11-23 09:37 9762次阅读