在瞬时工作负荷尖峰期间将工作负荷分发到硬件加速器的制作方法

未命名 09-16 阅读:127 评论:0

在瞬时工作负荷尖峰期间将工作负荷分发到硬件加速器


背景技术:

1.硬件加速器可以指为执行特定功能而设计的计算机硬件。硬件加速器的示例包括智能网络接口卡(smartnic)、图形处理单元(gpu)、张量处理单元(tpu)、数据处理单元(dpu)、网络加速器等。通常,硬件加速器具有比在诸如服务器的通用计算机中使用的计算单元(即,cpu)更小的处理核。虽然硬件加速器通常比通用计算机便宜,但它们的计算能力较小。
2.基于物联网(iot)的解决方案和应用的爆炸式增长继续驱动边缘计算系统的增长。iot边缘应用采用无服务器框架的情况也在增长。然而,事实证明,短暂地供应添加的边缘计算需求是一项艰巨的任务。
附图说明
3.根据一个或多个不同实施例,参考以下附图详细描述本公开。这些附图仅用于说明的目的,并且仅描述了典型或示例实施例。
4.图1描绘了根据当前公开的技术的各种示例的示例边缘计算系统。
5.图2描绘了根据当前公开的技术的各种示例的示例尖峰编排平台。
6.图3描绘了根据当前公开的技术的各种示例的在容器化环境中实现的示例边缘计算系统。
7.图4是示出了根据当前公开的技术的各种示例的工作负荷预测过程和尖峰编排控制系统之间的交互的框图。
8.图5是示出了根据各种示例的可以由尖峰编排平台执行以在瞬时工作负荷尖峰期间在计算系统的计算节点之间分发工作负荷的示例操作的示例流程图。
9.图6是示出了根据各种示例的图5的尖峰编排平台的组件的示例系统图。
10.图7是示出了根据各种示例的可以由尖峰编排平台执行以在瞬时工作负荷尖峰期间在计算系统的计算节点之间分发工作负荷的示例操作的另一示例流程图。
11.图8是示出了根据各种示例的图7的尖峰编排平台的组件的示例系统图。
12.图9是示出了根据各种示例的可以由尖峰编排平台执行以在瞬时工作负荷尖峰期间在边缘计算系统的计算节点之间分发查询的示例操作的另一示例流程图。
13.图10是示出了根据各种示例的图9的尖峰编排平台的组件的示例系统图。
14.图11是可以被用以实现本公开中描述的实施例的各种特征的示例计算组件。
15.这些附图并非详尽无遗,并且不将本公开限于所公开的确切形式。
具体实施方式
16.边缘计算系统的瞬时工作负荷尖峰(例如,计算资源需求的短暂突发)通常会使边缘计算系统(通常是边缘服务器)的计算资源不堪重负,从而导致响应/服务时间变慢。这种性能下降通常会导致服务级别协议(sla)违反。sla可以指的是服务提供方和一个或多个客户之间的合同,该合同描述了服务提供方将维护的质量标准(例如,服务时间/查询响应时
间、服务速率/查询响应速率、请求到达间隔时间、服务可用性等)。sla违反可能会导致严厉的处罚(例如,经济处罚、服务积分等)。因此,消除sla违反的常见方法是通过部署比处理边缘计算系统的典型工作负荷所需的更多的边缘服务器来过度分配计算资源。这导致可能非常昂贵的资源得不到充分利用。
17.硬件加速器通常比像边缘服务器之类的通用计算机便宜,但计算能力/容量较小。作为结果,硬件加速器通常具有比边缘服务器更长的服务时间(如在本文使用的,服务时间可以指计算单元响应客户端查询所花费的时间量)。因此,尽管硬件加速器(例如,smartnic)已经被用以支持具有某些联网功能(例如,生成分组报头、转发分组等)的边缘服务器,但它们尚未被用以非联网功能(例如,响应客户端/客户查询或其他特定于应用的工作负荷)。换言之,硬件加速器在执行特定任务时可以非常熟练,但在通用计算方面则不太熟练。作为类比,就像餐馆的会计可能非常擅长记账一样,他在其他与餐馆相关的工作上可能不那么熟练,比如上桌子、准备食物等。因此,餐馆的会计通常在晚餐服务期间被降级到后台办公室。
18.然而,当餐厅突然迎来顾客高峰时,即使是最好的厨师和服务员也可能不堪重负。类似地,当边缘计算系统的边缘服务器接收到瞬时工作负荷尖峰(例如,客户查询的突然尖峰)时,它们的服务时间将增加,有时会显著增加。瞬时工作负荷尖峰期间服务时间的增加可能会导致sla违反。如当前公开的技术的示例所理解的,在许多情况下,在正常(即,非尖峰)工作负荷下,过载边缘服务器的服务时间将超过硬件加速器的服务时间。扩展上面餐厅的类比,目前公开的技术的示例认识到,当餐厅经历突然的顾客高峰时,为了改善整个餐厅的服务时间,会计(甚至可能是他的一些会计朋友)应该被递给服务员的制服或厨师的外套,并给予展现的机会。
19.因此,当前公开的技术的示例提供了一种计算系统,其战略性地部署硬件加速器的未开发的计算能力以管理瞬时工作负荷尖峰(该计算系统可以是边缘计算系统,但也可以在非边缘环境中实现)。换言之,示例提供了一种低成本且可扩展的计算平台,该平台在瞬时工作负荷尖峰期间编排将工作负荷(例如,无服务器查询)无缝卸载到硬件加速器。通过使用硬件加速器作为短期紧急缓冲器,示例改进了现有方法,这些方法部署了更昂贵且经常严重未充分利用的服务器用于这些紧急目的。因此,示例可以减少sla违反的发生,同时最大限度地减少计算能力方面的资本支出。
20.在各种示例中,提供了包括一个或多个服务器和一个或多个硬件加速器的计算系统。在某些示例中,在没有瞬时工作负荷尖峰的情况下,服务器可以服务于所有(或基本上所有)接收到的客户端工作负荷(即,特定于应用的工作负荷)。计算平台还可以包括尖峰编排平台,该平台包括(i)业务分发模块、(ii)工作负荷预测模块和(iii)尖峰编排模块。该尖峰编排平台可以在(多个)服务器和(多个)硬件加速器之间以避免在瞬时工作负荷尖峰(例如,短暂的查询突发)期间sla违反的方式来编排接收到的客户端工作负荷。
21.在某些示例中,上述计算系统可以在容器化工作负荷环境中实现。容器是用于将应用及其所有必要文件捆绑到一个运行时环境中的技术。诸如kubernetes和docker的容器化工作负荷平台便于管理容器化应用。因此,示例可以利用这些容器化工作负荷平台来跨计算系统的(多个)服务器和(多个)硬件加速器分发工作负荷容器。因此,可以将工作负荷分发到这些工作负荷容器,以确保不会有工作负荷容器在尖峰期间变得不堪重负。在一些
示例中,在预测的瞬时工作负荷尖峰的预期下对工作负荷进行主动管理可以涉及在瞬时工作负荷尖峰到达之前启动硬件加速器的一个或多个工作负荷容器。如下所述,这可以减少在瞬时工作负荷尖峰期间冷启动时延的影响。
22.如上所述,当前公开的技术的示例可以被推广到跨多个服务器和不同类型的硬件加速器(例如,基于soc的smartnic、基于asic的smartnic、gpu、网络加速器等)的计算系统。换言之,示例可以跨异构性的不同维度扩展应用卸载。与传统计算系统架构和部署相比,这种方法可以确保竞争优势。
23.图1描绘了根据当前公开的技术的各种示例的示例边缘计算系统。边缘计算系统100包括服务网关102、计算节点110和尖峰编排平台120。如将结合图3更详细地描述的,在各种示例中,边缘计算系统100可以被部署在容器化工作环境中。
24.服务网关102可以是从网络接收查询并将其分发到计算节点110的网络组件(硬件或软件)。这里,查询可以指由客户端发送的对计算资源的需求。在某些示例中,这样的查询可以是函数调用(对于后台,无服务器平台允许将给定应用打包为一个或多个容器,并作为函数进行管理。在函数在无服务器平台中已经被部署后,客户端可以通过发送“无服务器查询”来调用它们。例如,键-值存储(kvs)可以是打包为一个或多个容器的无服务器函数。客户端可以通过发送无服务器查询来调用kvs函数。当传入查询增加时-无服务器平台可以扩展kvs容器的数目,以平衡/管理传入的工作负荷增加)。
25.计算节点110包括边缘服务器114和硬件加速器112。虽然在图1的示例中仅描绘了一个边缘服务器,但在其他示例中,计算节点110可以包括附加的边缘服务器。类似地,计算节点110可以包括任何数目的硬件加速器。在计算节点110包括多个硬件加速器的情况下,硬件加速器可以是相同类型(即,同构)或不同类型(即,异构)。
26.边缘服务器114可以是在边缘环境中操作的服务器。在各种示例中,边缘服务器114可以包括能够托管硬件加速器112的一个或多个pcie总线。
27.硬件加速器112可以是与边缘服务器114相关联的硬件加速器。例如,硬件加速器112可以托管在边缘服务器114的pcie总线上。如上所述,硬件加速器可以指被设计为执行特定功能的计算机硬件。硬件加速器的示例包括智能网络接口卡(smartnic)、图形处理单元(gpu)、张量处理单元(tpu)、数据处理单元(dpu)、网络加速器等。
28.通常,硬件加速器具有比在诸如服务器的通用计算机中使用的计算单元(即,cpu)更小的处理核。虽然硬件加速器通常比通用计算机便宜,但它们的计算能力较小。因此,硬件加速器112可能比边缘服务器114更便宜,但功能更弱。作为结果,在典型工作负荷(即,非尖峰工作负荷)下,硬件加速器112可以具有比边缘服务器114更长的服务时间(如本文所使用的,服务时间可以指的是计算单元响应查询或其他特定于应用的工作负荷所花费的时间量)。因此,当边缘计算系统100在正常工作负荷下操作时(即,当服务网关102接收到系统的典型查询速率时),边缘服务器114可以为服务网关102接收的所有(或基本上所有)查询提供服务。然而,当边缘计算系统100经历瞬时工作负荷尖峰时(即,当服务网关102接收到查询尖峰时),边缘服务器114的服务时间可能增加到超过硬件加速器112的服务时间。
29.为了说明此概念,考虑涉及两个查询a和b的简化示例。在典型的工作负荷(即,非尖峰工作负荷)下,硬件加速器112可能分别花费4秒和7秒来服务查询a和b。相比之下,在典型工作负荷下,边缘服务器114可能分别花费1秒和5秒来服务查询a和b。因此,如果两个查
询都由边缘服务器114服务,则边缘计算系统100的总体服务时间减少。然而,在过载状态(如其可能在瞬时工作负荷尖峰期间进入)中,边缘服务器114可能花费3秒和8秒来服务查询a和b。因此,在尖峰期间,查询a应该被分发到边缘服务器114,并且查询b应该被分发到硬件加速器112(这假设硬件加速器112没有处于过载状态)。
30.扩展上的面说明,边缘计算系统100可以具有指定服务时间不能超过7.5秒的sla协议。因此,为了避免在瞬时工作负荷尖峰期间的sla违反,查询b必须被分发到硬件加速器112。如下所述,尖峰编排平台120可以执行在前面段落中描述的分析的版本。
31.尖峰编排平台120可以是管理边缘服务器114和硬件加速器112之间的查询分发的软件或硬件计算平台。在某些示例中,尖峰编排平台120可以在边缘服务器114和硬件加速器112的任何一项或组合上实现。在其他示例中,尖峰编排平台120可以在边缘服务器114和硬件加速器112的外部实现。
32.如将结合图2更详细地描述的,尖峰编排平台120可以包括(i)业务分发模块、(ii)工作负荷预测模块和(iii)尖峰编排模块。这些模块一起可以以避免在瞬时工作负荷尖峰期间的sla违反的方式来编排由边缘计算系统100接收的查询的分布。
33.图2描绘了根据当前公开的技术的各种示例的作为边缘计算系统200的一部分实现的示例尖峰编排平台210。
34.边缘计算系统200可以包括一个或多个边缘服务器以及服务边缘计算系统200接收的查询的一个或多个硬件加速器。可以将(多个)边缘服务器和(多个)硬件加速器统称为边缘计算系统200的计算节点。在某些示例中,尖峰编排平台210可以在边缘计算系统200的计算节点上实现。在其他示例中,尖峰编排平台210可以在边缘计算系统200的计算节点的外部实现。
35.尖峰编排平台210(其可以与图1的尖峰编排平台120相同/相似)可以包括业务分发模块212、工作负荷预测模块214和尖峰编排模块216。如上所述,尖峰编排平台210可以被用以编排接收到的查询在边缘计算系统200的计算节点之间的分布。
36.业务分发模块212:业务分发模块212可以在边缘计算系统200的计算节点之间分发查询。
37.如上所述,在正常(即,非尖峰)工作负荷期间,业务分发模块212可以将所有(或基本上所有)接收到的查询分发到边缘计算系统200的边缘服务器。如上所述,当在非尖峰工作负荷下运行时,边缘服务器通常能够比硬件加速器更快地处理查询。然而,在瞬时工作负荷尖峰(有时为其预期)期间,尖峰编排模块216可以指示业务分发模块212将接收到的查询的一部分分发到边缘计算系统200的硬件加速器。
38.在各种示例中,业务分发模块212可以利用启发式方法来避免将查询分发到由于瞬时工作负荷尖峰而具有高服务时间的计算节点。在某些示例中,这可以涉及使用排队方法,该排队方法基于计算节点各自的服务时间将查询分发到计算节点。例如,假设查询到达边缘计算系统200时的到达率为λ(每秒查询数)。边缘计算系统200的计算节点的服务速率(其为1/服务时间)可以由μi(每秒查询数)来表示。每个计算节点处的队列可以表示为m/m/1。因此,使得每个队列的逗留时间(即,等待时间)相等的最优业务分发可以表示如下:
39.λ
1-μ1=λ
2-η240.换言之,n个工作节点上的最优业务分发可以表示如下:
[0041][0042]
即,业务分发器向系统中的每个工作节点i发送具有λi(每秒查询数)的到达率的查询。
[0043]
工作负荷预测模块214:工作负荷预测模块214(将结合图4更详细地描述)可用于预测未来的瞬时工作负荷尖峰。在某些示例中,工作负荷预测模块214可以使用与由边缘计算系统200接收的过去查询相关的监测历史数据来进行瞬时工作负荷尖峰预测。
[0044]
工作负荷预测模块214可以使用任何数目的预测模型来预测未来的瞬时工作负荷尖峰。例如,工作负荷预测模块214可以利用向量回归(svr)预测模型,该模型基于由边缘计算系统200接收到的过去查询来预测瞬时工作负荷尖峰。在另一示例中,工作负荷预测模块214可以使用经训练以基于历史观察进行预测的深度学习模型(例如,深度神经网络)。
[0045]
在某些示例中,工作负荷预测模块214使用的预测模型可以基于在w个时间单位的窗口大小上对工作负荷的过去观察。工作负荷预测模块214可以基于工作负荷随时间的变化动态地改变该时间窗口大小。例如,如果当前窗口上的工作负荷变化小于10%,则可以增加训练窗口大小,如果工作负荷变化大于20%,则可以减小训练窗口大小。
[0046]
如下所述,尖峰编排模块216可以利用由工作负荷预测模块216作出的预测来确保以避免在瞬时工作负荷尖峰期间的sla违反的方式将查询分发到计算节点。
[0047]
尖峰编排模块216:尖峰编排模块216可以在边缘计算平台200的计算节点之间以避免在瞬时工作负荷尖峰期间的sla违反的方式来编排接收到的查询的分布。如上所述,这可以涉及指示业务分发模块212(例如,向业务分发模块212发送信号)在瞬时工作负荷尖峰(有时为其预期)期间将查询的一部分分发到边缘计算系统200的硬件加速器。通过将查询的一部分分发到硬件加速器,尖峰编排平台210可以确保边缘计算平台200的边缘服务器在瞬时工作负荷尖峰期间不会变得不堪重负/过载。如上所述,当边缘服务器变得过载时,它的服务时间可能会急剧增加,这可能会导致边缘计算系统的sla违反。
[0048]
在各种示例中,尖峰编排模块216可以利用工作负荷预测器214的预测以及边缘计算平台200的计算节点的监测资源利用率度量来进行编排。
[0049]
因此,在某些示例中,尖峰编排模块216可以包括资源监测模块。资源监测模块可以周期性地监测每个计算节点的资源利用率度量。如本文所使用的,资源利用率度量通常可以指与能够测量或观察的计算节点(例如,边缘服务器、硬件加速器,以及在涉及容器化工作负荷的示例中,边缘服务器/硬件加速器的容器)相关的度量。资源利用率度量的非限制性示例包括qos度量(例如,分组丢失、比特率、错误率、吞吐量、传输延迟、延迟变化、可用性、抖动、时延等)、sla度量(例如,服务时间/查询响应时间、服务速率/查询响应速率、请求到达间隔时间、服务可用性、缺陷率、安全性能、数据率、吞吐量、抖动、平均无故障时间、平均修复时间、平均恢复时间等)或其他应用性能度量(例如,平均服务时间/响应时间、错误率,应用实例计数、请求速率、应用cpu/存储器/带宽利用率、应用可用性、垃圾收集、并发用户数、已用/可用资源等)。
[0050]
在某些示例中,尖峰编排模块216可以将边缘计算系统200的计算节点的资源利用率度量与资源利用率度量的对应阈值进行比较。在一些示例中,这些阈值可以对应于sla规范。
[0051]
例如,与边缘计算系统200相关联的sla可以指定服务时间不能超过7.5秒。因此,尖峰编排模块216可以将边缘计算系统200的每个计算节点的监测服务时间与7.5秒的阈值服务时间值进行比较。如果计算节点的服务时间开始接近7.5秒,则尖峰编排模块216可以确保将查询/工作负荷重新分布到边缘计算系统200的其他计算节点,以避免sla违反。以相同/相似的方式,尖峰编排模块216可以同时比较其他监测资源利用率度量(例如,错误率、服务可用性等)。对照相应的sla规范,以确保分布查询/工作负荷,以避免sla违反。
[0052]
在一些示例中,尖峰编排模块216可以针对瞬时工作负荷尖峰来预测/预期边缘计算平台200的计算节点的资源利用率度量。尖峰编排模块216可以基于监测资源利用率度量和瞬时工作负荷尖峰预测来进行这些预测。在各种示例中,工作负荷预测模块214可以代替尖峰编排模块216(或除了尖峰编排模块216之外)来预测/预期资源利用率度量。
[0053]
为了概念说明,考虑边缘计算系统200的计算节点的任务是服务查询a1…an
,它们需要大致相同的计算能力来提供服务(换言之,在给定的工作负荷下,每个查询的服务时间应该大致相同)。在该简化示例中,边缘计算系统200的计算节点可以包括单个边缘服务器和一个或多个硬件加速器。在非尖峰工作负荷下,边缘计算系统200的单个边缘服务器可以服务所有或基本上所有查询a1…an
。在给定时间t1,边缘计算系统200接收查询的速率可以是x1(这里,边缘计算系统200接收查询的速率可以用作针对工作负荷的代理)。对于在时间t1接收到的所有查询,边缘服务器可以具有cpu利用率y1(这里,给定计算节点的cpu利用率可以用作针对该计算节点之下的工作负荷的代理)。在cpu利用率y1处,边缘服务器可以具有0.3秒的服务速率。如上所述,尖峰编排模块216可以监测本段中描述的所有资源利用率度量。
[0054]
尖峰编排模块216然后可以从工作负荷预测模块214获取将在时间t2处存在瞬时工作负荷尖峰的预测。具体地,工作负荷预测模块214可以预测在时间t2处,边缘计算系统200接收查询的速率可以跳到5x1(即,5乘以x1)。基于已知的映射或获知的分析,尖峰编排模块216可以预测,如果边缘服务器的cpu利用率在瞬时工作负荷尖峰期间继续处理所有查询,则其将跳到6.5y1。基于该信息,尖峰编排模块可以预测在cpu利用率为6.5y1时,边缘服务器用于查询a1…an
的服务时间将涌到2秒。换言之,尖峰编排模块216可以预测边缘服务器的服务时间在预测的瞬时工作负荷尖峰期间将增加到2秒,除非接收到的查询的一部分被分发到边缘计算系统200的硬件加速器。2秒的服务时间可能违反sla,该sla规定服务时间不得超过1.5秒。
[0055]
然而,通过在预测的瞬时工作负荷尖峰期间(有时在其之前)将接收到的查询的一部分分发到其他计算节点,尖峰编排模块216可以降低边缘服务器接收查询的速率,并由此降低其cpu利用率。在此降低的cpu使用率下,边缘服务器针对查询a1…an
的服务时间可能会下降到更接近0.3秒的值。此外,尖峰编排模块216可以在多个硬件加速器之间编排“溢出”查询,以确保没有一个硬件加速器达到其服务时间超过2秒的cpu利用率。这里,即使硬件加速器的服务时间(例如,1.1秒)与边缘服务器在非尖峰工作负荷下的服务时间(即,0.3秒)相比相对较高,也不是主要问题,因为根据定义,瞬时工作负荷将仅持续很短的时间。因此,硬件加速器及其相对较高的服务时间将仅用于短突发,不会对客户体验产生显著影响。
[0056]
图3是概念性地描绘边缘计算系统300的各种功能单元的框图,其中根据当前公开的技术的各种示例,尖峰编排平台的异构集群(例如,集群330)可以跨边缘服务器(例如,边
缘服务器310)和硬件加速器(例如,硬件加速器320)分布。如上所述,图3示出了如何在容器化工作环境中实现尖峰编排平台(诸如结合图1和图2描述的尖峰编排平台)的示例。
[0057]
容器是用于将应用及其所有必要文件捆绑到一个运行时环境中的技术。诸如kubernetes和docker的容器化工作负荷平台可以便于管理容器化应用程序。
[0058]
因此,图3的尖峰编排平台可以利用任何可用的容器化工作负荷平台,包括但不限于k8s、k3s、kubeedge、docker等。
[0059]
在本示例的上下文中,集群330(例如,kubernetes集群)包括边缘服务器310内的工作负荷容器313a-n和硬件加速器320内的工作负荷容器323a-n。虽然在本示例中,集群330的工作负荷容器分布在一个边缘服务器和一个硬件加速器上,但是集群330的工作负荷容器可以分布在一个或多个边缘服务器和一个或多个硬件加速器上。
[0060]
这里,集群330可以被称为异构,因为它的各种工作负荷容器可以具有不同的计算能力。具体地,硬件加速器320的工作负荷容器可以具有比边缘服务器310的工作负荷容器更小的计算能力。如上所述,这可能是因为边缘服务器310包括比硬件加速器320更大的处理核。
[0061]
集群330还可以包括表示到集群330的入口点的应用编程接口(api)网关340。api网关340可以实现api(例如,基于超文本传输协议(http)的表述性状态传输(rest)api)。由客户端(未示出)发起的查询可以首先以调用api的方法的http请求的形式到达api网关340,例如,对应于在集群330内实现的各种无服务器功能。
[0062]
在某些示例中,业务分发器341可以在api网关340上运行。这里,业务分发器341可以执行与结合图1和图2描述的业务分发器模块相同/相似的功能。具体地,业务分发器341可以根据它们的计算能力在集群330的工作负荷容器之间分发在api网关340处接收的查询。如上所述,这可以涉及在非尖峰工作负荷期间将查询分发到边缘服务器310的工作负荷容器。然而,在瞬时工作负荷尖峰(有时为其预期)期间,业务分发器341可以将查询的一部分分发到硬件加速器320的工作负荷容器。在各种示例中,接收到的查询可以是特定于应用的。
[0063]
在图3的示例中,边缘服务器310还包括各种模块,其包括尖峰编排平台。具体地,边缘服务器310包括调度模块312、工作负荷预测模块314、资源监测模块315和尖峰编排模块316。边缘服务器310还包括历史数据库317。在各种示例中,资源监测模块315可以向历史数据库317提供信息(在某些示例中,该信息可以是特定于应用的),在历史数据库317中,工作负荷预测模块314和尖峰编排模块316可以利用该信息来进行预测。如上所述,尖峰编排平台的各种模块可以在边缘计算系统的(多个)边缘服务器和(多个)硬件加速器上实现。因此,边缘服务器310内描述的模块也可以在硬件加速器320中实现。
[0064]
这里,工作负荷预测模块314、资源监测模块315和尖峰编排模块316可以与结合图1-图2描述的它们的对应模块相同/相似。
[0065]
调度模块312可以使用基于队列的方法来调度针对集群330的各种工作负荷容器的查询/工作负荷。如上所述,在预期由工作负荷预测模块314预测的瞬时工作负荷尖峰的情况下,尖峰编排模块316可以确定避免在预测的瞬时工作负荷尖峰期间的sla违反的查询分布。一旦确定,执行该分发可以需要在服务/处理工作负荷容器之前对查询进行排队。因此,调度模块312可以通过调度这样的队列来协助。
[0066]
在各种示例中,尖峰编排模块316可以通过在瞬时工作负荷尖峰到达之前启动新的工作负荷容器来减轻冷启动时延的影响。
[0067]
冷启动时延可以指空闲工作负荷容器(即,在较长时间段内未使用的工作负荷容器)花费更长时间来服务/处理其接收的工作负荷的初始子集(例如,无服务器功能)的现象。从概念上讲,这类似于“冷启动”内燃机。工作负荷容器和内燃机都不会在尖峰性能下运行,直到它们通过在负荷之下运行来“预热”。减轻冷启动时延影响的一种方式是保持启动的容器针对将来的工作负荷/函数调用为“热的”。然而,在空闲时间加热容器可能会浪费宝贵的计算资源。
[0068]
在当前公开的技术的示例中,当查询首次被分发到驻留在硬件加速器320中的工作负荷容器时,可能会出现冷启动时延的问题。如上所述,在某些示例中,边缘服务器310的工作负荷容器可以服务于集群330接收的针对非尖峰工作负荷的所有(或基本上所有)查询。假设瞬时工作负荷尖峰相对不频繁,这可能意味着硬件加速器320的工作负荷容器在相当长的时间段内没有执行功能(即,服务查询)。换言之,它们可能会变冷。因此,在没有足够的预见性的情况下,在瞬时工作负荷尖峰期间,查询可能首先被分发到硬件加速器320的工作负荷容器中,之后它们还没有机会进行“预热”。因此,启动工作负荷容器的服务/响应时间可能会异常高。在硬件加速器320的工作负荷容器通过设计仅在非常短的时间内(即,在瞬时工作负荷尖峰期间)服务查询的情况下,该问题可能特别严重。
[0069]
然而,如上所述,工作负荷预测模块314和尖峰编排模块316可以协同工作以(1)在它们发生之前预测未来的瞬时工作负荷尖峰;以及(2)在瞬时工作负荷尖峰到达之前启动(即,“预热”)硬件加速器320的工作负荷容器。以此方式,可以在瞬时工作负荷尖峰本身(即,集群330的计算资源处于最紧张状态的时间段)期间缓解冷启动时延。
[0070]
图4是示出根据当前公开的技术的各种示例的工作负荷预测过程433和尖峰编排控制系统438之间的交互的框图。工作负荷预测过程433和尖峰编排控制系统438可以被实现为边缘计算系统400的一部分。
[0071]
工作负荷预测过程433是先前附图的工作负荷预测模块的非限制性示例。取决于特定实现,可以在边缘服务器或边缘计算系统400的硬件加速器中的一个硬件加速器上执行工作负荷预测过程433。通常,工作负荷预测过程433执行对未来工作负荷的估计,尖峰编排控制系统438可以使用该估计来编排在瞬时工作负荷尖峰(有时为其预期)期间查询的分布。因此,工作负荷预测过程433的输出可以是由尖峰编排控制系统438发送的控制信号(439),该控制信号具有将接收到的查询的一部分分发到边缘计算系统400的(多个)硬件加速器的指令。
[0072]
在某些示例中,尖峰编排控制系统438可以是确定查询的最优分布的反馈控制系统,其允许边缘计算系统400在避免sla违反的同时处理估计的未来瞬时工作负荷尖峰。尖峰编排控制系统438可以基于预期由未来瞬时工作负荷尖峰消耗的资源量和计算节点的计算能力来确定查询的该最佳分布。
[0073]
在一些示例中,可以采用基于主动控制理论的方法,其中预测模型(例如,机器学习预测模型435)促进处置波动的工作负荷和资源利用率。工作负荷预测过程433的输入431可以包括目标资源利用率度量值、过去的查询历史和对应于过去的查询历史的资源利用率度量值的过去值中的一项或多项。工作负荷预测过程433的输出437可以是估计在未来时间
或在未来时间之前接收的多个未来查询的形式。然后,可以将输出437用作对尖峰编排控制系统438的输入,以确定输出439。输出439可以是具有指令的控制信号,该指令在预测的瞬时工作负荷尖峰(有时为其预期)期间将查询的一部分分发到边缘计算系统400的(多个)硬件加速器。
[0074]
在各种示例中,尖峰编排控制系统438可以包括作为反馈控制回路的一部分的控制器。控制器的非限制性示例包括比例-积分-导数(pid)控制器和比例积分(pi)控制器。pi控制器是不使用误差导数的pid控制器的特例。
[0075]
机器学习预测模型435可以利用各种机器学习技术来提前预测瞬时工作负荷尖峰。这些技术可以包括,作为非限制性示例,支持向量回归(svr)模型和深度学习模型,这些模型可以被训练以基于历史观察进行预测。在无服务器框架中,由于预测阶段的任何延迟都会影响性能,因为它增加了容器启动时延的更多延迟,因此预测时间可能是选择适当的机器学习预测模型时要考虑的因素。由于经验数据表明,为了预测云工作负荷(部分由于dnn的训练和预测开销),svr模型是最准确的机器学习算法,这里提供的各种示例参考svr模型的使用来描述。根据一个示例,可以使用径向基函数(rbf)svr内核来训练机器学习预测模型435以预测瞬时工作负荷尖峰。在其他示例中,可以使用各种其他svr内核,包括但不限于线性、多项式和sigmoid svr内核。
[0076]
图5是示出根据各种示例的可以由尖峰编排平台执行以在瞬时工作负荷尖峰期间在计算系统的计算节点之间分发工作负荷的示例操作的示例流程图。在某些示例中,尖峰编排平台可以在计算系统上实现,但在其他示例中,尖峰编排平台可以在计算系统外部实现。作为图5的补充,图6是示出根据各种示例的尖峰工作负荷编排器600的组件的示例系统图。
[0077]
在步骤502处,尖峰编排平台可以基于关于由计算系统接收到的过去工作负荷的监测历史数据来预测瞬时工作负荷尖峰。在各种示例中,步骤502可以由尖峰工作负荷编排器600的工作负荷尖峰预测模块602执行。
[0078]
计算系统可以包括服务器和硬件加速器。在各种示例中,计算系统可以包括多于一个的服务器和/或多于一个的硬件加速器。在某些示例中,服务器可以包括能够托管硬件加速器的一个或多个pcie总线。
[0079]
如上所述,服务器可以是在边缘计算环境中操作的边缘服务器(同样,计算系统可以是边缘计算系统)。然而,本领域的普通技术人员将理解,上述技术一般可以应用于在边缘环境之外操作的计算系统/服务器。
[0080]
硬件加速器可以是与服务器相关联的硬件加速器。例如,硬件加速器可以托管在边缘服务器的pcie总线上。
[0081]
如上所述,硬件加速器可以指被设计为执行特定功能的计算机硬件。硬件加速器的示例包括智能网络接口卡(smartnic)、图形处理单元(gpu)、张量处理单元(tpu)、数据处理单元(dpu)、网络加速器等。在硬件加速器是smartnic的情况下,它可以是各种类型的smartnic(例如,基于片上系统的smartnic、基于asic的smartnic、基于fpga的smartnic等)。
[0082]
瞬时工作负荷尖峰可以指对计算系统的计算资源的需求的短暂突发。如上所述,这些要求可以采取接收到的工作负荷的形式。在计算系统在边缘环境中操作的情况下,这
些工作负荷可以包括无服务器客户端查询。
[0083]
尖峰编排平台可以上述任何方式基于关于过去工作负荷的监测历史数据来预测瞬时工作负荷尖峰。例如,spek编排平台可以利用支持向量回归(svr)预测模型。
[0084]
如上所述,在某些示例中,关于过去工作负荷的监测历史数据可以是特定于应用的。换言之,计算系统可以接收针对给定应用的工作负荷的子集。针对给定应用的工作负荷可以比较一致。因此,通过使用特定于应用的历史信息,尖峰编排平台可以能够更准确地调节其对瞬时工作负荷尖峰的预测。例如,尖峰编排平台可以能够更准确地预测瞬时工作负荷尖峰将出现的时间以及尖峰的大小(例如,每秒工作负荷中的工作负荷到达率)。
[0085]
在步骤504处,尖峰编排平台可以监测服务器的资源利用率度量的值。在各种示例中,步骤504可以由尖峰工作负荷编排器600的资源利用率度量监测模块604执行。
[0086]
通常,尖峰编排平台可以周期性地监测计算系统的每个计算节点的资源利用率度量。这里,尖峰编排平台可以周期性地监测服务器以及硬件加速器的一个或多个资源利用率度量。
[0087]
资源利用率度量通常可以指与能够测量或观察的计算节点(例如,服务器、硬件加速器,以及在涉及容器化工作负荷的示例中,服务器/硬件加速器的容器)有关的度量。资源利用率度量的非限制性示例包括qos度量(例如,分组丢失、比特率、错误率、吞吐量、传输延迟、延迟变化、可用性、抖动、时延等)、sla度量(例如,服务时间/工作负荷响应时间、服务速率/工作负荷响应速率、请求到达间隔时间、服务可用性、缺陷率、安全性能、数据速率、吞吐量、抖动、平均无故障时间、平均修复时间、平均恢复时间等)或其他应用性能度量(例如,平均服务时间/响应时间、错误率,应用实例计数、请求速率、应用cpu/存储器/带宽利用率、应用可用性、垃圾收集、并发用户数、已用/可用资源等)。
[0088]
如上所述,尖峰编排平台可以监测服务器的资源利用率度量值以避免sla违反。例如,特定的sla可以指定应用a的服务时间不能超过1.5秒。因此,如果尖峰编排平台检测到服务器的服务时间接近1.5秒,则尖峰编排平台可以将一个或多个工作负荷分发到硬件加速器以抑制尖峰。
[0089]
如下所述,尖峰编排平台还可以使用监测资源利用率度量值来对资源利用率度量值进行预测。
[0090]
因此,在步骤506处,尖峰编排平台可以预测资源利用率度量值的值将在预测的瞬时工作负荷尖峰之前或期间的某个时间超过针对资源利用率度量的阈值,除非一个或多个工作负荷被分发到硬件加速器。在各种示例中,步骤506可以由尖峰工作负荷编排器600的资源利用率度量预测模块606来执行。
[0091]
如结合图2所述,尖峰编排平台可以预测/预期瞬时工作负荷尖峰的资源利用率度量值。尖峰编排平台可以基于监测资源利用率度量值和瞬时工作负荷尖峰预测来进行这些预测。
[0092]
例如,尖峰编排平台可以预测在时间t2处将存在瞬时工作负荷尖峰。根据已知的映射或获知的分析,尖峰编排平台可以预测,如果在瞬时工作负荷尖峰期间继续处理所有工作负荷,服务器的cpu利用率将增加5倍。基于该信息,尖峰编排模块可以预测服务器的服务时间将涌至2秒。换言之,尖峰编排平台可以预测服务器的服务时间将增加到2秒,除非将一个或多个接收到的工作负荷分发到硬件加速器。这里,2秒的服务时间可能超过1.5秒的
阈值服务时间值。如上所述,在某些示例中,阈值服务时间可以对应于sla规范。
[0093]
然而,通过在预测的瞬时工作负荷尖峰期间(有时在其之前)将一个或多个接收到的工作负荷分发到硬件加速器,尖峰编排平台可以降低服务器接收工作负荷的速率,并由此降低其cpu利用率。在降低cpu利用率的情况下,服务器的服务时间可能会降至接近0.3秒的值。此外,尖峰编排平台可以将“溢出”的工作负荷编排到一个以上的硬件加速器,以确保没有一个硬件加速器达到其服务工作负荷的服务时间超过2秒的cpu利用率。
[0094]
基于在步骤506的预测,在步骤508处,尖峰编排平台可以将一个或多个工作负荷分发到硬件加速器以用于执行。尖峰编排平台可以使用结合图1-图4描述的任何方法来分发一个或多个工作负荷。在各种示例中,步骤508可以由尖峰工作负荷编排器600的工作负荷分发模块608执行。
[0095]
如结合图3所述,在某些示例中,计算系统可以在容器化工作环境中实现。这里,计算系统可以利用任何可用的容器化工作负荷平台,包括但不限于k8s、k3s、kubeedge、docker等。因此,工作负荷容器可以分布在服务器和硬件加速器上。工作负荷容器可以执行它们接收的工作负荷。在某些示例中,尖峰编排平台可以在瞬时工作负荷尖峰到达之前启动硬件加速器的工作负荷容器。如结合图3所描述的,通过提前启动工作负荷容器,可以在瞬时工作负荷尖峰期间减轻冷启动时延的影响。
[0096]
图7是示出了根据各种示例的可以由尖峰编排平台执行以在瞬时工作负荷尖峰期间在计算系统的计算节点之间分发工作负荷的示例操作的另一示例流程图。作为图7的补充,图8是示出了根据各种示例的尖峰工作负荷编排器800的组件的示例系统图。
[0097]
在步骤702处,尖峰编排平台可以基于关于由计算系统接收到的过去工作负荷的监测历史数据来预测瞬时工作负荷尖峰。该步骤可以以与图5的步骤502相同/相似的方式来执行。在各种示例中,步骤702可以由尖峰工作负荷编排器800的工作负荷尖峰预测模块802来执行。
[0098]
在步骤704处,尖峰编排平台可以预测计算系统的资源利用率度量值将在预测的瞬时工作负荷尖峰之前或期间的某个时间超过针对资源利用率度量的阈值,除非一个或多个工作负荷被分发到硬件加速器。该步骤可以以与图5的步骤506相同/相似的方式来执行。在各种示例中,步骤704可以由尖峰工作负荷编排器800的资源利用率度量预测模块804来执行。
[0099]
在步骤706处,尖峰编排平台可以在预测的瞬时工作负荷尖峰之前在硬件加速器处开始工作负荷容器。在各种示例中,步骤706可以由尖峰工作负荷编排器800的工作负荷开始模块806执行。
[0100]
如上所述,计算系统可以在容器化工作环境中实现。因此,尖峰编排平台可以在瞬时工作负荷尖峰到达之前启动工作负荷容器,以减轻冷启动时延的影响。
[0101]
在步骤708处,尖峰编排平台可以在开始工作负荷容器之后将工作负荷分发到硬件加速器处的工作负荷容器以用于执行。该步骤可以以与图5的步骤508相同/相似的方式来执行。在各种示例中,步骤708可以由尖峰工作负荷编排器800的工作负荷分发模块808来执行。
[0102]
图9是示出根据各种示例的可以由尖峰编排平台执行以在瞬时工作负荷尖峰期间在边缘计算系统的计算节点之间分发查询的示例操作的另一示例流程图。作为图9的补充,
图10是示出根据各种示例的尖峰工作负荷编排器1000的组件的示例系统图。
[0103]
在步骤902处,尖峰编排平台可以从边缘计算系统的应用编程接口(api)网关接收查询(如本文所使用的,查询或无服务器查询可以指由边缘计算系统处理的特定类型的工作负荷)。在各种示例中,步骤902可以由尖峰工作负荷编排器1000的查询接收模块1002来执行。
[0104]
如上所述,在边缘计算系统被实现为容器化工作环境的情况下,api网关可以表示边缘计算系统的入口点。api网关可以实现api(例如,基于超文本传输协议(http)的表述性状态传输(rest)api)。由客户端发起的查询可以首先以调用api的方法的http请求的形式到达api网关,例如,对应于在边缘计算系统内实现的各种无服务器功能。
[0105]
在某些示例中,业务分发器可以在这里的api网关上运行。这里,业务分发器可以执行与结合图1和图2描述的业务分发器模块相同/相似的功能。具体地,业务分发器可以在边缘计算系统的工作负荷容器之间分发在应用编程接口网关处接收到的查询。如上所述,这以涉及在非尖峰工作负荷期间将查询分发到边缘服务器的工作负荷容器。然而,在瞬时工作负荷尖峰(有时为其预期)期间,业务分发器可以将一部分查询分发到硬件加速器的工作负荷容器。
[0106]
在步骤904处,尖峰编排平台可以预测瞬时工作负荷尖峰。该步骤可以分别以与图5和图7的步骤502和702相同/相似的方式执行。在各种示例中,步骤904可以由尖峰工作负荷编排器1000的工作负荷尖峰预测模块1004执行。
[0107]
在步骤906处,尖峰编排平台可以确定包括预测的瞬时工作负荷尖峰的时间范围上的查询分布。在各种示例中,步骤906可以由尖峰工作负荷编排器1000的查询分布确定模块1006来执行。
[0108]
如上所述,尖峰编排平台可以利用涉及提前为边缘服务器和硬件加速器调度/排队工作负荷的方法。因此,尖峰编排平台可以确定在特定时间范围内边缘服务器和硬件加速器之间的查询分布。此时间范围可能包括上一步中预测的瞬时工作负荷尖峰。
[0109]
如上所述,尖峰编排平台可以利用工作负荷预测和监测的资源利用率值来预测资源利用率值。例如,尖峰编排平台可以分别预测边缘服务器和硬件加速器的服务时间。尖峰编排平台还可以针对包括预测的瞬时工作负荷尖峰的时间范围预测预期的查询分布的服务时间。换言之,尖峰编排平台可以计算出边缘服务器和硬件加速器的服务时间在时间范围内不会超过阈值服务时间。因此,尖峰编排平台可以确保所确定的/预期的查询分布避免了诸如sla违反的负面结果(其可能与阈值服务时间相关联)。
[0110]
在步骤908处,尖峰编排平台可以将查询引导到硬件加速器处的工作负荷容器以用于执行。该步骤可以以与图7的步骤708相同/相似的方式来执行。在各种示例中,步骤908可以由尖峰工作负荷编排器800的查询分发模块1008来执行。
[0111]
图11描绘了其中可以实现在本文描述的各种实施例的示例计算机系统1100的框图。计算机系统1100包括用于传递信息的总线1102或其他通信机制、与用于处理信息的总线1102耦合的一个或多个硬件处理器1104。例如,(多个)硬件处理器1104可以是一个或多个通用微处理器。
[0112]
计算机系统1100还包括主存储器1106,诸如随机存取存储器(ram)、高速缓存和/或其他动态存储设备,其耦合到总线1102,用于存储信息和要由处理器1104执行的指令。主
存储器1106还可用于在要由处理器1104执行的指令的执行期间存储临时变量或其他中间信息。当存储在处理器1104可访问的存储介质中时,这些指令将计算机系统1100呈现为专用机器,该专用机器被定制以执行指令中指定的操作。
[0113]
计算机系统1100还包括只读存储器(rom)1108或其他静态存储设备,该只读存储器或其他静态存储设备耦合到总线1102,用于存储处理器1104的静态信息和指令。诸如磁盘、光盘或usb拇指驱动器(闪存驱动器)等的存储设备1110被提供并耦合到用于存储信息和指令的总线1102。
[0114]
计算机系统1100可以经由总线1102耦合到用于向计算机用户显示信息的显示器1112,诸如液晶显示器(lcd)(或触摸屏)。包括字母数字键和其他键的输入设备1114耦合到总线1102,用于将信息和命令选择传送到处理器1104。另一种类型的用户输入设备是光标控制1116,诸如鼠标、轨迹球或光标方向键,用于向处理器1104传送方向信息和命令选择并用于控制显示器1112上的光标移动。在一些实施例中,可以通过在没有光标的触摸屏上接收触摸来实现与光标控制相同的方向信息和命令选择。
[0115]
计算系统1100可以包括实现图形用户界面的用户界面模块,该图形用户界面可以作为由(多个)计算设备执行的可执行软件代码存储在大容量存储设备中。该模块和其他模块可以包括组件,例如软件组件、面向对象的软件组件、类组件和任务组件、进程、函数、属性、过程、子例程、程序代码段、驱动程序、固件、微码、电路、数据、数据库、数据结构、表、数组和变量。
[0116]
通常,在本文使用的词“组件”、“引擎”、“系统”、“数据库”、“数据存储”等可以指的是包含在硬件或固件中的逻辑,或者指的是可能具有以诸如java、c或c++等编程语言编写的入口点和出口点的软件指令的集合。软件组件可以被编译和链接成安装在动态链接库中的可执行程序,或者可以用诸如basic、perl或python的解释编程语言来编写。应当理解,软件组件可以是可从其他组件或其自身调用的,和/或可以响应于检测到的事件或中断而被调用。被配置用于在计算设备上执行的软件组件可以被提供在诸如光盘、数字视频盘、闪存驱动器、磁盘或任何其他有形介质的计算机可读介质上,或者作为数字下载(并且可以最初以需要在执行之前安装、解压缩或解密的压缩或可安装格式来存储)。这种软件代码可以部分或全部存储在执行计算设备的存储设备上,以供计算设备执行。软件指令可以嵌入诸如eprom的固件中。还应当理解,硬件组件可以包括连接的逻辑单元,诸如门和触发器,和/或可以包括可编程单元,诸如可编程门阵列或处理器。
[0117]
计算机系统1100可以实现在本文描述的技术,使用定制的硬连线逻辑、一个或多个asic或fpga、固件和/或程序逻辑,其与计算机系统结合使计算机系统1100成为专用机器或将计算机系统1100编程为专用机器。根据一个实施例,这里的技术由计算机系统1100响应于(多个)处理器1104执行主存储器1106中包含的一个或多个指令的一个或多个序列而执行。这样的指令可以从诸如存储设备1110的另一存储介质读入主存储器1106。主存储器1106中包含的指令序列的执行使得(多个)处理器1104执行在此描述的处理步骤。在替代实施例中,可以使用硬连线电路来代替软件指令或与软件指令结合使用。
[0118]
在本文使用的术语“非瞬态介质”和类似的术语指的是存储使机器以特定方式操作的数据和/或指令的任何介质。这种非易失性介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,诸如存储设备1110。易失性介质包括动态存储器,
例如主存储器1106。非瞬态介质的常见形式包括例如软盘、软盘、硬盘、固态驱动器、磁带或任何其他磁数据存储介质、cd-rom、任何其他光学数据存储介质、任何具有孔图案的物理介质、ram、prom和eprom、flash-eprom、nvram、任何其他存储芯片或盒式磁带、以及它们的网络版本。
[0119]
非瞬态介质与传输介质不同,但可以与传输介质结合使用。传输介质参与非瞬态介质之间的信息传输。例如,传输介质包括同轴电缆、铜线和光纤,包括组成总线1102的线缆。传输介质还可以采用声波或光波的形式,诸如在无线电波和红外线数据通信期间产生的那些。
[0120]
计算机系统1100还包括耦合到总线1102的通信接口。网络接口1118提供与连接到一个或多个本地网络的一个或多个网络链路的双向数据通信耦合。例如,通信接口1118可以是综合业务数字网(isdn)卡、电缆调制解调器、卫星调制解调器或调制解调器,以提供到相应类型的电话线的数据通信连接。作为另一示例,网络接口1118可以是局域网(lan)卡,以提供到兼容的局域网(或与wan通信的wan组件)的数据通信连接。还可以实现无线链路。在任何这样的实现中,网络接口1118发送和接收携带表示各种类型信息的数字数据流的电、电磁或光信号。
[0121]
网络链路通常通过一个或多个网络向其他数据设备提供数据通信。例如,网络链路可以通过本地网络提供到边缘计算机或到由互联网服务提供方(isp)操作的数据设备的连接。该互联网服务提供方又通过现在通常被称为“互联网”的全球分组数据通信网络提供数据通信服务。本地网络和互联网都使用携带数字数据流的电、电磁或光信号。通过各种网络的信号和在网络链路上并通过通信接口1118的信号携带去往和来自计算机系统1100的数字数据,是传输介质的示例形式。
[0122]
计算机系统1100可以通过(多个)网络、网络链路和通信接口1118发送消息和接收数据,包括程序代码。在互联网的示例中,服务器可以通过互联网、isp、本地网络和通信接口1118发送应用程序的请求代码。
[0123]
接收到的代码可以在其被接收时由处理器1104执行,和/或存储在存储设备1110或其他非易失性存储器中以供稍后执行。
[0124]
前述部分中描述的每个过程、方法和算法可以包含在由包括计算机硬件的一个或多个计算机系统或计算机处理器执行的代码组件中,并且由代码组件完全或部分地自动化。一个或多个计算机系统或计算机处理器还可以操作以支持相关操作的性能,相关操作在“云计算”环境中或作为“软件即服务”(saas)。这些过程和算法可以部分或全部在专用电路中实现。上述各种特征和过程可以彼此独立地使用,或者可以以各种方式组合。不同的组合和子组合旨在落入本公开的范围内,并且在一些实现中可以省略某些方法或过程块。本文描述的方法和过程也不限于任何特定序列,并且与其相关的块或状态可以以适当的其他序列来执行,或者可以并行地执行,或者以某种其他方式来执行。可以将块或状态添加到所公开的示例实施例或从其移除。某些操作或过程的执行可以分布在计算机系统或计算机处理器之间,不仅驻留在单个机器内,而且部署在多个机器上。
[0125]
如本文所使用的,可以利用任何形式的硬件、软件或其组合来实现电路。例如,可以实现一个或多个处理器、控制器、asic、pla、pal、cpld、fga、逻辑组件、软件例程或其他机制来构成电路。在实现方式中,这里描述的各种电路可以实现为离散电路,或者所描述的功
能和特征可以在一个或多个电路之间部分或全部共享。即使功能的各种特征或元素可以作为单独的电路单独描述或要求权利要求,但是这些特征和功能可以在一个或多个公共电路之间共享,并且这样的描述不需要或暗示需要单独的电路来实现这些特征或功能。在使用软件全部或部分实现电路的情况下,可以实现这样的软件以与诸如计算机系统1100的能够执行针对其描述的功能的计算或处理系统一起操作。
[0126]
如本文所使用的,术语“或”可解释为包含性或排他性意义。此外,单数形式的资源、操作或结构的描述不应被理解为排除复数形式。条件语言,诸如,除其他外,“可以”、“可”、“能够”或“可能”,除非特别声明,或者在所使用的上下文中以其他方式理解,否则通常旨在传达某些实施例包括某些特征、元素和/或步骤,而其他实施例不包括某些特征、元素和/或步骤。
[0127]
除非另有明确说明,本文件中使用的术语和短语及其变体应被解释为开放式,而不是限制性的。诸如“常规”、“传统”、“正常”、“标准”、“已知”等形容词和类似含义的术语不应被解释为将所描述的项目限制在给定的时间段或在给定的时间可用的项目,而应理解为包括现在或将来的任何时间可能可用或已知的常规、传统、正常或标准技术。在某些情况下,出现诸如“一个或多个”、“至少”、“但不限于”或其他类似短语的扩大词和短语,不应被理解为在可能没有这种扩大短语的情况下,意在或需要缩小范围。
[0128]
应当注意,在此使用的术语“最优化”、“最优”等可以用来表示尽可能有效或完美地获得或实现性能。然而,正如阅读本文档的本领域普通技术人员所认识到的那样,不可能总是达到完美。因此,这些术语还可以包括使或实现在给定情况下尽可能好或有效或实用的性能,或获得或实现比使用其他设置或参数所能实现的性能更好的性能。

技术特征:
1.一种方法,包括:基于关于由计算系统接收到的过去工作负荷的监测的历史数据来预测瞬时工作负荷尖峰,其中所述计算系统包括服务器和硬件加速器;监测所述服务器的资源利用率度量的值;预测所述资源利用率度量的值将在预测的所述瞬时工作负荷尖峰之前或者在预测的所述瞬时工作负荷尖峰期间的某个时间超过针对所述资源利用率度量的阈值,除非至少一个传入工作负荷被分发到所述硬件加速器;以及将所述至少一个传入工作负荷分发到所述硬件加速器以用于执行。2.根据权利要求1所述的方法,其中所述硬件加速器包括基于片上系统soc的智能网络接口卡smartnic。3.根据权利要求1所述的方法,其中所述资源利用率度量是所述计算系统的服务时间。4.根据权利要求1所述的方法,其中所述监测的历史数据是特定于应用的,并且分发所述至少一个传入工作负荷是针对所述应用的。5.根据权利要求1所述的方法,其中:由所述计算系统接收到的所述过去工作负荷是由所述计算系统接收到的过去无服务器查询;所述至少一个传入工作负荷是至少一个传入无服务器查询;并且所述至少一个传入无服务器查询在所述硬件加速器处的工作负荷容器内被执行。6.根据权利要求5所述的方法,其中在所述硬件加速器处的所述工作负荷容器在预测的所述瞬时工作负荷尖峰之前启动。7.根据权利要求1所述的方法,其中所述瞬时工作负荷尖峰基于支持向量回归svr预测模型而被预测。8.根据权利要求4所述的方法,其中针对所述资源利用率度量的所述阈值对应于针对所述应用的服务级别协议中的规范。9.一种计算系统,包括:多个处理资源,所述多个处理资源与所述计算系统相关联;以及非瞬态计算机可读介质,所述非瞬态计算机可读介质被耦合到所述多个处理资源,所述非瞬态计算机可读介质其中存储有指令,所述指令在由所述处理资源执行时,使所述计算系统:基于关于由所述计算系统接收到的过去工作负荷的监测的历史数据来预测瞬时工作负荷尖峰,其中所述计算系统包括服务器和硬件加速器;预测所述计算系统的资源利用率度量的值将在预测的所述瞬时工作负荷尖峰之前或者在预测的所述瞬时工作负荷尖峰期间的某个时间超过所述资源利用率度量的阈值,除非至少一个传入工作负荷被分发到所述硬件加速器;在预测的所述瞬时工作负荷尖峰之前在所述硬件加速器处启动工作负荷容器;将所述至少一个传入工作负荷分发到所述硬件加速器处的所述工作负荷容器以用于执行。10.根据权利要求9所述的计算系统,其中所述资源利用率度量是所述计算系统的服务时间。
11.根据权利要求9所述的计算系统,其中针对所述资源利用率度量的所述阈值对应于sla中的规范。12.根据权利要求9所述的计算系统,其中所述硬件加速器包括网络加速器。13.根据权利要求12所述的计算系统,其中所述网络加速器包括基于片上系统soc的智能网络接口卡smartnic。14.根据权利要求9所述的计算系统,其中所述瞬时工作负荷尖峰基于svr预测模型而被预测。15.根据权利要求9所述的计算系统,其中所述监测的历史数据是特定于应用的,并且分发所述至少一个传入工作负荷是针对所述应用的。16.一种存储指令的非瞬态计算机可读介质,所述指令在由边缘计算系统的多个处理资源执行时,使所述边缘计算系统:从所述边缘计算系统的应用编程接口api网关接收查询,其中所述边缘计算系统包括边缘服务器和硬件加速器;预测瞬时工作负荷尖峰;确定查询在包括预测的所述瞬时工作负荷尖峰的时间范围上的分布;以及基于所确定的查询分布,将所述查询分发到在所述硬件加速器处的工作负荷容器以用于执行。17.根据权利要求16所述的非瞬态计算机可读介质,其中所述硬件加速器包括基于片上系统soc的智能网络接口卡smartnic。18.根据权利要求16所述的非瞬态计算机可读介质,其中在所述硬件加速器处的所述工作负荷容器在预测的所述瞬时工作负荷尖峰之前启动。19.根据权利要求18所述的非瞬态计算机可读介质,其中所述监测的历史数据是特定于应用的。20.根据权利要求18所述的非瞬态计算机可读介质,其中基于窗口的预测模型被用以预测所述瞬时工作负荷尖峰,并且所述基于窗口的预测模型的窗口大小基于所述监测的历史数据中的工作负荷变化而动态改变。

技术总结
提供了用于战略性地获取硬件加速器的未利用的计算能力以管理计算系统处的瞬时工作负荷尖峰的系统和方法。示例提供了一种低成本并且可扩展的计算系统,该计算系统在瞬时工作负荷尖峰期间编排将工作负荷无缝卸载到硬件加速器。通过利用硬件加速器作为短期紧急缓冲器,示例改进了现有方法,这些方法部署了更昂贵并且经常严重未充分利用的服务器以用于这些紧急目的。因此,示例可以减少SLA违反的发生,同时最大限度地减少计算能力方面的资本支出。出。出。


技术研发人员:D
受保护的技术使用者:慧与发展有限责任合伙企业
技术研发日:2022.04.18
技术公布日:2023/9/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐