Shenango系统计划在数据中心中使用。
/图片Marco Verch CC BY其中一位提供商表示,数据中心仅
使用 20-40%的可用计算能力。 在高负载下,这个数字
可以达到60% 。 资源的这种分布导致了所谓的“僵尸服务器”的出现。 这些机器大部分时间处于闲置状态,浪费能源。 如今,全球30%的服务器
无法工作 ,每年耗电300亿美元。
麻省理工学院决定应对计算资源的低效使用。
一组工程师
开发了用于处理器的负载均衡系统,称为Shenango。 其目的是监视任务缓冲区的状态,并将“阻塞”进程(无法接收处理器时间)重新分配给空闲计算机。
Shenango如何运作
Shenango是具有Rust和C ++绑定的基于C的Linux库。 项目代码和测试应用程序发布在GitHub上的
存储库中。
该解决方案的基础是IOKernel算法,该算法在多处理器系统的专用内核上运行。 它使用
DPDK框架管理CPU请求,该框架允许应用程序直接与网络设备进行交互。
IOKernel决定要传递特定任务的内核。 该算法还决定需要多少个内核。 对于每个进程,都定义了主内核(保证内核)和其他内核(可突发)-在对CPU的请求数量急剧增加的情况下启动第二个内核。
IOKernel请求队列被组织为
环形缓冲区 。 该算法每五微秒检查一次分配给内核的所有任务是否已完成。 为此,他将缓冲区“头”的当前位置与其“尾”的先前位置进行比较。 如果在上一次检查时发现尾部已经在队列中,则系统会记录缓冲区过载并为该进程分配一个附加内核。
分配负载时,将优先考虑较早执行了相同过程且部分保留在高速缓存中的内核,或所有空闲内核。

Shenango还采取了
偷工的方法。 为一个应用程序的运行分配的内核相互监视任务的数量。 如果一个内核比其他内核更早完成其任务列表,则它将“负荷”从其邻居“移走”。
优缺点
据麻省理工学院的工程师说,Shenango每秒能够处理500万个请求,并且平均响应时间为37微秒。 专家说,在某些情况下,该技术可以将数据中心中的处理器利用率提高到100%。 因此,数据中心运营商将能够节省服务器的购买和维护费用。
其他大学
的专家也
指出了可能的解决方案。 韩国研究所的一位教授说,麻省理工学院的系统将有助于减少Web服务工作的延迟。 例如,它在在线商店的运营中很有用。 在销售的日子里,即使页面加载出现第二次延迟,也会
导致网站浏览量减少11%。 在线负载平衡将帮助服务更多的客户。
该技术仍然有缺点-它不支持多处理器
NUMA系统,在该系统中,芯片连接到不同的内存模块,并且彼此之间无法“通信”。 在这种情况下,IOKernel可以管理一组单独的处理器的运行,但不能管理所有服务器芯片。
/摄影Tim Reckmann CC BY类似技术
在其他处理器负载平衡系统中,可以区分Arachne。 它计算应用程序在启动时需要多少个内核,并根据该指标分配进程。 这组作者说,Arachne中的最大应用程序等待时间约为10,000微秒。
该技术被实现为Linux的C ++库,其源代码位于
GitHub上 。
另一个平衡工具是ZygOS。 像Shenango一样,技术也使用偷窃工作的方法来重新分配流程。 根据ZygOS的作者所说,使用该工具时应用程序的平均延迟约为150微秒,最大约为450微秒。 项目代码也
属于公共领域 。
结论
现代数据中心不断扩展,特别是在超大规模数据中心市场中,上升趋势十分明显:目前,世界上
有 430个超大规模数据中心,但在未来几年中,其数量可能会增长30%。 因此,将非常需要CPU负载平衡技术。 像Shenango这样的系统已经
由大公司
实施 ,并且将来此类工具的数量只会增加。
第一个公司IaaS博客中的帖子: