把握行业变革关键节点,12 月 19 日 - 20 日,AICon北京站即将重磅启幕! 了解详情
写点什么

数据中心的电力超售 · OSDI 2020

  • 2021-03-20
  • 本文字数:2493 字

    阅读完需:约 8 分钟

数据中心的电力超售 · OSDI 2020

『看看论文』是一系列分析计算机和软件工程领域论文的文章,我们在这个系列的每一篇文章中都会阅读一篇来自 OSDI、SOSP 等顶会中的论文,这里不会事无巨细地介绍所有的细节,而是会筛选论文中的关键内容,如果你对相关的论文非常感兴趣,可以直接点击链接阅读原文。


本文要介绍的是 2020 年 OSDI 期刊中的论文 —— Thunderbolt: Throughput-Optimized, Quality-of-Service-Aware Power Capping at Scale1,该论文实现的 Thunderbolt 可以在数据中心实现电力资源的超售,电子资源的超售可以使同一个数据中心运行更多的服务器,从而提高数据中心的整体性能并减少日常的维护开销、降低成本。


超售系统的目的都是降低成本并提高利用率,但是也都面临着资源过度使用的潜在可能,这也就需要引入限制和保护系统在影响系统之前或者之时及时止损,正如航空公司会超售机票一样,一旦超售的航班全满,就会采用升舱、换飞机或者赔偿等方式解决问题,避免事态的进一步恶化。



图 1 - 资源超售

现代的计算集群都会同时运行延时敏感型的在线服务和面向吞吐量的批处理工作负载,在运行期间一旦发生突发事件,我们会通过 Linux 内核的 CPU 限制等机制优先保证前者的延时,并在没有突发情况的机器上使用后者提高集群的资源利用率。


延迟敏感型的在线服务往往可以容忍宕机,但是它们需要保证程序执行期间有稳定的性能和资源,这些服务在遇到性能问题时更倾向于调度到其他资源充足的机器上;而面向吞吐量的批处理任务其实可以容忍资源的不稳定,但是一旦调度到其他机器上,可能需要重新计算,这就浪费了大量的计算和网络资源。



图 2 - 电力超售和混合部署

从调度的角度上来看,论文中 Thunderbolt 要解决的问题和混合部署、计算资源超售的场景非常相似,它们两者都希望保证集群中的两种类型服务的延迟和吞吐量,只是 Thunderbolt 会将电力资源作为约束条件,而后者的目的是更高的资源利用率,这也是作者对这篇论文感兴趣的原因。


Thunderbolt 使用如下所示的架构设计,图中的四个蓝色方块就是该系统的几个核心组件,我们能从图中清晰地看到该系统的数据流向:



图 3 - Thunderbolt 架构

上述架构中包含两个不同的电力限制路径,分别是根据实时数据决策的反应式限制(Reactive Capping)和被称为故障转移机制的主动式限制(Proactive Capping),这两种限制策略会在不同情况下触发。


  • 反应式限制:会监控电表发出的实时电力信号,当集群占用的电力功率高于特定数值时就会限制 CPU 的使用;

  • 主动式限制:当电力信号变得不可用时,主动式限制会接管整个系统,根据历史的数据评估机房断路器切断电源的风险,如果评估的风险过高,也会限制集群的 CPU 使用;

反应式限制

因为 CPU 的利用率能够很好地指示当前任务使用的 CPU 功率,所以我们可以通过限制 CPU 来降低整个集群中服务器消耗的电力。Thunderbolt 使用 Linux 内核的完全公平调度器(Completely Fair Scheduler)精确的控制节点中进程的 CPU 占用,以此来控制节点占用的资源:


独立的任务会运行在它们自己的 Linux 控制组(Cgroups)中,调度器提供了两个用于控制 CPU 使用量的参数,即 quota 和 period,其中 quota 是当前工作负载在每个 period 能够得到的执行时间,它们的单位都是微秒。如上图所示,当 quota 为 20,000、period 为 100,000 时,当前控制组中的任务在每 100ms 的时间周期中都会获得 20ms 的执行时间。


同一个节点上的不同任务会分别属于不同的控制组,我们可以通过调节它们的参数为不同的任务设置不同的服务质量。而 Thunderbolt 会利用上面这点将延迟敏感型的任务设置成高优先级,将面向吞吐量的的任务设置成低优先级,在电力资源不足时限制后者的 CPU 使用。



图 4 - 流量塑形

虽然我们会使用 CFS 限制工作负载的 CPU 使用,但是仍然需要上面的流量塑形控制策略决定应该何时限制以及如何限制 CPU 的使用量来控制集群的电力用量。在上述折线图中,包含两个不同的限制区域:


  • 硬限制区域:当节点的电力用量进入硬限制区域时,会将 CPU 的使用量减少 99% 防止过度使用资源,同时会立刻创建一段软限制区域;

  • 软限制区域:当节点的电力用量进入软限制区域时,会将 CPU 的使用量在一定时间内减少 25%,随后电力使用会在软限制区域区域下来回震荡,直到走出软限制区域;


软限制区域仅会在机器的能源使用进入硬限制区域时才会触发,同时会在一段时间后消失,减少对当前节点的电力资源的使用限制。

主动式限制

主动式的限制策略更像是一种故障转移的保护策略,当集群中的电表变得无法工作时,我们仍然需要保证集群的稳定。但是因为实时电力资源的缺失,我们没有办法使用上面的反应式策略,系统需要根据历史数据和服务质量决定每个任务分配的 CPU 资源。在这种策略下,使用 Linux 的 CFS 为工作负载动态分配资源是很难的,我们会直接将逻辑 CPU 从任务的 CPU 亲和(Affinity)中移除以减少资源的消耗。


与反应式策略仅会限制面向吞吐量的工作负载不同,当电表不能提供实时可用的数据时,CPU 的禁用会应用到集群中的全部的负载上,在这时我们只能牺牲在线服务的性能保证整个集群的电力安全,避免断电带来的大型事故。

总结

作为普通的软件工程师,在看这篇论文之前从来没有考虑过电力供应对数据中心带来的影响,也没有想过可以通过超售电力资源降低数据中心的成本。但是虽然我们没有遇到过这个问题,但是我们也可以从类似的问题中寻找答案,例如:集群中的计算资源超售和混合部署与论文中的场景有相似的解决方案。


这篇论文其实从不一样的角度开阔了我们的视野,让我们能从集群之外的物理世界考虑如何降低成本并提高能效,试想除了电力资源、计算资源的超售,我们还可以超售哪些资源呢,相信从这个角度出发,可以套用相似的逻辑解决不同的问题。


推荐阅读


  1. Li S, Wang X, Zhang X, et al. Thunderbolt: Throughput-Optimized, Quality-of-Service-Aware Power Capping at Scale[C]//14th {USENIX} Symposium on Operating Systems Design and Implementation ({OSDI} 20). 2020: 1241-1255. ↩︎


本文转载自:Draveness

原文链接:数据中心的电力超售 · OSDI 2020

2021-03-20 08:002310

评论

发布
暂无评论
发现更多内容

OPPO的航船:小布生命体将驶向怎样的科技彼岸?

脑极体

软件测试 | 测试开发 | 测试人员必须掌握的测试用例

测吧(北京)科技有限公司

测试

最新版!955、不加班、双休的公司名单

千锋IT教育

新书上市 | 十分易上手的图解教程,全系列累计销量20万册!

图灵社区

程序员 计算机 图论

小程序可以在智能设备上运行?

Speedoooo

小程序 物联网 IoT 智能设备 小程序容器

不信谣不传谣,亲自动手验证ModelBox推理是否真的“高性能”

华为云开发者联盟

人工智能 企业号九月金秋榜

内核实战教程第四期 _ 带你走进数据库 SQL 引擎

OceanBase 数据库

iOS自动化真机测试验证环境过程中常见问题解析

霍格沃兹测试开发学社

精彩演讲实录|在确定性和不确定性中探索AIOps的适用性

TRaaS

技术文章

hive on spark 还是 spark on hive?

林家小壳壳

大数据 hive spark SQL 大数据仓库

Python代码用在这些地方,其实1行就够了

华为云开发者联盟

Python 开发 企业号九月金秋榜

RPC接口测试技术-Tcp 协议的接口测试

霍格沃兹测试开发学社

软件测试 | 测试开发 | 如何使用代理配置快速定位接口测试脚本问题?

测吧(北京)科技有限公司

测试

【译】日志:每个软件工程师都应该了解实时数据的统一抽象【一】

Rae

架构 分布式 日志 原理

TiDB v6.2 发版

PingCAP

#TiDB

Android如何实现自定义短信登录丨MobTech

MobTech袤博科技

android

app自动化测试(iOS)元素定位(新手篇)

霍格沃兹测试开发学社

《穿越时空的git》之创建版本库和常用命令操作

霍格沃兹测试开发学社

新书上市 | 十分易上手的图解教程,全系列累计销量20万册!

图灵教育

程序员 计算机 图论

软件测试 | 测试开发 | 一文搞定 uiautomator2 自动化测试工具使用

测吧(北京)科技有限公司

自动化测试

Python 自动化测试(四)

霍格沃兹测试开发学社

技术门槛高?来看 Intel 机密计算技术在龙蜥社区的实践 | 龙蜥技术

OpenAnolis小助手

云原生 intel sig 龙蜥技术 机密计算

我们做了一个云原生成本优化产品

TRaaS

【译】YouTube 架构

Rae

数据库 架构 youtube 后端技术

TiFlash 源码解读(七)TiFlash Proxy 模块

PingCAP

TiDB TiDB 源码解读

iOS 自动化测试踩坑(一): 技术方案、环境配置与落地实践

霍格沃兹测试开发学社

一文带你了解K8S 容器编排(上)

霍格沃兹测试开发学社

UI 自动化测试应不应该投入?有没有前途?怎样做最明智?

霍格沃兹测试开发学社

宏杉科技加入阿里云PolarDB开源数据库社区

阿里云数据库开源

阿里云 polarDB 阿里云数据库 PolarDB-PG PolarDB for PostgreSQL

RPC接口测试技术-websocket 自动化测试实践

霍格沃兹测试开发学社

UI 自动化测试实战(二)| 测试数据的数据驱动

霍格沃兹测试开发学社

数据中心的电力超售 · OSDI 2020_语言 & 开发_面向信仰编程_InfoQ精选文章