实现快速数据中心运营的更高效率

今天的数据中心耗尽并浪费了大量的能量,尽可能快地响应用户请求,只有几微秒的延迟。麻省理工学院研究人员的新系统通过在中央处理单元(CPU)内核之间更好地分配时间敏感数据处理并确保硬件高效运行,提高了高速操作的效率。

数据中心作为分布式网络运行,在单个服务器上实现了大量Web和移动应用程序。当用户向应用程序发送请求时,存储数据的位数将从数百或数千个服务中提取出来。在发送响应之前,应用必须等待最慢的服务来处理数据。这种滞后时间称为尾部延迟。

当前减少尾部延迟的方法会使服务器中的大量CPU核心处于打开状态,以快速处理传入的请求。但这意味着核心大部分时间都处于空闲状态,而服务器继续使用能源只是为了保持通电。数据中心可以包含数十万台服务器,因此即使每台服务器的效率有所改善,也可以节省数百万美元。

或者,某些系统会根据工作负载在应用程序之间重新分配核心。但这种情况发生在毫秒级 - 大约是今天快节奏请求所需速度的千分之一。等待时间过长也会降低应用程序的性能,因为在分配的时间之前未处理的任何信息都不会发送给用户。

在下周的USENIX网络系统设计和实施会议上发表的一篇论文中,研究人员开发了一种更快的核心分配系统,称为Shenango,可以减少尾部延迟,同时实现高效率。首先,一种新颖的算法可以检测哪些应用正在努力处理数据。然后,软件组件分配空闲内核以处理应用程序的工作负载。

“在数据中心,效率和延迟之间存在权衡,你真的需要以比每毫秒更精细的粒度重新分配核心,”第一作者,计算机科学和人工智能实验室(CSAIL)博士生Amy Ousterhout说。Shenango让服务器“管理在非常短的时间内发生的操作,并且有效地进行操作。”

能源和成本节省因数据中心而异,具体取决于规模和工作量。但总体目标是提高数据中心的CPU利用率,以便充分利用每个核心。目前最好的CPU利用率约为60%,但研究人员表示,他们的系统有可能将这一数字提高到100%。

“今天的数据中心利用率相当低,”共同作者,电气工程和计算机科学助理教授,CSAIL研究员Adam Belay说。“这是一个非常严重的问题[无法在数据中心的一个地方解决。但这个系统是提高利用率的关键因素之一。”

加入Ousterhout和Belay的是Hari Balakrishnan,富士通电气工程和计算机科学系讲座教授,以及CSAIL博士生Jonathan Behrens和Joshua Fried。

高效的拥塞检测

在现实世界的数据中心中,Shenango算法和软件将在数据中心的每台服务器上运行。所有服务器都能够相互通信。

该系统的第一项创新是一种新颖的拥塞检测算法。算法每隔5微秒检查排队等待处理的数据包。如果数据包仍在等待上次观察,则算法会注意到至少有5微秒的延迟。它还检查是否有任何计算进程(称为线程)等待执行。如果是这样,系统会认为这是一个“拥挤”的应用程序。

看起来很简单。但队列的结构对于实现微秒级拥塞检测非常重要。传统思维意味着让软件检查每个排队数据包的时间戳,这将花费太多时间。

研究人员在称为“环形缓冲区”的高效结构中实现队列。这些结构可以被视为环周围的不同槽。第一个输入的数据包进入起始时隙。随着新数据的到来,它们将被放入环的后续插槽中。通常,这些结构用于先进先出数据处理,从起始时隙拉出数据并向结束时隙工作。

然而,研究人员的系统只在结构中简要地存储数据包,直到应用程序可以处理它们。同时,存储的数据包可用于拥塞检查。该算法仅需要比较队列中的两个点 - 第一个数据包的位置和最后一个数据包在五微秒前的位置 - 来确定数据包是否遇到延迟。

“您可以查看这两点,并每隔5微秒跟踪一次进度,看看已经处理了多少数据,”Fried说。因为结构很简单,“你只需要每个核心执行一次。如果你正在查看24个核心,你可以在5微秒内完成24次检查,这可以很好地扩展。”

智能分配

第二项创新称为IOKernel,它是将数据包引导到适当应用程序的中央软件中心。IOKernel还使用拥塞检测算法,比传统方法更快地将内核快速分配给拥挤的应用程序数量级。

例如,IOKernel可能会看到某个需要微秒处理速度的应用程序的传入数据包。如果应用程序由于缺少核心而拥挤,那么IOKernel会立即将闲置核心用于应用程序。如果它还看到另一个应用程序正在运行具有较少时间敏感数据的核心,它将抓住其中一些核心并将它们重新分配给拥挤的应用程序。应用程序本身也有帮助:如果应用程序没有处理数据,它会向IOKernel发出警报,告知其核心可以重新分配。处理后的数据返回IOKernel以发送响应。

“IOKernel专注于哪些应用需要没有它们的内核,”Behrens说。“它试图找出谁过载并需要更多内核,并尽可能快地为它们提供核心,因此它们不会落后并且具有巨大的延迟。”

IOKernel,算法,应用程序和服务器硬件之间的紧密通信“在数据中心中是独一无二的”,并允许Shenango无缝运行,Belay说:“系统可以全面了解每台服务器中发生的情况。它看到硬件提供数据包,每个核心的运行位置,以及每个应用程序的繁忙程度。它以微秒级的速度运行。“

接下来,研究人员正在改进Shenango的实际数据中心实施。为此,他们确保软件可以处理非常高的数据吞吐量并具有适当的安全功能。