计算机新跨内核分配对时间敏感的数据处理,可快速响应用户吗?

现今的数据中心会消耗大量能量,并且会浪费大量的能量来尽可能快地响应用户的请求,而延迟只有几微秒。麻省理工学院(MIT)研究人员开发的一种新系统,通过更好地跨中央处理器(CPU)内核分配时间敏感的数据处理,并确保硬件高效运行,提高了高速操作的效率。数据中心作为分布式网络运行,在单个服务器上实现大量web和移动应用程序。当用户向应用程序发送请求时,存储的数据片段将从数百或数千个服务器上提取。在发送响应之前,应用程序必须等待最慢的服务来处理数据,这种延迟时间称为尾部延迟。当前减少尾部延迟的方法使服务器中大量CPU内核处于打开状态,以便快速处理传入的请求。

博科园-科学科普:但这意味着内核大部分时间处于闲置状态,而服务器继续使用能源只是为了保持供电。数据中心可以包含数十万台服务器,因此即使每台服务器的效率稍有提高,也可以节省数百万美元。或者,一些系统根据工作负载在应用程序之间重新分配内核。但是这发生在毫秒以上——大约是当今快节奏请求所需速度的千分之一。等待太久也会降低应用程序的性能,因为在分配的时间之前没有处理的任何信息都不会发送给用户。在USENIX网络系统设计与实现大会上发表的一篇论文中,研究人员开发了一种更快的核心分配系统,名为Shenango,它可以减少尾部延迟,同时实现高效率。

  • 麻省理工学院(MIT)研究人员开发的一个新系统,通过更好地跨CPU内核分配时间敏感的数据处理,并确保硬件高效运行,提高了数据中心高速操作的效率。图片:Massachusetts Institute of Technology

首先,一种新的算法可以检测哪些应用程序正在艰难地处理数据。然后,软件组件分配空闲内核来处理应用程序的工作负载。第一作者、计算机科学与人工智能实验室(CSAIL)的一名博士生Amy Ousterhout说:在数据中心,效率和延迟之间存在权衡,你真的需要在比每毫秒更细的粒度上重新分配内核。Shenango允许服务器“管理在非常短的时间内发生操作,并高效地执行这些操作。根据数据中心的大小和工作负载的不同,节省的能源和成本也会有所不同。但总体目标是提高数据中心的CPU利用率,使每个核心都能得到很好的利用。

目前的最佳CPU利用率约为60%,但研究人员表示,他们的系统可能会将这一数字提高到100%。电子工程和计算机科学的助理教授、CSAIL的研究员、论文的合著者Adam Belay说:现在数据中心的利用率非常低,这是一个非常严重的问题,在数据中心的一个地方是无法解决。但这个系统是提高利用率的一个关键因素。与Ousterhout和Belay一起发表论文的还有富士通电气工程和计算机科学系的讲座教授Hari Balakrishnan, CSAIL的博士生Jonathan Behrens和Joshua Fried。

高效的拥塞检测

在真实的数据中心,shenango算法和软件将在数据中心的每个服务器上运行,所有服务器将能够彼此通信。该系统的第一个创新是一种新的拥塞检测算法。该算法每5微秒检查排队等待处理每个应用程序的数据包。如果数据包仍在等待最后一次观察,该算法注意到至少有5微秒的延迟。它还检查是否有任何称为线程的计算进程等待执行。如果是这样,系统认为这是一个“拥挤”的应用程序。看起来很简单,但是队列的结构对于实现微秒级拥塞检测非常重要。传统的想法是让软件检查每个排队的数据包的时间戳,这将花费太多的时间。研究人员在称为“环形缓冲区”的有效结构中实现队列,这些结构可以想象成环上的不同槽。

第一个输入的数据包进入一个起始槽。当新的数据到达时,它们被放入环周围的后续槽中。通常,这些结构用于先入先出的数据处理,从起始槽提取数据并向结束槽工作。然而,研究人员的系统只在结构中短暂地存储数据包,直到应用程序能够处理它们。同时,存储的数据包可以用于拥塞检查。该算法只需要比较队列中的两个点(第一个数据包的位置和最后一个数据包在5微秒之前的位置)就可以确定数据包是否遇到了延迟。可以观察这两点,每5微秒跟踪它们的进程,看看有多少数据被处理过。因为结构很简单,每个核心只需要做一次。如果你查看24个核,会在5微秒内进行24次检查,这很好。

智能分配

第二个创新是IOKernel,它是将数据包引导到适当应用程序的中央软件中心。IOKernel还使用拥塞检测算法,能够比传统方法更快地将内核分配给拥塞应用程序,速度要快几个数量级。例如,IOKernel可能会看到某个应用程序需要微秒处理速度的传入数据包。如果应用程序因为缺少内核而拥塞,IOKernel会立即将空闲的内核分配给应用程序。如果它还看到另一个应用程序运行着对时间不敏感的内核,它会抓取其中一些内核,并将它们重新分配给拥塞的应用程序。处理后的数据返回IOKernel发送响应。

IOKernel关注的是哪些应用程序需要没有核心的内核,试图找出谁超载了,需要更多的核,并尽快给他们提供核,这样他们就不会落后,也不会有很大的延迟。IOKernel、算法、应用程序和服务器硬件之间的紧密通信“在数据中心中是独一无二的,并允许Shenango无缝地运行,该系统对每个服务器上发生的事情具有全局可见性。它可以看到提供数据包的硬件、每个内核中运行的内容以及每个应用程序的繁忙程度。它在微秒的尺度上做到了这一点。接下来,研究人员将对Shenango进行优化,以实现真实的数据中心。为此,他们确保软件能够处理非常高的数据吞吐量并具有适当的安全特性。

博科园-科学科普|研究/来自: 麻省理工学院/Rob Matheson

博科园-传递宇宙科学之美