控制公平带宽分配效率的制作方法

文档序号:11291015阅读:256来源:国知局
控制公平带宽分配效率的制造方法与工艺



背景技术:

设备(例如,诸如公有云的可公开访问的服务器)向用户提供服务器资源(例如,应用、虚拟机、执行实体等),并且可以为这样的服务器资源分配带宽。例如,特定资源的用户可以具有对这样的带宽的预定义数量(或部分)的预定义的权利。



技术实现要素:

根据一个总体方面,一种系统可以包括微调度器,其控制针对客户端的带宽分配,每个客户端订阅传出通信链路的带宽的相应预定义部分。宏调度器通过以下对该微调度器进行控制:在预定义的第一期限前分配带宽中与每个活跃的相应客户端相关联的相应订阅部分,其中未被相应客户端所使用的剩余带宽在预定义的第二期限前成比例地在相应活跃客户端之间共享,在由宏调度器最小化微调度器间的协调的同时,周期性地调节针对每个微调度器的相应带宽分配。

根据另一个方面,宏控制器控制针对相应资源的用户的带宽分配,该相应资源被分别被配置为传送到具有预定义的最大传出传输带宽的公用传出通信链路。相应用户中的每一个订阅该传出通信链路的传出传输带宽中的相应预定义部分。控制带宽分配包括确定传出通信链路处在第一预定时间间隔的传出传输的周期性比特率,并且通过将该传出通信链路处的传出传输的周期性比特率与预定义拥塞速率值进行比较,来确定传出通信链路当前是否拥塞。如果该传出通信链路被确定为当前拥塞,则相应的独立上限队列被分配给当前活跃的多个相应资源的多个相应用户中的每一个,并且达到带宽中与当前活跃的每个相应客户端相关联的相应订阅部分的相应数量在预定义的第一期限前被分配,其中未被相应客户端所使用的剩余带宽在预定义的第二期限前成比例地在相应活跃客户端之间被共享。针对多个相应资源的多个相应用户中的每一个的相应带宽分配被周期性调节以提供近似的公平排队。

根据另一个方面,一种计算机程序产品包括计算机可读存储介质,该计算机可读存储介质存储可执行指令,该可执行指令使得至少一个计算设备控制针对执行实体的带宽分配,上述执行实体分别被配置为传送到具有预定义的最大传出传输带宽的公用传出通信链路。该相应执行实体中的每一个订阅该传出通信链路的传出传输带宽中的相应预定义部分。控制带宽分配包括控制多个微调度器,每个微调度器控制针对相应执行实体的带宽分配。控制该多个微调度器包括:针对每个活跃的相应执行实体在预定义的第一期限前分配带宽中与每个相应执行实体相关联的相应订阅部分,其中未被相应执行实体所使用的剩余带宽在预定义的第二期限前成比例地在相应活跃执行实体之间被共享,在最小化微调度器间的协调的同时,周期性地调节针对每个微调度器的相应带宽分配。

提供该发明内容而以简化形式对随后将在下文的具体实施方式中进一步进行描述的代表性概念的选择进行介绍。该发明内容并非意在标识所请求保护主题的关键特征或必要特征,其也并非意在被用来帮助确定所请求保护主题的范围。一个或多个实施例的细节在附图和以下描述中给出。其它特征和优势将通过阅读以下详细描述以及参照附图而是显而易见的。

附图说明

图1a是根据本文所讨论的示例技术的用于控制公平带宽分配的示例系统的框图。

图1b是根据本文所讨论的示例技术的用于控制公平带宽分配的示例系统的框图。

图2是涉及使用vm交换机的vm公平带宽分配的示例系统的框图。

图3是涉及使用硬件中的输出队列调度器的在路由器中的硬件公平带宽分配的示例系统的框图。

图4a-4f图示了用于图1的系统的示例操作的示例实施方式的示例指令。

图5a-5j图示了针对图1的系统的示例操作的示例实施方式的示例带宽分配。

图6a-6d是图示图1的系统的示例操作的流程图。

图7a-7b是图示图1的系统的示例操作的流程图。

图8是图示图1的系统的示例操作的流程图。

具体实施方式

i.介绍

设备向用户提供资源,并且可以为这样的资源分配带宽(例如,数据通信带宽)。例如,特定资源的用户可以具有对这样的带宽的预定义数量(或部分)的预定义权利。例如,可公开访问的服务器(例如,公有云)向用户提供服务器资源,并且可以向这样的用户分配虚拟机(vm),以及为每个vm分配带宽。例如,vm的用户可以具有对这样的带宽的预定义数量(或部分)的授权。例如,该用户可以具有使得该用户具有预定义数量的资源(例如,带宽)的权利的订阅。

在该上下文中,“云”可以是指涉及可以通过诸如互联网的通信网络连接的一个或多个设备或计算机的各种计算概念。例如,“云计算”可以是指通过网络进行的分布式计算,并且可以涉及在多个连接计算机上运行程序或应用的能力。计算领域的技术人员将会意识到,本文所讨论的示例技术可以使用“云”或任意其他远程设备(例如,远程服务器,或者更简单类型的远程设备)。

在该上下文中,“虚拟机”(vm)可以是指特定计算机系统的仿真。例如,虚拟机可以基于计算机架构以及真实或假设的计算机的功能来操作,并且它们的实施方式可以涉及专用硬件、软件或者二者的组合。在该上下文中,“带宽”可以是指可用的或消耗的数据通信资源的比特率的度量。

诸如azure和amazon的ec2的公有云并不仅是分配虚拟机(vm),而且还基于用户授权(例如,经由用户/消费者订阅/协定/支付的授权)为每个vm分配带宽。因此,提供方可能需要根据每个用户被授权(例如,经由订阅)的相应带宽数量控制用户vm之间在服务器处的带宽分配。虽然每个用户能够被分配他们被授权的固定数量的带宽,但是由于许多用户可能并未长时间使用他们的带宽授权数量,因此这可能是浪费的。根据本文所讨论的示例技术,该未使用(剩余)带宽能够成比例地在其它非空闲(即,活跃)用户vm间再次分配。公平的带宽分配或公平的排队技术在许多情况下可以被用来处理类似的问题;然而,vm涉及很多可能涉及不同于常规技术的处理的特性。

在该上下文中,互联网网关中的“公平带宽分配”是指确定如何控制网络容量在共享互联网连接的用户之间的分配的问题。在该上下文中,“公平排队”是指进程和网络调度器例如为了允许多个包流公平地分享链路容量所使用的调度技术。例如,与常规的先进先出(fifo)排队相比,利用公平排队,高数据速率的流(例如,涉及大数据包或许多数据包)无法得到比其公平份额更多的链路容量。

例如,常规的公平排队技术可能假设在链路和实施分配的调度器(例如,在路由器中)上的传输之间存在有严格的反馈环路。然而,该假设在虚拟交换机中并不成立,其中调度器可以以软件来实施而传输则由硬件网络接口卡(nic)来执行。跨越软件和硬件之间的边界可能是昂贵的,特别是以千兆的速度;诸如大量发送卸载和中断(largesendoffloadandinterrupt)批处理的优化尝试针对大批次的数据包将软件和硬件之间的通信减少至一次,因此现有公平排队算法(例如,赤字轮循)的直接仿真可能表现出低效的性能。

根据本文所讨论的示例技术,可以基于vm已经被测量在对应于与这种调度相关联的多个时间间隔的多个调度周期中的最后(先前)调度周期中(例如,在时间上紧接当前的调度周期或调度间隔)所发送的带宽量,而独立地控制每个相应vm的带宽。例如,这样的技术可以有利地减轻对软件和物理nic之间的反馈回路的需求。因此,这些技术对于各种不同物理nic的实施方式的细节可能是简单、有效和不可知的。

本文所讨论的示例技术可以在少量调度间隔上收敛于公平分配,并且可以使得由于不充分利用其分配的vm而被浪费的带宽最小化。

本文所讨论的示例技术仅基于传输的本地观察(而不是在整个网络上的观察——因此没有与远程端点协调的要求)。此外,本文所讨论的示例技术可以控制虚拟端口级别的业务聚合,并且对于第3层和第4层协议以及(例如,传输控制协议(tcp)的)流量模式是不可知的。

本文所讨论的示例技术可以有利地利用独立队列提供公平带宽分配的近似。

本文所讨论的示例技术可以有利地在没有调度器和发送器之间的反馈环路的情况下提供公平排队(例如,这在经由软件实施调度器而经由硬件实施发送器时可能是有利的)。

本文所讨论的示例技术可以有利地提供一种控制技术,其基于与vm被分配的带宽相比vm的每个流队列实际传送的数量,而在有利的小数量的调度周期上收敛于带宽的公平分配。

本文所讨论的示例技术可以有利地提供参数,该参数控制在vm被授权(例如,订阅)的带宽数量的收敛时间和链路利用率以及分配给vm的带宽的突发性之间的权衡。

另外,本文所讨论的示例性技术可以有利地提供一种模式,其中并不应用针对链路上没有拥塞时的预期情形进行优化的控制(从而减少软件开销)。

本文所讨论的示例技术可以有利地提供不同虚拟机之间的最小共享状态,这又可以使得锁定开销最小化。

根据一种示例实施方式,一种使用软件实施的模块可以通过对经过网络服务质量(qos)模块的包进行计数(例如,经由计数器对包进行计数)来跟踪nic的利用,并且可以周期性地基于该计数器来计算包的比特率。例如,可以根据多个时间间隔(或时间段)周期性地确定比特率。例如,这样的时间间隔可以被设置为预定值(例如,100毫秒(ms))。

如果nic并不拥塞,则不进行任何操作来进一步控制带宽分配(例如,没有队列具有上限)。例如,可以根据在特定时间间隔内所确定的比特率与预定拥塞阈值的比较来确定nic“拥塞”。

如果nic拥塞,最大上限队列分配给每个vm,并且这些队列的最大上限值在每个时间间隔(例如,每100ms)由宏调度器主动调整以在带宽要求和公平带宽分配(即,每个vm想要/请求的带宽量vs.每个vm被授权/订阅接收的带宽量)之间进行平衡。每个最大上限队列由微调度器独立于其它微调度器进行管理。与每个最大上限队列相关联的微调度器通过调度经过该队列的包来强制执行相应的最大上限值,以便不超过由宏调度器所设置的最大上限值。

如果vm在最后的时间间隔(例如,100ms)内以低于其所分配的速率进行发送,则减小其最大上限值。

如下面所讨论的,剩余带宽(从并未使用它们的全部最低保证的vm所剩下的带宽)被用来向想要发送更多的vm进行分配。

如果vm已经在最后100ms内基本上接近于其所分配速率进行了发送,则其最大上限值与其公平带宽分配成比例增大。

例如,通过控制每个vm的速率并仅将剩余带宽分配给需要更多带宽的vm,可以确保最大上限值的总和小于或等于nic的有效容量。因此,qos控制跨vm的nic容量分配。

根据本文所讨论的示例技术,每个最大上限队列可以被调节以增加或回收其所分配的带宽。

例如,任何需要带宽的虚拟机可以在由可配置参数所指定的时间内(例如,在400ms内)至少被给予其保证带宽。因此,可以在客户端之间共享带宽,而使得每个活跃客户端最终被分配以其所订阅的带宽(例如,其带宽的授权量)。

例如,任何未使用的带宽可以在由可配置设置指定的时间内(例如,在1000ms内)被回收,该可配置设置可以被调谐(例如,根据业务的突发性以及是否期望回收突发之间的剩余带宽)。

图1a是根据本文所讨论的示例技术的用于控制公平带宽分配的示例系统的框图。

如图1a所示,服务器114上的传出通信链路108具有可用于从服务器114上的资源传出通信的固定数量的带宽(bw)。如图1a所示,客户端1(104a)被订阅(授权)以由w1106a所表示的订阅带宽量(例如,客户端可以订阅服务器114上100mb/月的传出带宽并向服务提供方进行支付——例如,客户端可以为服务器114上100mb的传出带宽支付100美元/月)。如图1a所示,客户端2(104b)被订阅(授权)以由w2106b表示的另一数量的带宽。类似地,客户端n(104n)被订阅(授权)以由wn106n表示的另一数量的带宽。因此,传出通信链路108具有足够的带宽以支持服务器的客户端104a、...、104n的订阅带宽。此外,客户端都可以预期的是,如果它们全部变为活跃并且向nic108发送传出信息,则它们将能够获得其所订阅的传出带宽(即,每个客户端将能够获得它们所支付的带宽)。本文讨论的示例技术可以控制带宽的分配,而使得所有活跃的订阅客户端将最终接收(即,被分配以)它们所订阅的(并且支付)的传出带宽量。此外,本文所讨论的示例技术可以控制带宽的分配,而使得剩余带宽(在活跃客户端已经接收到其所请求的带宽(直到其订阅数量)之后剩下的)得以被分配而使得其不是未使用的(并且被浪费)。此外,本文所讨论的示例技术可以控制带宽的分配,而使得所有剩余带宽(在活跃客户端已经接收到其所请求的带宽(直到其订阅数量)所剩下的)与给每个活跃客户端的预订/授权带宽量成比例地被分配。因此,多个客户端无法协力以获得更多带宽(例如,客户端被视为不受信任)。

例如,客户端104a、...、104n可以被托管在单个机器114上,并且主机分区可以包括机器114的操作系统(os)以托管客户端104a、...、104n,并且可以包括虚拟交换机(软件),其充当具有客户端104a、...、104n被附接到的虚拟端口的交换机。虚拟交换机包括以下功能:确保跨所有客户端104a、...、104n所分配的bw的总和小于(或等于)输出总和,并且带宽与相应客户端所预订带宽成比例地在它们之间进行分配。

如本文所使用的,“客户端”可以指可以在机器或设备(例如,服务提供商服务器)上使用(或订阅或者以其它方式被授权)传出带宽的用户、应用、虚拟机或任意类型的执行实体。

本文所讨论的特征被提供为示例实施例,该例实施例可以在不脱离本文所讨论的精神的情况下,以计算领域的技术人员可以理解的许多不同的方式来实施。这样的特征仅被解释为示例性实施例特征,而并非意在被解释为仅局限于那些详细描述。

如本文进一步讨论的,图1a是用于有效带宽分配的一般化系统100a的框图。所示出的一般化系统100a仅旨在说明可以包括在本文所讨论的示例技术中的各种示例功能和/或逻辑,而并非旨在关于各种硬件和/或软件配置的实施方式加以限制。本领域技术人员将会意识到,系统100a可以以硬件实施方式、软件实施方式或者它们的组合来实现。如图1a所示,系统100a可以包括设备114(例如,硬件设备),其包括至少一个处理器。设备114可以包括存储可由该至少一个处理器执行的可执行指令的计算机可读存储介质,该可执行指令包括带宽分配控制器,其包括多个微调度器102a、102b、…、102n,每个微调度器控制针对相应客户端104a、104b、…、104n的带宽分配,该相应客户端中的每一个订阅传出通信链路108中相应的预定义带宽部分。

宏调度器112控制多个微调度器102a、102b、…、102n。例如,针对处于每个活跃的相应客户端104a、104b、…、104n,宏调度器112在预定义的第一期限之前分配与每个活跃的相应客户端104a、104b、…、104n相关联的带宽的相应订阅部分,其中未被相应客户端所使用的剩余带宽则在预定义的第二期限之前成比例地在相应的活跃客户端104a、104b、…、104n之间共享,在由宏调度器112最小化微调度器102a、102b、…、102n间的协调的同时,周期性调节针对每个微调度器102a、102b、…、102n的相应带宽分配。

例如,宏调度器112通过访问每个相应的活跃客户端104a、104b、…、104n在预定时间间隔中所使用的相应带宽数量,来周期性调节针对每个微调度器102a、102b、…、102n的相应带宽分配,该预定时间间隔在时间上处于与当前的周期性调节相关联的当前时间间隔之前。

例如,宏调度器112通过针对在预定时间间隔中以比相应客户端104a、104b、…、104n的相应订阅带宽部分更大的相应数量传送的相应客户端104a、104b、…、104n,而将相应带宽分配的上限设定为相应订阅带宽部分的相应值,来周期性调节针对每个微调度器102a、102b、…、102n的相应带宽分配,该预定时间间隔在时间上处于与当前的周期性调节相关联的当前时间间隔之前。

例如,宏调度器112通过针对在预定时间间隔中以比相应客户端的相应订阅带宽部分的相应数量实质更小进行传送的相应客户端104a、104b、…、104n,而将相应带宽分配的上限设定在相应的当前实际传输带宽数量的相应值,来周期性调节针对每个微调度器102a、102b、…、102n的相应带宽分配,该预定时间间隔在时间上处于与当前的周期性调节相关联的当前时间间隔之前。

例如,宏调度器112通过在通过基于实际传输量设定一个或多个相应带宽分配的上限而降低一个或多个相应带宽分配之后确定未被相应客户端104a、104b、…、104n所使用的剩余带宽,并且将未被相应客户端104a、104b、…、104n所使用的剩余带宽在当前请求更多带宽分配的相应活跃客户端104a、104b、…、104n之间成比例分配,来周期性调节针对每个微调度器102a、102b、…、102n的相应带宽分配。

例如,微调度器102a、102b、…、102n的每一个控制针对相应客户端104a、104b、…、104n的相应虚拟机(vm)的带宽分配,每个客户端104a、104b、…、104n订阅带宽的相应预定义部分以供相应mv使用,其中相应客户端104a、104b、…、104n的相应vm被托管于云服务器上,其中传出通信链路108包括与位于该云服务器上的一个或多个网络接口卡(nic)相关联的传出网络通信链路。

例如,微调度器102a、102b、…、102n的每一个控制针对客户端104a、104b、…、104n的相应应用的带宽分配,每个相应客户端104a、104b、…、104n订阅带宽的相应预定义部分以供相应应用所使用,其中相应客户端104a、104b、…、104n的相应应用被托管于云服务器上,其中传出通信链路108包括与位于该云服务器上的一个或多个网络接口卡(nic)相关联的传出网络通信链路。

例如,传出通信链路108包括与网络接口卡(nic)相关联的传出网络通信链路。

例如,宏调度器112控制多个微调度器102a、102b、…、102n,提供公平排队的近似,而不使用宏调度器112和发送器之间的反馈回路。

例如,宏调度器112控制多个微调度器102a、102b、…、102n,在确定传出网络通信链路108并未拥塞时不提供带宽分配控制。

例如,宏调度器112控制多个微调度器102a、102b、…、102n,向相应客户端104a、104b、…、104n提供公平带宽分配的近似,向相应客户端104a、104b、…、104n指派以相应的独立队列。

例如,虚拟交换机可以包括多个相应虚拟端口,其中虚拟端口的一部分与客户端104a、104b、…、104n通信,并且至少一个虚拟端口与传出通信链路通信。

例如,分别与多个相应客户端104a、104b、…、104n通信的相应虚拟端口均与相应令牌桶队列通信,上述令牌桶队列控制针对每个相应客户端104a、104b、…、104n的传出包的相应传输速率。

例如,“令牌桶”技术可以基于可以以固定速率向其中加入令牌(例如,表示多个字节的单元或者预定大小的单个包)的固定容量的桶的类比。当要检查包与预定限制的符合性时,可以对桶进行检测以确定其此时是否具有充足的令牌。如果是,则移除(“兑现”)适当数量的令牌(例如,等于以字节为单位的包长度),并且送出该包以例如进行传输。包在桶中的令牌不足的情况下并不相符,并且桶的内容并不改变。非相符包以各种方式被处理,例如,它们可以被丢弃、或者它们可以被排队以便在后续桶中累积了充分令牌时进行传输、或者它们可以被传送但是被标记为不相符,其可能在随后网络过载的情况下被丢弃。

图1b是根据本文所讨论的示例技术的用于控制公平带宽分配的示例系统的框图。

如图1b所示,服务器114上的nic(或聚合nic)108具有40gb固定数量的带宽(bw),其可用于从服务器114上的资源的传出通信。如图1b所示,vm1(104a)被订阅(授权)100mb(例如,客户端可以订阅服务器114上100mb/月的传出带宽并向服务提供方进行支付——例如,客户端可以针对服务器114上100mb的传出带宽支付100美元/月)。如图1b所示,vm2(104b)被订阅(授权)2gb(例如,客户端可以订阅服务器114上2gb/月的传出带宽并向服务提供方进行支付——例如,客户端可以针对服务器114上2gb的传出带宽支付2000美元/月)。类似地,vmn(104n)被订阅(授权)37gb(例如,客户端可以订阅服务器114上37gb/月的传出带宽并向服务提供方进行支付)。因此,nic(或聚合nic)108具有充分带宽来支持服务器的客户端104a、...、104n的订阅带宽。此外,客户端都可以预期的是,如果它们全部变为活跃并且向nic108发送传出信息,则它们的每一个将能够获得其所订阅的传出带宽(即,每个客户端将能够获得它们所支付的带宽)。本文讨论的示例技术可以控制带宽的分配,而使得所有活跃的订阅客户端将最终接收(即,被分配以)它们所订阅的(并且支付)的传出带宽量。此外,本文所讨论的示例技术可以控制带宽的分配,而使得剩余带宽(在活跃客户端已经接收到其所请求的带宽(直到其订阅数量之后)剩下的)被分配,而使得其不是未使用的(并且被浪费)。此外,本文所讨论的示例技术可以控制带宽的分配,而使得所有剩余带宽(在活跃客户端已经接收到其所请求的带宽(直到其订阅数量之后)剩下的)与给每个活跃客户端的预订/授权带宽量成比例地被分配。因此,多个客户端无法协力以获得更多带宽(例如,客户端被视为不受信任)。

例如,vm104a、...、104n可以被托管在单个机器114上,并且主机分区可以包括机器114的操作系统(os)以托管vm104a、...、104n,并且可以包括虚拟交换机(软件),其充当具有vm104a、...、104n所附接至的虚拟端口的交换机。虚拟交换机包括以下功能:确保跨所有vm104a、...、104n所分配的bw的总和小于(或等于)输出总和,并且确保带宽与相应vm所订阅的带宽成比例地在它们之间进行分配。

在(例如,使用硬件的)示例带宽问题空间中,每个端口的硬件队列具有用于发送的包,并且在软件中,存在多个分层而使得确定包何时已经被发送是可能的。然而,多个线程将包拉出队列,从而使得难以确定这些包是否处于正确的顺序。针对这些类型的情形,以软件来实施硬件调度器可能并不实际。

图2是涉及使用vm交换机202以及从nic108到vm交换机202(该示例中以软件实施)的批量(非理想)反馈204的vm公平带宽分配的示例系统的框图。如图2所示,给定所有vm104a、...、104n的输入带宽ibi,可能期望计算所分配的带宽abi从而提供:

a)拥塞自由:所分配的带宽abi的总和不超过nic或链路带宽b;

b)强公平分配:在活跃vm104a、...、104n之间,与它们的权重wi106a、106b、…、106n(这些权重是它们的订阅数量的代表)成比例地划分b;

c)弱公平分配:如果ibi<b*wi/权重之和,则obi=ibi。否则,obi>=b*wi/权重之和。

图3是涉及使用硬件的输出队列调度器302的路由器中的硬件公平带宽分配的示例系统的框图,其具有从输出链路108到硬件输出队列调度器302的每包实时反馈310。如图3所示,给定所有vm(在该示例中具有硬件队列304a,304b,…,304n)的输入带宽ibi,可能期望计算所分配带宽abi从而提供:

a)拥塞自由:并未明确指派,因为调度器仅在包传送时操作,所以没有拥塞或队列;

b)强公平分配:将b在活跃vm之间、按它们的权重wi106a、106b、…、106n(这些权重是它们的订阅数量的代表)成比例地划分。

许多常规技术可以被用于该示例系统,例如赤字轮循(drr)、起始时间公平排队等。

然而,如果图1a的客户端104是vm,则可能并不期望将drr用于vm带宽分配(使用软件而不是硬件)。例如,来自nic的反馈可能是不可靠的,因为其可能是批量的(即,并非实时反馈),因此提供非理想反馈。

例如,为了执行调度而在软件中包括微秒粒度的精细粒度计时器可能过于昂贵。例如,包括实时调度器可能并不可行/过于昂贵,因为用户可能无法承担在每个包上都被调用的vm交换机调度器。另外,单一核心可能不像nic那么快地传送。如图1a所示,可能期望每个vm经由vm交换机独立地向nic传送,仅在预定时间间隔(例如,10毫秒间隔)放松同步。

这样的系统的示例实施方式可以包括:

a)实时路径中没有调度器:vm调度器能够很少地(例如,每10毫秒)设置参数;

b)调度器基于过去的周期(基于测量)估计每个vm的需求(ibi);

c)调度器在下一个周期中调节针对每个vm的分配以收敛于公平分配;

d)非理想反馈:可以确保nic并不溢出(例如,在短期内使用nic缓冲);

e)使得vm分配总和<=nic带宽。

以下所讨论的(以及如图4a-4i中更详细示出的)是根据本文所讨论的示例技术的用于有效控制带宽分配的更为详细的示例操作。currentint被设置为知识当前时间间隔的值。以下讨论假设nic以及订阅nic的传出带宽的每个客户端(vm)的独立队列。以下讨论还假设监视系统的qos的qos技术。以下讨论进一步假设以明确数字所表达的值并不是静态的,因此能够针对不同实施方式被配置为不同值。例如,“有效容量的90%”可以被配置为另一个值。例如,迭代次数以及被表达为百分比的所有值都能够被配置为不同数字。例如,时间值(例如,100ms)也可以被配置为不同值。

如果nic未处于拥塞模式,则什么都不做(没有队列具有上限)。nic在其并未超过有效容量的90%或者其已经低于有效容量的80%达120s的情况下,并不处于拥塞模式。

当qos首次变换为拥塞模式时,为每个队列指派以该队列的最低保证的最大上限。

当qos处于拥塞模式时,所有队列都具有最大上限,并且最大上限的总和低于或等于nic的有效容量。

周期性地(例如,每100ms):

a)如果队列低于当前分配速率(ar)的85%达10次迭代,则设置队列的速率=当前发送速率的110%;

b)如果队列在最后迭代中高于当前分配速率的95%:

i)如果连续拥塞1次迭代:目标分配速率=min(分配速率*120%,ar+10%nic速率)

ii)如果连续拥塞2次迭代:目标分配速率=min(分配速率*150%,ar+10%nic速率)

iii)如果连续拥塞3次迭代:目标分配速率=min(分配速率*2,ar+10%nic速率)

设置新的分配速率=min(目标分配速率,最低保证)

对于具有新的分配速率=最低保证的队列,根据公平共享分配剩余带宽直至目标分配速率。

作为更为一般的解释,如果nic并未拥塞,则针对进一步控制带宽分配什么都不做。如果nic拥塞,则向每个vm指派最大上限队列。如以上所讨论的,每个最大上限队列由微调度器独立于其它微调度器进行管理。如以上所讨论的,这些队列在每个时间间隔(例如,每100ms)被主动调节,从而在带宽要求和公平带宽分配(即,每个vm想要的带宽量vs.每个vm被授权/订阅接收的带宽量)之间进行平衡。

如果vm在最后的时间间隔(例如,100ms)中以低于其分配速率发送,则其最大上限值被减小。

剩余带宽(从并未使用它们的最低保证的vm所剩下的带宽)被用来向想要更多发送的vm分配:如果vm已经在最后100ms内基本上接近于其分配速率进行发送,则其最大上限队列与其公平带宽分配成比例地被增大。

计算领域的技术人员将会意识到,可能有许多有效控制本文所讨论的带宽分配而并不背离本文讨论的精神的方法。

在本上下文中,“处理器”可以包括被配置为处理与计算系统相关联的指令的单个处理器或多个处理器。因此,处理器可以包括并行和/或以分布式方式执行指令的一个或多个处理器。例如,系统100a可以包括一个或多个处理器(例如,硬件处理器)。例如,系统100a可以包括存储可由一个或多个处理器执行的指令的至少一个有形计算机可读存储介质,该可执行指令被配置为使得至少一个计算装置执行如本文所讨论的与系统100a中包括的各种示例组件相关联的操作。例如,一个或多个处理器可以被包括在至少一个计算装置中。本领域技术人员将理解,在不背离这样的讨论的精神的情况下,可以根据本文的讨论来配置处理器和计算设备的许多配置。

在本上下文中,“组件”或“模块”可以指可以被配置为执行某些操作的指令或硬件。这样的指令可以被包括在指令的组件群组内,或者可以被分布于多于一个的群组上。例如,与第一组件的操作相关联的一些指令可以被包括在与第二组件(或更多组件)的操作相关联的指令组中。例如,本文的“组件”可以指可以由可位于单个实体中的指令来实施或者可以在多个实体上扩展或分布的功能的类型,并且可以与关联于其它组件的指令和/或硬件有所重叠。

根据示例实施方式,系统100a可以管理系统100a与其它实体之间的通信,其它实体可以经由至少一个网络与系统100a进行通信。例如,该网络可以包括至少一个互联网、至少一个无线网络,或者至少一个有线网络。例如,该网络可以包括蜂窝网络、无线电网络,或者可以支持系统100a的数据传输的任意类型的网络。

图4a-4f图示了图1的系统的示例操作的示例实施方式的示例指令。

如图4a所示,宏调度器(例如,宏调度器112)对带宽分配进行周期性调整(402)。在404,确定线路当前是否处于拥塞控制模式。如果是,则宏调度器调整最大上限队列(406)。否则,由于没有拥塞要进行管理,因此宏调度器移除最大上限队列(408)(即每个vm都能够满足其最低保证,而不必对其它vm设置最大上限队列)。

图4b图示了用于调整线路速率的示例指令。在410,利用所有可用带宽初始化剩余带宽。

图4c图示了用于基于vm的最近传输速率而向它们分配带宽的示例指令。在412,遍历vm的列表以执行操作(例如,对队列设置上限)。在414,如果vm在最后周期中并没有最大上限队列,则vm的目标速率被设置为其当前发送速率的110%。

在416,如果vm的发送速率小于vm当前所被分配的速率的85%(即,vm未使用其所被分配的所有带宽),则vm的所被分配的速率被减少到其当前发送速率的110%。每次确定vm并未使用其所被分配的所有带宽时,上升计数器(rustage)将递减1(直到其达到0)。

在418,如果vm的发送速率大于vm的当前所被分配的速率的95%(这被解释为vm想要比其当前所分配更多的带宽),则在420,在每当(在限定的预定、可配置的迭代次数内)确定vm需要更多带宽时,上升计数器(rustage)会进行增加(例如,递增1)。

如图4d所示,上升计数器(rustage)的值越大,被给予vm的带宽就越多(逐渐增加)。在422,使用switch来确定当前处于上升的哪个阶段。在424,对于第一阶段,vm被给予20%的更多带宽,但是如果是链路的速度则不超过10%。

在426,对于上升的第二阶段,vm被给予50%的更多带宽,但是如果是链路的速度则不超过10%。在428,对于上升的第二阶段,vm被给予100%的更多带宽。

在430,如果vm对其所被分配的带宽既未过多使用也未太少使用,则将vm的所计算出的目标速率设置为vm的所被分配的速率,并且上升计数器被减小。在432,如果vm未在传送,则该vm被指派以“小的”最大上限值来作为其目标速率(例如,该vm的当前目标速率和10mbps中的最大值)。对于该示例,10mbps是预先确定的并且是可配置的。

图4e图示了用于分配剩余带宽的示例指令。如图4e所示,变量“temprate”最初被设置为所计算的目标速率,但是其不超过vm被授权(例如,订阅)的带宽数量。在434,在将temprate设置为所计算目标速率的较小值以及设置最小保证带宽之后,如果temprate等于最小保证带宽,则所计算目标速率高于该值。因此,vm被标记以needsmore标志。该vm的“权重”(例如,与vm最小保证带宽成比例的值)被添加到需要更多带宽的vm的权重的总和。该权重总和随后被用来确定如何在需要更多带宽的虚拟机之间划分剩余带宽。在436,可用的剩余带宽被减少以分配给该vm的数量。

图4f图示了用于分配剩余带宽的示例指令。在438,当剩余带宽可用(经由“while循环”示出)时,在440,vm最大上限队列的列表被迭代以为具有更多带宽需求的每个vm提供剩余带宽的公平份额。

在442,从不需要其全部当前目标速率的vm收集剩余带宽。重复while循环,直到没有更多剩余带宽要分配,或者知道没有更多vm需要更多带宽的时候。在444,(例如,由宏调度器112)为vm最大上限队列设置最终分配值。

图5a-5j图示了针对图1的系统的示例操作的示例实施方式的示例带宽分配。在图5a-5i的示例中,系统包括具有10gbps(千兆比特每秒)的nic输出能力的nic以及4个虚拟机(vm),该虚拟机包括具有1gbps的带宽分配的vm1(104a),具有2gbps的带宽分配的vm2(104b),具有3gbps的带宽分配的vm3(104c),以及具有4gbps的带宽分配的vm4(104d)。

如图5a-5i所示,vm被图示以在最后的宏调度器周期中的实际发送速率sr(以gbps为单位),以及宏调度器112根据10个示例宏调度器112周期(如上所述)所进行的带宽分配(针对vm的最大上限队列)(在图5a-5i中被示为“bw分配”)。

如图5a所示,在宏调度器112的第一周期,对于总输出4gbps,四个vm中的每一个在最后宏调度器周期中的实际发送速率(sr)为1gbps,因此由于在nic108没有拥塞而不进行带宽管理。

如图5b所示,在宏调度器112的第二周期,对于总输出10gbps,最后宏调度器周期中的实际发送速率(sr)对于vm1(104a)为4gbps,对于vm2(104b)为4gbps,对于vm3(104c)为1gbps,对于vm4(104d)为1gbps。在该周期中,在输出链路(在nic108)检测到拥塞,并且vm被设置上限。在该示例中,vm3和vm4被给予高于其发送速率的最大量,从而可以检测它们是否需要更多的带宽。如图5b所示,对于宏调度器112在当前周期内所分配的总共10gbps,宏调度器112分配的带宽为针对vm1(104a)的2.6gbps,针对vm2(104b)的5.2gbps,针对vm3(104c)的1.1gbps,以及针对vm4(104d))的1.1gbps。

如图5c所示,在宏调度器112的第三周期,对于总输出9.8gbps,最后宏调度器周期中的实际发送速率(sr)针对vm1(104a)为2.6gbps(5.2b),针对vm2(104b)为5.2gbps,针对vm3(104c)为1gbps,以及针对vm4(104d)为1gbps。在该周期中,宏调度器分配没有变化。

如图5d所示,在宏调度器112的第四周期,对于总输出10gbps,最后宏调度器周期中的实际发送速率(sr)针对vm1(104a)为2.6gbps,针对vm2(104b)为5.2gbps,针对vm3(104c)为1.1gbps,以及针对vm4(104d)为1.1gbps。在该示例中,检测到vm3和vm4需要更多带宽。因此,针对vm3和vm4的带宽分配以缓慢上升的方式增加了20%,同时减少了针对vm1和vm2的一些带宽分配。如图5d所示,对于由宏调度器112在当前周期所分配的总共10gbps,宏调度器112分配的带宽为针对vm1(104a)的2.4gbps,针对vm2(104b)的5gbps,针对vm3(104c)的1.3gbps,以及针对vm4(104d)的1.3gbps。

如图5e所示,在宏调度器112的第五周期,对于总输出10gbps,最后的宏调度器周期中的实际发送速率(sr)针对vm1(104a)为2.4gbps,针对vm2(104b)为5gbps,针对vm3(104c)为1.3gbps,以及针对vm4(104d)为1.3gbps。在该周期中,检测到vm3和vm4需要更多的带宽。因此,针对vm3和vm4的带宽分配以缓慢上升的方式增加了50%,同时减少了对vm1和vm2的一些带宽分配。如图5e所示,对于由宏调度器112在当前周期所分配的总共10gbps,宏调度器112分配的带宽为针对vm1(104a)的2.1gbps,针对vm2(104b)的4.1gbps,针对vm3(104c)的1.9gbps,以及针对vm4(104d)的1.9gbps。

如图5f所示,在宏调度器112的第六周期,对于总输出10gbps,最后的宏调度器周期中的实际发送速率(sr)针对vm1(104a)为2.1gbps,针对vm2(104b)为4.1gbps,针对vm3(104c)为1.9gbps,以及针对vm4(104d)为1.9gbps。在该周期中,检测到vm3和vm4需要更多的带宽。因此,针对vm3和vm4的带宽分配以缓慢上升的方式增加了100%,同时减少了对vm1和vm2的一些带宽分配。在该示例中,宏调度器112仅向vm3分配带宽直到其最小保证加上未被vm4所使用的任何剩余带宽。如图5f所示,对于由宏调度器112在当前周期所分配的总共10gbps,宏调度器112分配的带宽为针对vm1(104a)的1gbps,针对vm2(104b)的2.1gbps,针对vm3(104c)的3.1gbps,以及针对vm4(104d)的3.8gbps。

如图5g所示,在宏调度器112的第七周期,对于总输出10gbps,最后的宏调度器周期中的实际发送速率(sr)针对vm1(104a)为1gbps,针对vm2(104b)为2.1gbps,针对vm3(104c)为3.1gbps,以及针对vm4(104d)为3.8gbps。在该周期中,检测到vm4需要更多的带宽。因此,针对vm4的带宽分配增加到其最低保证。如图5g所示,对于由宏调度器112在当前周期所分配的总共10gbps,宏调度器112分配的带宽为针对vm1(104a)的1gbps,针对vm2(104b)的2gbps,针对vm3(104c)的3gbps,以及针对vm4(104d)的4gbps。

如图5h所示,在宏调度器112的第八周期,对于总输出10gbps,最后的宏调度器周期中的实际发送速率(sr)针对vm1(104a)为1gbps,针对vm2(104b)为2gbps,针对vm3(104c)为0gbps,以及针对vm4(104d)为4gbps。在该周期中,检测到vm3已经停止了传送。因此,剩余带宽被以上升的方式被分配给vm1、vm2和mv4,而vm3则被提供以接近于零的最大上限队列。如图5h所示,在当前周期内,宏调度器112分配的带宽为针对vm1(104a)的1.2gbps,针对vm2(104b)的2.4gbps,针对vm3(104c)的0.01gbps,以及针对vm4(104d)的4.8gbps。

如图5i所示,在宏调度器112的第九周期,对于总输出8.4gbps,最后的宏调度器周期中的实际发送速率(sr)针对vm1(104a)为1.2gbps,针对vm2(104b)为2.4gbps,针对vm3(104c)为0gbps,以及针对vm4(104d)为4.8gbps。在该周期中,更多剩余带宽被成比例分配直到总共10gbps。如图5h所示,在当前周期内,宏调度器112分配的带宽为针对vm1(104a)的1.4gbps,针对vm2(104b)的2.8gbps,针对vm3(104c)的0.01gbps,以及针对vm4(104d)的5.8gbps。

如图5j所示,在宏调度器112的第十周期,对于总输出10gbps(nic108的最大容量),最后的宏调度器周期中的实际发送速率(sr)针对vm1(104a)为1.4gbps,针对vm2(104b)为2.8gbps,针对vm3(104c)为0gbps,以及针对vm4(104d)为5.8gbps。

计算领域的技术人员将会意识到,可以使用许多不同技术来有效控制带宽分配而并不背离本文的讨论的精神。

ii.流程图描述

本文所讨论的特征作为可以以计算领域计算人员所可以理解的许多不同方式来实施的示例实施例而被提供,而并不背离本文的讨论的精神。这样的特征仅被理解为示例实施例特征,而并非意在被理解为仅局限于那些详细描述。

图6a-6d是图示根据示例实施例的图1的系统的示例操作的流程图。在图6a的示例中,微调度器控制针对相应客户端的带宽分配,每个相应客户端订阅传出通信链路的带宽中的相应预定义部分(602)。

微调度器通过以下而被控制:在预定义的第一期限前分配带宽中与每个活跃的相应客户端相关联的相应订阅部分,其中未被相应客户端所使用的剩余带宽在预定义的第二期限前成比例地在相应活跃客户端之间被共享,在由宏调度器最小化微调度器间的协调的同时,周期性地调节针对每个微调度器的相应带宽分配(604)。

例如,传出通信链路包括与网络接口卡(nic)相关联的传出网络通信链路(606)。

例如,在图6b的示例中,宏调度器通过访问每个相应活跃客户端在预定时间间隔中所使用的相应带宽数量的度量,来周期性调节针对每个微调度器的相应带宽分配,该预定时间间隔在时间上处于与当前的周期性调节相关联的当前时间间隔之前(608)。

例如,宏调度器通过针对在预定时间间隔中以大于相应客户端的相应订阅带宽部分的相应数量传送的相应客户端将相应带宽分配的上限设定在相应订阅带宽部分的相应值,来周期性调节针对每个微调度的相应带宽分配,该预定时间间隔在时间上处于与当前的周期性调节相关联的当前时间间隔之前(610)。

例如,宏调度器通过针对在预定时间间隔中以充分小于相应客户端的相应订阅带宽部分的相应数量进行传送的相应客户端,将相应带宽分配的上限设定在相应的当前实际传输带宽数量的相应值,来周期性调节针对每个微调度器的相应带宽分配,该预定时间间隔在时间上处于与当前的周期性调节相关联的当前时间间隔之前(612)。

例如,宏调度器通过在通过基于实际传输量设定一个或多个相应带宽分配的上限而降低一个或多个相应带宽分配之后,确定未被相应客户端所使用的剩余带宽,并且将未被相应客户端所使用的剩余带宽在当前请求更多带宽分配的相应活跃客户端之间成比例分配,来周期性调节针对每个微调度器的相应带宽分配(614)。

例如,在图6c的示例中,微调度器的每一个控制针对相应客户端的相应虚拟机(vm)的带宽分配,每个客户端订阅带宽的相应预定义部分以由相应mv使用,其中相应客户端的相应vm被托管于云服务器上,其中传出通信链路包括与位于该云服务器上的一个或多个网络接口卡(nic)相关联的传出网络通信链路(616)。

例如,微调度器的每一个控制针对客户端的相应应用的带宽分配,每个相应客户端订阅带宽的相应预定义部分以由相应应用使用,其中相应客户端的相应应用被托管于云服务器上,其中传出通信链路包括与位于该云服务器上的一个或多个网络接口卡(nic)相关联的传出网络通信链路(618)。

例如,宏调度器控制多个微调度器,提供公平排队的近似,而不使用宏调度器和发送器之间的反馈回路(620)。

例如,宏调度器控制多个微调度器,在确定传出网络通信链路并未拥塞时不提供带宽分配控制(622)。

例如,在图6d的示例中,宏调度器控制多个微调度器,向相应客户端提供公平带宽分配的近似,向相应客户端指派相应独立队列(624)。

例如,虚拟交换机可以包括多个相应虚拟端口,其中虚拟端口的一部分与客户端进行通信,并且至少一个虚拟端口与传出通信链路通信(626)。

例如,分别与多个相应客户端通信的相应虚拟端口均与相应令牌桶队列进行通信,令牌桶队列控制针对每个相应客户端的传出包的相应传输速率(628)。

图7a-7b是根据示例实施例图示图1的系统的示例操作的流程图。在图7a的示例中,带宽分配由宏控制器针对相应资源的用户进行控制,相应资源被分别配置为传送到具有预定义的最大传出传输带宽的公用传出通信链路,相应用户中的每一个订阅该传出通信链路的传出传输带宽中的相应预定义部分(702)。

在第一预定时间间隔确定传出通信链路处的传出传输的周期性比特率(704)。

通过将该传出通信链路处的传出传输的周期性比特率与预定义拥塞速率值进行比较,来确定传出通信链路当前是否拥塞(706)。

如果该传出通信链路被确定为当前拥塞,则相应的独立上限队列被分配给当前活跃的多个相应资源的多个相应用户中的每一个,并且达到带宽中与活跃的每个相应客户端相关联的相应订阅部分的相应数量在预定义的第一期限前被分配,其中未被相应客户端所使用的剩余带宽在预定义的第二期限前成比例地在相应活跃客户端之间被共享,并且对该相应资源的相应用户中的每一个的相应带宽分配被周期性调节,以提供公平排队的近似(708)。

例如,在图7b的示例中,独立最大上限队列中的每一个由相应微调度器独立于管理其它相应的独立最大上限队列的其它微调度器进行管理(710)。

例如,周期性调节针对每个微调度器的相应带宽分配包括:访问每个相应活跃客户端在预定时间间隔中所使用的相应带宽数量的度量,该预定时间间隔在时间上处于与当前的周期性调节相关联的当前时间间隔之前(712)。

例如,在并不使用调度器和发送器之间的反馈回路的情况下提供公平排队的近似(714)。

例如,控制针对多个用户的带宽分配包括在确定传出通信链路当前并未拥塞时不提供带宽分配控制(716)。

图8是图示根据示例实施例的图1的系统的示例操作的流程图。在图8的示例中,控制针对执行实体的带宽分配,执行实体分别被配置为向传送到具有预定义的最大传出传输带宽的公用传出通信链路,相应执行实体中的每一个订阅该传出通信链路的传出传输带宽中的相应预定义部分。

控制多个微调度器,每个微调度器控制针对相应执行实体的带宽分配(804)。

在预定义的第一期限前分配带宽中与每个相应执行实体相关联的相应订阅部分,其中未被相应执行实体所使用的剩余带宽在预定义的第二期限前成比例地在相应活跃执行实体之间被共享,在最小化微调度器间的协调的同时,周期性地调节针对每个微调度器的相应带宽分配(806)。

例如,周期性调节针对每个微调度器的相应带宽分配包括访问每个相应活跃客户端在预定时间间隔中所使用的相应带宽数量的度量,预定时间间隔在时间上处于与当前的周期性调节相关联的当前时间间隔之前(808)。

例如,控制多个微调度器针对相应执行实体提供公平带宽分配的近似,将相应独立队列指派给相应执行实体(810)。

iii.某些实施例的多个方面

本文所讨论的特征作为可以以计算领域计算人员所可以理解的许多不同方式来实施的示例实施例而被提供,而并不背离本文的讨论的精神。这样的特征仅被理解为示例实施例特征,而并非意在被理解为仅局限于那些详细描述。

例如,一种系统包括至少一个处理器,以及存储可由该至少一个处理器执行的可执行指令的计算机可读存储介质。该可执行指令包括带宽分配控制器,其包括多个微调度器,每个微调度器控制针对相应客户端的带宽分配,该相应客户端中的每一个订阅传出通信链路中带宽的相应预定义部分。

宏调度器通过以下对该微调度器进行控制:针对每个活跃的相应客户端,在预定义的第一期限前分配与每个活跃的相应客户端相关联的带宽的相应订阅部分,其中未被相应客户端所使用的剩余带宽在预定义的第二期限前成比例地在相应活跃客户端之间被共享,在由宏调度器最小化微调度器间的协调的同时,周期性地调节针对每个微调度器的相应带宽分配。

宏调度器通过访问每个相应活跃客户端在预定时间间隔中所使用的相应带宽数量的度量,来周期性调节针对每个微调度器的相应带宽分配,该预定时间间隔在时间上处于与当前的周期性调节相关联的当前时间间隔之前。

宏调度器通过针对在预定时间间隔中以大于相应客户端的相应订阅带宽部分的相应数量进行传送的相应客户端将相应带宽分配的上限设定在相应订阅带宽部分的相应值来周期性调节针对每个微调度的相应带宽分配,该预定时间间隔在时间上处于与当前的周期性调节相关联的当前时间间隔之前。

宏调度器通过针对在预定时间间隔中以比相应客户端的带宽的相应订阅带宽部分实质更小的相应数量进行传送的相应客户端将相应带宽分配的上限设定为相应的当前实际传输带宽数量的相应值,来周期性地调节针对每个微调度器的相应带宽分配,该预定时间间隔在时间上处于与当前的周期性调节相关联的当前时间间隔之前。

宏调度器通过在通过基于实际传输数量设定一个或多个相应带宽分配的上限而降低一个或多个相应带宽分配之后、来确定未被相应客户端所使用的剩余带宽,并且通过将未被相应客户端所使用的剩余带宽在当前请求更多带宽分配的相应活跃客户端之间成比例地分配,来定期调节针对每个微调度器的相应带宽分配。

这些微调度器中的每个微调度器控制针对相应客户端的相应虚拟机(vm)的带宽分配,这些相应客户端中的每个客户端都订阅带宽的相应预定义部分以供相应mv使用,其中相应客户端的相应vm被托管于云服务器上,其中传出通信链路包括与位于该云服务器上的一个或多个网络接口卡(nic)相关联的传出网络通信链路。

这些微调度器中的每个微调度器控制针对客户端的相应应用的带宽分配,相应客户端中每个客户端都订阅带宽的相应预定义部分以供相应应用所使用,其中相应客户端的相应应用被托管于云服务器上,其中传出通信链路包括与位于该云服务器上的一个或多个网络接口卡(nic)相关联的传出网络通信链路。

传出通信链路包括与网络接口卡(nic)相关联的传出网络通信链路。

宏调度器控制多个微调度器,提供公平排队的近似,而不使用宏调度器和发送器之间的反馈回路。

宏调度器控制多个微调度器,在确定传出网络通信链路并未拥塞时不提供带宽分配控制。

宏调度器控制多个微调度器,向相应客户端提供公平带宽分配的近似,向相应客户端指派相应独立队列。

一种包括多个相应虚拟端口的虚拟交换机,其中虚拟端口的一部分与客户端进行通信,并且至少一个虚拟端口与传出通信链路通信。

分别与多个相应客户端通信的相应虚拟端口均与相应令牌桶队列进行通信,令牌桶队列控制针对每个相应客户端的传出包的相应传输速率。

一种方法包括由宏控制器控制针对多个相应资源的多个用户的带宽分配,相应资源被分别配置为传送到具有预定义的最大传出传输带宽的公用传出通信链路,该相应用户中的每一个订阅该传出通信链路的传出传输带宽中的相应预定义部分。

控制带宽分配包括在第一预定时间间隔确定传出通信链路处的传出传输的周期性比特率,并且通过将该传出通信链路处的传出传输的周期性比特率与预定义拥塞速率值进行比较,来确定传出通信链路当前是否拥塞。

如果该传出通信链路被确定为当前拥塞,则相应的独立上限队列被分配给当前活跃的多个相应资源的多个相应用户中的每一个。达到带宽中与活跃的每个相应客户端相关联的相应订阅部分的相应数量在预定义的第一期限前被分配,其中未被相应客户端所使用的剩余带宽在预定义的第二期限前成比例地在相应活跃客户端之间被共享。

对多个相应资源的多个相应用户中的每一个的相应带宽分配被周期性调节从而提供公平排队的近似。

相应的独立最大上限队列中的每一个由相应微调度器独立于管理其它相应的独立最大上限队列的其它微调度器进行管理,并且

周期性调节针对每个微调度器的相应带宽分配包括:访问每个相应活跃客户端在预定时间间隔中所使用的相应带宽数量的度量,该预定时间间隔在时间上处于与当前的周期性调节相关联的当前时间间隔之前。

在并不使用调度器和发送器之间的反馈回路的情况下提供公平排队的近似。

控制针对多个用户的带宽分配包括在确定传出通信链路当前并未拥塞时不提供带宽分配控制。

一种计算机程序产品包括计算机可读存储介质,该计算机可读存储介质存储可执行指令,该可执行指令使得至少一个计算设备控制针对执行实体的带宽分配,执行实体分别被配置为传送到具有预定义的最大传出传输带宽的公用传出通信链路,该相应执行实体中的每一个订阅该传出通信链路的传出传输带宽中的相应预定义部分。

控制带宽分配包括控制多个微调度器,每个微调度器控制针对相应执行实体的带宽分配。

控制该多个微调度器包括针对每个活跃的相应执行实体,在预定义的第一期限前分配带宽中与每个相应执行实体相关联的相应订阅部分,其中未被相应执行实体所使用的剩余带宽在预定义的第二期限前成比例地在相应活跃执行实体之间被共享,在最小化微调度器间的协调的同时,周期性地调节针对每个微调度器的相应带宽分配。

周期性调节针对每个微调度器的相应带宽分配包括:访问每个相应活跃客户端在预定时间间隔中所使用的相应带宽数量的度量,该预定时间间隔在时间上处于与当前的周期性调节相关联的当前时间间隔之前。

控制多个微调度器提供针对相应执行实体的公平带宽分配的近似,将相应的独立队列指派给相应的执行实体。

计算领域的技术人员将会意识到,可能有许多方式来有效控制本文所讨论的带宽分配而并不背离本文讨论的精神。

多年来,客户隐私和保密性始终是计算环境中被考虑的问题。因此,用于有效控制带宽分配的示例技术可以使用用户所提供的用户输入和/或数据,上述用户已经经由与关联于这种技术的相关应用或服务的一个或多个订阅协议(例如,“服务条款”(tos)协议)而提供了许可。例如,用户可以同意将其输入/数据在设备上传送并存储,尽管可以明确地指示(例如,经由用户接受的协议)每一方都可以控制传输和/或存储如何进行,以及在存在的情况下可以保持什么样的存储级别或持续时间。此外,可以被用来标识用户所使用的设备的标识符可能例如由于散列实际用户信息而被混淆。应当理解的是,任何用户输入/数据都可以根据任何相关管辖区的隐私法律和法规而被获得。

本文所描述的各种技术的实施方式可以以数字电子电路或者以计算机硬件、固件、软件或者它们的组合来实施(例如,被配置为执行指令以实行各种功能的装置)。

实施方式可以被实施为以信号(例如纯信号,例如纯传播信号)体现的计算机程序。这种实施方式在本文中将被称为经由“计算机可读传输介质”而被实施,其在本文中不被认为是“计算机可读存储介质”或如下所述的“计算机可读存储设备”。

可替换地,实施方式可以经由机器可用或机器可读存储设备(例如,磁性或数字介质,例如通用串行总线(usb)存储设备、磁带、硬盘驱动器、光盘(cd)、数字视频磁盘(dvd)等)来实施,其存储可执行指令(例如,计算机程序)以便于由计算装置(例如,计算装置)执行或控制计算装置(例如,计算装置)的操作,上述计算装置例如可编程处理器、专用处理器或设备、计算机或多台计算机。这样的实施方式可以在本文被称为经由“计算机可读存储介质”或“计算机可读存储设备”来实施,并且因此与纯信号(例如纯传播信号)的实施方式有所不同(并且因此在本文中不被认为是如上所述的“计算机可读传输介质”)。因此,如本文所使用的,对“计算机可读存储介质”或“计算机可读存储设备”的引用本身特别排除了信号(例如,传播信号)。

诸如以上所描述的(多个)计算机程序的计算机程序能够以任意形式的编程语言(包括汇编或解释语言)来编写,并且能够以任意形式进行部署,包括作为独立程序或者作为适于在计算环境中使用的模块、组件、子程序或其它单元。计算机程序可以有形地被体现为机器可用或机器可读存储设备(例如,计算机可读介质)上的可执行代码(例如,可执行指令)。可以实施以上所讨论的技术的计算机程序可以被部署为在一台计算机或多台计算机上执行,该多台计算机处于一个地点或者跨多个地点分布并且由通信网络进行互连。

方法步骤可以由一个或多个可编程处理器来实行,它们执行计算机程序以通过对输入数据进行运算并生成输出而执行操作。该一个或多个可编程处理好其可以并行执行指令,和/或可以以分布式配置进行部署以便进行分布式处理。本文所讨论的示例功能还可以由一个或多个硬件逻辑组件来执行,并且装置可以至少部分被实施为一个或多个硬件逻辑组件。作为示例而非限制,可以被使用的硬件逻辑组件的说明性类型包现场可编程门阵列括(fpga)、程序特定集成电路(asic)、程序特定标准产品(assp)、片上系统(soc)、复杂可编程逻辑器件(cpld)等。

作为示例,适于执行计算机程序的处理器包括通用和专用微处理器,以及任意类型的数字计算机的任意一个或多个处理器。通常,处理器将从只读存储器或随机访问存储器或其二者接收指令和数据。计算机的部件可以包括至少一个用于执行指令的处理器以及一个或多个用于存储指令和数据的存储器设备。通常,计算机还可以包括一个或多个用于存储数据的一个或多个大型存储设备或者与之操作耦合以往来于其接收数据或传输数据或者这二者,其例如为磁盘、磁性光盘或光盘。适于体现计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,例如包括半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁性光盘;和cdrom和dvd-rom盘。处理器和存储器可以以专用逻辑电路作为补充或者结合于其中。

为了提供与用户的交互,实施方式可以在具有用于向用户显示信息的显示设备以及用户能够通过其向计算机提供输入的键盘和指示设备的计算机上实施,该显示设备例如crt(阴极射线管)或lcd(液晶显示器)监视器,该指示设备例如鼠标或轨迹球。也能够使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以为任意类型的感官反馈,例如视觉反馈、听觉反馈或触觉反馈。例如,输出可以经由任意形式的感官输出来提供,包括(但并不局限于)视觉输出(例如,视觉手势、视频输出)、音频输出(例如,语言、设备声音)、触觉输出(例如,触碰、设备移动)、温度、气味等。

另外,来自用户的输入能够以任意形式被接收,包括声音、语音或触觉输入。例如,输入可以经由任意形式的感官输入而从用户接收,包括(但并不局限于)视觉输出(例如,视觉手势、视频输出)、音频输出(例如,语言、设备声音)、触觉输出(例如,触碰、设备移动)、温度、气味等。

此外,自然用户界面(nui)可以用于与用户对接。在这种情况下,“nui”可以指任何能够使得用户以“自然”的方式与设备进行交互的接口技术,而并不受诸如鼠标、键盘、遥控器等的输入设备所施加的人为约束。

nui技术的示例可以包括依赖于语音识别、触摸和触笔识别,屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛跟踪、语音和话音、视觉、触摸、手势和机器智能的那些技术。示例nui技术可以包括但不限于触敏显示器、语音和话音识别、意图和目标理解,使用深度相机(例如,立体相机系统、红外相机系统,rgb(红、绿、蓝)相机系统,以及它们的组合)的运动手势检测,使用加速度计/陀螺仪的运动手势检测,面部识别、3d显示,头部、眼睛和注视跟踪,沉浸式增强现实和虚拟现实系统,所有这些都可以提供更为自然的界面,以及使用电场感测电极来感测脑活动的技术(例如脑电图(eeg)和相关技术)。

多种实施方式可以在计算系统中实现,该计算系统包括例如数据服务器的后端组件,或者包括例如应用服务器的中间件组件,或者其包括前端组件,例如具有用户能够通过其与实施方式进行交互的图形用户界面或网络浏览器的客户端计算机,或者一个或多个这样的后端、中间件或前端组件的任意组合。组件可通过例如通信网络的任意形式的介质或数字数据通信进行互连。通信网络的示例包括局域网(lan)和广域网(wan),例如互联网。

虽然已经以特定于结构特征和/或方法动作的语言对主题进行了描述,但是所要理解的是,所附权利要求中所限定的主题并不必然局限于以上所描述的具体特征或动作。相反,以上所描述的具体特征和动作是作为实施权利要求的示例形式而公开。虽然已经如本文所描述的阐述了所描述实施方式的某些特征,但是本领域技术人员现在将能够作出许多修改、替换、改变和等同形式。因此所要理解的是,所附权利要求意在覆盖落入实施例的实际范围之内的所有这样的修改和变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1