MIT 的新 CPU 负载平衡器

Shenango系统计划用于数据中心。

MIT 的新 CPU 负载平衡器
/ 照片 Marco Verch CC BY

据一位提供商称,数据中心 仅 20-40% 的可用计算能力。 在高负载时该指标 可达60%。 这种资源分配导致了所谓的“僵尸服务器”的出现。 这些机器大部分时间都闲置,浪费能源。 如今全球 30% 的服务器 没有工作,每年消耗价值 30 亿美元的电力。

麻省理工学院决定解决计算资源使用效率低下的问题。

工程团队 已开发 处理器负载平衡系统称为 Shenango。 其目的是监视任务缓冲区的状态并将卡住的进程(无法接收 CPU 时间)重新分配给空闲机器。

Shenango 的运作方式

Shenango 是一个 C 语言的 Linux 库,具有 Rust 和 C++ 绑定。 项目代码和测试应用程序发布于 储存库 在 GitHub 上。

该解决方案基于IOKernel 算法,该算法在多处理器系统的专用核心上运行。 它使用框架管理 CPU 请求 DPDK,它允许应用程序直接与网络设备通信。

IOKernel 决定将特定任务委托给哪些内核。 该算法还决定需要多少个核心。 对于每个进程,确定主核心(保证)和附加核心(突发)——后者在 CPU 请求数量急剧增加时启动。

IOKernel 请求队列的组织方式为 环形缓冲区。 每五微秒,算法就会检查分配给核心的所有任务是否已完成。 为此,它将缓冲区头部的当前位置与其尾部的先前位置进行比较。 如果在上次检查时发现尾部已经在队列中,系统会记录缓冲区过载并为该进程分配一个额外的核心。

分配负载时,优先级会分配给较早执行相同进程且部分保留在缓存中的核心,或任何空闲核心。

MIT 的新 CPU 负载平衡器

Shenango 还采取了这种方法 偷工减料。 分配运行一个应用程序的核心会监视彼此的任务数量。 如果一个核心先于其他核心完成其任务列表,那么它就会“减轻”其邻居的部分负载。

优点和缺点

根据 麻省理工学院的工程师表示,Shenango 每秒能够处理 37 万个请求,并保持 100 微秒的平均响应时间。 专家表示,在某些情况下,该技术可以将数据中心处理器的利用率提高到XNUMX%。 因此,数据中心运营商将能够节省服务器的购买和维护费用。

解决方案潜力 标记 以及其他大学的专家。 据韩国一家研究所的教授称,麻省理工学院的系统将有助于减少网络服务的延迟。 例如,它在在线商店中很有用。 在销售日,页面加载甚至会出现第二次延迟 приводит 网站浏览量减少了 11%。 及时的负载分配将有助于服务更多的客户。

该技术仍然有缺点——它不支持多处理器 NUMA-芯片连接到不同内存模块并且彼此不“通信”的系统。 在这种情况下,IOKernel 可以调节一组单独的处理器的操作,但不能调节所有服务器芯片的操作。

MIT 的新 CPU 负载平衡器
/ 照片 蒂姆·雷克曼 CC BY

类似技术

其他处理器负载平衡系统包括 Arachne。 它会计算应用程序启动时需要多少个核心,并根据该指标分配进程。 据作者称,Arachne 中应用程序的最大延迟约为 10 微秒。

该技术作为 Linux 的 C++ 库实现,其源代码可在 GitHub上.

另一个平衡工具是 ZygOS。 与 Shenango 一样,该技术使用工作窃取方法来重新分配进程。 据ZygOS的作者介绍,使用该工具时的平均应用程序延迟约为150微秒,最大值约为450微秒。 项目代码也是 属于公共领域.

发现

现代数据中心不断扩张,增长趋势在超大规模数据中心市场中尤为明显:目前在全球范围内 430 个超大规模数据中心,但未来几年其数量可能会增加 30%。 因此,处理器负载平衡技术的需求将会很大。 像 Shenango 这样的系统已经可用 实施 大公司,此类工具的数量未来只会增加。

第一个博客中关于企业 IaaS 的帖子:

来源: habr.com

添加评论