CN107872405A - 分布式带宽分配和调节 - Google Patents
分布式带宽分配和调节 Download PDFInfo
- Publication number
- CN107872405A CN107872405A CN201710865808.XA CN201710865808A CN107872405A CN 107872405 A CN107872405 A CN 107872405A CN 201710865808 A CN201710865808 A CN 201710865808A CN 107872405 A CN107872405 A CN 107872405A
- Authority
- CN
- China
- Prior art keywords
- bandwidth
- instance
- bandwidth allocation
- allocation
- demand
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims description 67
- 230000008859 change Effects 0.000 claims description 8
- 238000013500 data storage Methods 0.000 claims description 6
- 239000011800 void material Substances 0.000 claims description 4
- 230000008569 process Effects 0.000 description 51
- 238000004590 computer program Methods 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/14—Charging, metering or billing arrangements for data wireline or wireless communications
- H04L12/1403—Architecture for metering, charging or billing
- H04L12/1407—Policy-and-charging control [PCC] architecture
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
- H04L47/783—Distributed allocation of resources, e.g. bandwidth brokers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/20—Traffic policing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/22—Traffic shaping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/83—Admission control; Resource allocation based on usage prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M15/00—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
- H04M15/66—Policy and charging system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M15/00—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
- H04M15/80—Rating or billing plans; Tariff determination aspects
- H04M15/8027—Rating or billing plans; Tariff determination aspects based on network load situation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/16—Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
- H04W28/18—Negotiating wireless communication parameters
- H04W28/20—Negotiating bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5629—Admission control
- H04L2012/5631—Resource management and allocation
- H04L2012/5632—Bandwidth allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
- H04L2012/6445—Admission control
- H04L2012/6456—Channel and bandwidth allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/15—Flow control; Congestion control in relation to multipoint traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/74—Admission control; Resource allocation measures in reaction to resource unavailability
- H04L47/745—Reaction in network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/822—Collecting or measuring resource availability data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13332—Broadband, CATV, dynamic bandwidth allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13523—Indexing scheme relating to selecting arrangements in general and for multiplex systems bandwidth management, e.g. capacity management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q3/00—Selecting arrangements
- H04Q3/0016—Arrangements providing connection between exchanges
- H04Q3/0062—Provisions for network management
- H04Q3/0066—Bandwidth allocation or management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种分布式带宽分配和调节。一种分布式带宽分配***包括分布式带宽限制器、第一调节器和第二调节器。分布式带宽限制器接收针对第一实体的第一使用数据和针对第二实体的第二使用数据。基于第一使用数据、第二使用数据、和总带宽分配,分布式带宽分配***确定指定能够用于针对第一实体的网络流量的带宽的第一带宽分配以及确定指定能够用于针于第二实体的网络流量的带宽的第二带宽分配,其中第一带宽分配和第二带宽分配的总和不超过总带宽分配。第一带宽分配和第二带宽分配被提供给管理针对第一实体和第二实体的流量的相应调节器。
Description
技术领域
本申请涉及分布式带宽分配和调节。
背景技术
云计算是指基于网络的计算,其中数据中心中容纳的服务器的集合向最终用户提供根据需要的计算资源和数据存储。许多云计算服务允许最终用户在虚拟机或云内的其它环境中执行软件应用。应用和附随的存储件的网络带宽可能针对每个最终用户和针对执行的每个应用程序进程而变化。
云计算提供商必须构建相对大的物理基础设施,可以将云计算服务从其提供给最终用户。因为这种物理基础设施的成本可能是非常巨大,所以提供商往往力求提供物理资源的有效利用来降低成本。因此,提供商将会常常采用各种规则和框架,用于分配诸如处理核、存储空间等的物理资源。同样,提供商将会采用各种规则和框架,用于分配诸如带宽的其它资源。虽然采用这种规则和框架可能导致资源更有效的分配,但是规则和框架还对提供商造成开销成本,例如为了实现这些规则和框架而消耗了诸如核、存储和带宽的资源。
发明内容
该说明书涉及一种分布式带宽分配和调节(throttling)。
一般而言,本说明书中描述主题的一个创造性方案能够在包括分布式带宽限制器、第一调节器(throttler)和第二调节器的***中具体实施。该分布式带宽限制器接收描述针对第一实体的第一带宽使用值的第一使用数据,并且接收描述针对第二实体的第二带宽使用值的第二使用数据。基于第一使用数据、第二使用数据、和总带宽分配,分布式带宽限制器确定指定能够用于针对该第一实体的网络流量的带宽的第一带宽分配以及确定指定能够用于针对该第二实体的网络流量的带宽的第二带宽分配,其中,第一带宽分配和第二带宽分配的总和不超过总带宽分配。第一调节器从分布式带宽限制器接收第一带宽分配,根据第一带宽分配调节能够用于针对该第一实体网络流量的带宽,以及向分布式带宽限制器报告第一使用数据。第二调节器从分布式带宽限制器接收第二带宽分配,根据第二带宽分配调节能够用于针对第二实体的网络流量的带宽,以及向分布式带宽限制器报告第二使用数据。该方案的其它实施例包括相对应的方法和计算机程序,该计算机程序被配置为执行该方法的在计算机存储装置上编码的动作。本文中的术语“分布式”旨在包括共同受制于总带宽分配的、要在两个或更多个装置之间分配的带宽的共享特性,例如,对两个或更多个实体的带宽分配的管理。
能够实现本说明书中描述的主题的特定实施例,以便实现以下优点的一个或多个。迭代监视或使用率允许***利用相对较快的收敛时间、以动态方式调整带宽分配。分布式带宽分配***收敛到对于被管理的每个特定***是唯一的带宽分配,这允许将分布式带宽分配***应用于各自具有唯一和紧急带宽要求的多个***。分布式带宽分配***是工作保留(work-conserving)的,使得对***中每个受管实体的带宽分配的总和等于针对***的总带宽分配,从而导致没有未分配(因此没有浪费)带宽。分布式带宽分配***能够为***中每个受管实体设定最小和最大带宽分配,以便确保每个受管实体将会总是至少具有最小的分配带宽。带宽的迭代分配可以以在收敛时间与***开销使用之间取得平衡的间隔进行,这有助于跨越非常大的***而按比例缩减。此外,带宽资源是公平分配的,使得任何一个实体不会使另一个实体的带宽缺乏。
另一个优点是在各个调节器周围移动时提供的灵活性,例如,能够将调节器放置在远离***的***中,其中,确定分布式带宽计算结果。例如,调节器能够处在不同的用户空间进程、操作***、网络接口控制器(NIC)固件或硬件中。分布式算法能够在相同的物理机器上运行,或者甚至能够在不同的物理机器上运行。
在附图和以下的描述中阐述本说明书中描述的主题的一个或多个实施例的细节。根据说明书、附图和权利要求,本主题的其它特征、方案和优点将变得显而易见。
附图说明
图1是分布式带宽分配***的方框图。
图2是在虚拟机环境中实现的分布式带宽分配***的方框图。
图3是用于以分布式方式分配带宽的示例性过程的流程图。
图4是用于确定对受管实体的带宽需求的示例性过程的流程图。
图5A和图5B是用于以分布式方式分配带宽的示例性过程的流程图。
各附图中相同的附图标记和标号表示相同的元件。
具体实施方式
图1是分布式带宽分配***100的方框图。分布式带宽分配***100管理用于受制于总带宽分配的两个或更多个实体(例如,第一实体150和第二实体160)的带宽分配。如本书面描述中所使用的是,实体是在网络环境中消耗带宽的逻辑资源和/或物理资源。实体可以是物理机器、服务、或一个或多个物理机器上的过程或应用程序的例示。实体的示例包括但不限于虚拟机、容器、存储***、服务器装置、客户端装置等。
总带宽分配是第一实体150和第二实体160针对通过网络102的网络流量可能消耗带宽的量。例如,总带宽分配可以是第一实体和第二实体被允许或被提供使用的带宽的最大量,用于传出和/或传入通过网络102的网络流量。带宽可以是用于出口(egress)流量(即,通过实体发送的网络流量),或者可替代地,可以是用于入口(ingress)流量(即,通过实体接收的网络流量),或可以是用于出口流量和入口流量的组合。***100以工作节约方式分配带宽,使得对实体的带宽分配的总和等于总带宽分配。
***100包括分布式带宽限制器120以及两个或更多个调节器,例如第一调节器130和第二调节器140。分布式带宽限制器120可以接收与过去或当前操作有关的操作数据、操作需求、和/或两个或更多个实体的操作要求(诸如,它们相应的使用数据),并且分别确定针对每个实体的带宽分配。每个调节器对其管理的相应实体强制执行带宽分配。每个调节器还可以被实现在过程、机器或与过程、机器不同的用户空间、或其中实现分布式带宽限制器120的用户空间中。
在图1的示例实现方式中,***100中仅包括两个调节器。但是,可以将***100实现为管理针对N个受管实体的集合的总带宽分配,其中N≥2,以及其中每个受管实体的网络流量都受制于针对那个实体的带宽分配。
在图1中,第一调节器130根据第一带宽分配针对第一实体150对能够用于网络流量的带宽调节。第一带宽分配由环132表示,通过环132将网络流量被表示为横穿(traversing)。同样,第二调节器140根据由环142表示的第二带宽分配针对第二实体160对能够用于网络流量的带宽调节。总带宽分配由环122表示。
在操作中,分布式带宽限制器120从第一调节器130接收描述用于第一实体150的第一带宽使用值的第一使用数据,并且还接收描述用于第二实体160的第二带宽使用值的第二使用数据。第一调节器130和第二调节器140可以将使用数据报告给分布式带宽限制器120。在一些实现方式中,使用数据可以是作为从实体发送到网络102的数据量的值。在其它实现方式中,使用数据可以是作为从实体发送到网络102以及通过网络102由实体接收的数据量的值。
在其它实现方式中,使用数据值可以考虑到还已经通过调节器调节的流量。例如,如果第一实体受制于500GB/s的带宽限制,并且在1秒的报告周期期间,第一实体150已经发送500GB并且已经调节30GB,则使用数据将为530GB。调节器130和140还可以具有相关联的应用编程接口(API),其允许第一实体150和第二实体160向调节器报告带宽使用。
分布式带宽限制器120迭代地接收第一使用数据和第二使用数据,并且使用该数据和总带宽分配来确定第一带宽分配和第二带宽分配。第一带宽分配和第二带宽分配的总和不超过总带宽分配。然后将更新的第一带宽分配和第二带宽分配分别提供给第一调节器130和第二调节器140。
更一般地,对于N个调节器,分布式带宽限制器从每个调节器接收使用数据并确定N个带宽分配,该N个带宽分配的总和不超过总带宽分配。然后将每个带宽分配提供给其相应的调节器。
***100能够在各种不同的环境中被实现。一个示例实现方式是如图2中描述的虚拟机环境200内。在图2中,在用于一个或多个主机的操作***层上实现主用户空间202层。管理程序204监视虚拟机260,并且来自虚拟机260的网络流量通过输入/输出(I/O)队列212流动到虚拟交换机206。可以是虚拟化存储***的存储***250与虚拟机260相关联并提供用于虚拟机260的数据存储,以及管理程序204还管理用于存储***240的流量。在管理程序204中将分布式带宽限制器220和存储***调节器230实例化,以及在虚拟交换机206中实现虚拟机调节器240。
用于存储***250的网络流量由路径252表示,路径252指示存储***流量由存储***调节器230管理并由主内核210处理。流量通过NIC214行进到外部网络102。由路径254表示的用于虚拟机260的网络流量通过虚拟交换机206行进并由虚拟机调节器240管理,然后通过NIC 214行进到外部网络102。
将图2的实现方式映射到图1的***100,第一实体150是存储***250,以及第二实体160是虚拟机260。因此,第一使用数据是存储使用数据,并且第一带宽使用值是用于存储***250的网络流量的存储带宽使用值。同样,第二使用数据是用于虚拟机260的虚拟机使用数据,并且第二带宽使用值是针对用于虚拟机260的网络流量。存储***调节器230根据能够用于针对存储***的网络流量的存储带宽分配来管理用于存储***250的流量,并且虚拟机调节器240根据指定能够用于针对虚拟机的网络流量的带宽的虚拟机带宽分配来管理用于虚拟机的流量。
能够根据一个或多个标准来设定总带宽分配。例如,总带宽分配可以是NIC 214的带宽评级。可替选地,可以基于由虚拟机消耗的物理资源来设定总带宽分配,例如对于每个处理核心,可以提供2GB/s的总带宽分配。可以使用其它适当的标准以设定或选择总带宽分配。
图3是用于以分布式方式分配带宽的示例性过程300的流程图。可以在诸如在图2的虚拟机环境200中,或在包括一个或多个计算机和存储装置的物理***中的***100中实现过程300。
过程300描述***100首先怎样初始化用于受管实体的带宽分配,然后监视受管实体的实际带宽使用,以调整带宽分配。参考以下的图4、图5A和图5B提供图2中描述的算法的更详细描述。
过程300初始化第一带宽分配和第二带宽分配,并且将第一带宽分配提供给第一调节器,以及将第二带宽分配提供给第二调节器(302)。例如,在虚拟机环境的情况下,可以通过分布式带宽限制器220将存储***带宽分配和虚拟机带宽分配初始化地设定为相应的有保证的最小带宽分配。可替代地,可以将存储***带宽分配和虚拟机器带宽分配设定为针对其的总和实际上小于总带宽分配的值。初始值可以是要实现从其最终收敛到稳态带宽分配的起始点。还能够根据分布式带宽限制器220使用的收敛过程使用其它初始化值。
然后,过程300通过重复步骤304、306和308开始迭代带宽管理过程。首先,过程300接收描述用于第一实体的第一带宽使用值的第一使用数据以及描述用于第二实体的第二带宽使用值的第二使用数据(304)。例如,在迭代时间周期之后,调节器230和240将相应的带宽使用值报告给分布式带宽限制器220。可以选择时间周期以在开销成本和收敛时间之间进行平衡。通常,随着时间周期的长度减小,由分布式带宽限制器220造成的开销成本增加,但是到相对稳定状态的带宽分配的收敛时间减少。
在一些实现方式中,时间周期可以是动态的,从在初始化之后的最小值开始并随着带宽分配幅度的变化减小而增加到最大值。例如,随着带宽分配中的从一次迭代到下一次迭代的相对变化减小,分布式带宽限制器220增加迭代时间周期。同样,随着带宽分配中从一次迭代到下一次迭代的相对变化增加,分布式带宽限制器220可以减少迭代时间周期。
过程300基于第一使用数据、第二使用数据、和总带宽分配来确定第一带宽分配和第二带宽分配(306)。在一些实现方式中,分布式带宽限制器220可以为每个实体150和160存储它们相应的使用值,并且基于使用值来确定带宽需求。可以使用平滑和缩放因子来帮助收敛并降低由网络流量的爆发造成的对噪声的敏感度。参考以下图4描述一个示例性带宽需求算法,并且参考以下图5A和图5B描述示例带宽分配确定算法。
过程300将第一带宽分配提供给第一调节器,并且将第二带宽分配提供给第二调节器(308)。带宽分配可以与为先前迭代提供的带宽分配不同。然后,调节器根据分别接收的带宽分配来管理用于它们相应的实体的网络流量。
图4是用于确定对受管实体的带宽需求的示例过程400的流程图。在一些实现方式中,分布式带宽限制器220为每个受管实体执行过程400。该过程400利用缩放因子和历史使用值的窗口以确定对实体的需求。
过程400基于当前带宽使用值和当前带宽需求来确定缩放因子(402)。缩放因子被用于按比例放大(或按比例缩小)最终带宽需求计算。在一些实现方式中,缩放因子可以从最小值变化到最大值,并且可以针对每个迭代来确定。
在一个示例性实现方式中,可以基于使用值和当前需求来调整缩放因子。例如,对于第i次迭代,可以使用以下算法:
其中:
usage_value[i]是针对第i次迭代的使用值;
demand[i-1]是针对i-1迭代的带宽需求;
K是阈值,其通常小于一个单位(unity);
INC是增量值;
Max_scale_factor是最大缩放因子;以及
Reset_value是可以向其重置缩放因子的值。
可以基于收敛时间和灵敏度的平衡来选择K、INC、Max_scale_factor和Reset_value的值。
过程400基于缩放因子以及一个或多个先前带宽使用值来确定新的带宽需求(404)。可以使用各种适当的函数以确定带宽需求,并且可以基于正在管理实体的类型来选择函数。例如,对于虚拟机网络流量,需求可以是基于为虚拟机确定的缩放因子与针对虚拟机的N个先前使用值的最大值的乘积,例如,Demand_VM[i]=scale_factor*max(Usage_value[i-1]…Usage_value[i-N])
还能够使用其它函数,诸如,缩放因子与N个先前使用值的平均值的乘积。在一些实现方式中,还可以使用例如总带宽分配的1%的非零下界值,以确保所确定的需求带宽总是大于0。
用于确定需求的N的值能够针对每个受管实体而变化。对于具有非常突发性流量的实体,可以相对于具有较少突发性流量的实体增加N的值。
还能够使用其它带宽需求计算算法。
在为每个实体确定所需求的带宽之后,然后分布式带宽分配器为每个实体确定带宽分配,并且将新的带宽分配分布给调节器。能够使用各种适当的带宽分配算法,并且参考图5A和图5B描述一个示例。具体而言,图5A和图5B是用于以分布式方式分配带宽的示例过程500的流程图。过程500具有两个主要分支,当对于实体计算的带宽需求的总和大于总带宽分配时,采用图5A中示出的第一分支。当为实体计算的带宽需求总和小于总带宽分配时,采用图5B中示出的第二分支。
过程500确定第一带宽需求和第二带宽需求(502)。例如,分布式带宽限制器220可以使用针对每个受管实体的过程400(或一些其它过程)以确定针对那个实体的带宽需求。在图2的示例中,分布式带宽限制器220将存储***带宽需求确定为第一带宽需求并且将虚拟机带宽需求确定为第二需求。
过程500确定第一带宽需求和第二带宽需求的总和是否超过总带宽分配(504)。如果过程500不确定第一带宽需求和第二带宽需求的总和超过总带宽分配,则过程500分支到以下参考图5B描述并在稍后讨论的下一个步骤516。
如果过程500确定第一带宽需求和第二带宽需求的总和超过总带宽分配,则过程500确定第一带宽需求是否超过有保证的第一分配,以及第二带宽需求是否超过有保证的第二分配(506)。当针对实体的所有相应带宽需求超过其相应的有保证的分配时,每个调节器具有被指定为实体带宽分配的有保证的分配。因此,如果过程确定第一带宽需求超过有保证的第一分配并且第二带宽需求超过有保证的第二分配,则过程500将第一带宽分配设定为该有保证的第一分配,并且将第二带宽分配设定为有保证的第二分配(508)。有保证的分配可以是相等的量,例如,N个调节器中的每个有保证的分配可以是1/N*总带宽分配。在其它实现方式中,有保证的分配可以相互不同,例如,虚拟机可以具有总分配带宽的40%的有保证的分配,以及存储***可以具有总分配带宽的60%的有保证的分配。
为了说明起见,假设总带宽分配为2GB/s,以及假设虚拟机需求为1.10GB/s和存储***需求为1.5GB/s。另外,假设虚拟机的有保证的带宽分配为800MB/s,针对存储***的有保证的带宽分配为1.2GB/s。在这种情况下,虚拟机带宽分配将会被设定为800MB/s,以及存储***带宽将会被设定为1.2GB/s。
当所有带宽需求的总和超过总带宽分配,但并非所有带宽需求都超过它们相应的有保证的分配时,分布式带宽限制器220视图基于实体的相关需求来分配带宽。在这些情况下,针对受管实体的分配带宽可以因此最终小于针对那个实体的有保证的带宽分配。
例如,如果该过程不确定第一带宽需求超过有保证的第一分配并且第二带宽需求超过有保证的第二分配,则过程500确定第二带宽需求是否小于有保证的第二分配(510)。如果过程500确定第二带宽需求小于有保证的第二分配,则过程500将第二带宽分配设定为第二带宽需求,并且将第一带宽分配设定为总带宽分配与第二带宽分配的差(512)。
同样为了说明起见,假设总带宽分配为2GB/s,并且假设虚拟机需求(第二带宽需求)为400MB/s,以及存储***需求(第一带宽需求)为1.8GB/s。另外,假设针对虚拟机的有保证的带宽分配为800MB/s,以及存储***的有保证带宽分配为1.2GB/s。在这种情况下,虚拟机带宽分配将会被设定为400MB/s,存储***带宽将会被设定为1.6GB/s。
如果过程不确定第二带宽需求小于有保证的第二分配,则过程500将第一带宽分配设定为第一带宽需求,并且将第二带宽分配设定为总带宽分配与第一带宽分配的差(514)。同样为了说明起见,假设总带宽分配为2GB/s,并且假设虚拟机需求(第二带宽需求)为1.3GB/s,以及存储***需求(第一带宽需求)为1.0GB/s。另外,假设虚拟机的有保证的带宽分配为800MB/s,以及存储***的有保证的带宽分配为1.2GB/s。在这种情况下,虚拟机带宽分配将会被设定为1.0GB/s,存储***带宽将会被设定为1.0GB/s。
返回504,如果过程500没有确定第一带宽需求和第二带宽需求的总和超过总带宽分配,则过程500确定第一带宽需求和第二带宽需求二者是否小于它们相应的有保证的分配。如果过程确定第一带宽需求和第二带宽需求二者小于它们相应的有保证的分配,则过程500将第一带宽分配设定为有保证的第一分配并且将第二带宽分配设定为有保证的第二分配(518)。更一般地,在其中所有带宽需求的总和小于总分配带宽,并且针对实体的每个带宽需求小于针对那个实体的有保证的带宽分配的情况下,将针对每个实体的带宽分配设定为针对那个实体的有保证的带宽分配。
为了说明起见,再次假设总带宽分配为2GB/s,并且假设虚拟机需求为200MB/s,以及存储***需求为300MB/s。此外假设虚拟机的有保证的带宽分配为800MB/s,针对存储***的有保证的带宽分配为1.2GB/s。在这种情况下,虚拟机带宽分配将会被设定为800MB/s,存储***带宽将会被设定为1.2GB/s。
当所有带宽需求的总和小于总带宽分配,但是带宽需求的一些超过它们各自的有保证的分配时,分布式带宽限制器将会再次视图基于实体的相对需求来分配带宽。例如,如果过程不确定第一带宽需求和第二带宽需求二者小于它们相应的有保证的分配,则过程500确定第一带宽需求是否超过有保证的第一带宽分配(520)。如果过程确定第一带宽需求超过有保证的第一带宽分配,则过程500将第一带宽分配设定为第一带宽需求,并且将第二带宽分配设定为总带宽分配与第一带宽分配的差(522)。
为了说明起见,再次假设总带宽分配为2GB/s,并且假设虚拟机需求为400MB/s,以及存储***需求为1.4GB/s。另外,假设针对虚拟机的有保证的带宽分配为800MB/s,并且针对存储***的有保证的带宽分配为1.2GB/s。在这种情况下,虚拟机带宽分配将会被设定为600MB/s,以及存储***带宽将会被设定为1.4GB/s。
如果过程不确定第一带宽需求超过有保证的第一带宽分配,则过程500将第二带宽分配设定为第二带宽需求,并且将第一带宽分配设定为总带宽分配与第二带宽分配的差(524)。为了说明起见,假设总带宽分配为2GB/s,并且假设虚拟机需求为900MB/s,以及存储***需求为1.0GB/s。另外,假设针对虚拟机的有保证的带宽分配为800MB/s,以及针对存储***的有保证的带宽分配为1.2GB/s。在这种情况下,虚拟机带宽分配将会被设定为900MB/s,存储***带宽将会被设定为1.1GB/s。
即使利用基于先前使用值的带宽分配,也可以存在其中总带宽分配可以具有一些未充分利用的带宽的情况。例如,在将针对实体的分配带宽设定为其确定的需求带宽时,可能会发生这种情况。因此,在一些实现方式中,分布式带宽限制器220提供基于观察到的未使用带宽的带宽分配偏移。
例如,假设对于先前的迭代,第一实体具有被设定为其带宽需求的带宽分配。如果对针对先前周期的那个实体观察到未使用的带宽,则能够在当前周期期间将该未使用的带宽分配给其它流量,例如分配给针对一个或多个其它实体的流量。分布式带宽限制器可以使用以下算法来完成带宽分配偏移:
if(bandwidth_allocation_1[i-1]==demand_1[i-1])
unused_bandwidth=bandwidth_allocation_1[i-1]–usage_value_1[i-1]
bandwidth_allocation_2[i]=bandwidth_allocation_2[i]+unused_bandwidth
其中:
bandwidth_allocation_1[i-1]是针对先前迭代的第一实体的带宽分配;
demand_1[i-1]是对针对先前迭代的第一实体的带宽需求;
usage_value_1[i-1]是对先前迭代报告的使用值;以及
bandwidth_allocation_2[i]是对针对紧随先前迭代的当前迭代的第二实体的带宽分配。
本说明书中的所述主题和操作的实施例能够在数字电子电路中、或在包括在本说明书中公开的结构及其结构等同物的计算机软件、固件或硬件中、或在它们中的一个或多个的组合中实现。本说明书所述主题的实施例能够被实现为在计算机存储介质上编码的,以通过数据处理装置执行或控制数据处理装置的操作的一个或多个计算机程序,即计算机程序指令的一个或多个模块。
计算机存储介质能够是计算机可读存储装置、计算机可读存储基板、随机或串行存取存储器阵列或装置,或它们的一个或多个的组合,或被包括在其中。此外,当计算机存储介质不是传播信号时,计算机存储介质能够是在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质也能够是一个或多个单独的物理组件或介质(例如,多个CD,光盘、或其它存储装置),或被包括在其中。
本说明书中描述的操作能够被实现为通过数据处理装置对于在一个或多个计算机可读存储装置上存储或从其它源接收的数据执行的操作。
术语“数据处理装置”涵盖用于处理数据的所有种类的设备、装置和机器,作为示例,其包括可编程处理器、计算机、片上***,或上述中的多个,或上述中的组合。设备能够包括例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)的专用逻辑电路。除了硬件之外,设备还能够包括为所考虑的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理***、操作***、跨平台运行时(runtime)环境、虚拟机、或它们的一个或多个的组合的代码。设备和执行环境能够实现各种不同的计算模型基础设施,诸如web服务、分布式计算和网格计算基础设施。
计算机程序(还称为程序、软件、软件应用程序、脚本或代码)能够以任何形式的编程语言写入,该任何形式的编程语言包括编译或解释语言、声明或过程性语言,并且能够被部署在任何形式中,包括作为适用于计算环境的独立程序或作为模块、组件、子程序、对象或其它单元。计算机程序可以但不一定与文件***中的文件相对应。程序能够被存储在保持其它程序或数据(例如,在标记语言文档中存储的一个或多个脚本)的文件的部分中,存储在专用于所考虑的程序的单个文件中,或存储在多个协同文件中(例如,存储一个或多个模块、子程序或代码的部分的文件)。能够将计算机程序部署为执行在一个计算机上,或者在位于一个站点或者跨在多个站点分布并通过通信网络互连的多个计算机上执行。
本说明书中描述的过程和逻辑流程能够通过执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据操作并产生输出来执行动作。过程和逻辑流程还能够通过专用逻辑电路(例如FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行,并且设备还能够被实现为专用逻辑电路(例如FPGA(现场可编程门阵列)或ASIC(专用集成电路))。
作为示例,适合于执行计算机程序的处理器包括作为示例通用和专用微处理器二者以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将会从只读存储器或随机存取存储器或二者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器装置。通常,计算机还将会包括用于存储数据的一个或多个大容量存储装置(例如磁盘、磁光盘、或光盘),或者计算机还将会可操作地被耦合以从用于存储数据的一个或多个大容量存储装置(例如磁盘、磁光盘、或光盘)接收数据或向用于存储数据的一个或多个大容量存储装置(例如磁盘、磁光盘、或光盘)传送数据或二者兼有。但是,计算机不一定具有这样的装置。此外,计算机能够被嵌入在另一个装置中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位***(GPS)接收器或便携式存储装置(例如,通用串行总线(USB)闪存驱动器),仅举几例。适用于存储计算机程序指令和数据的装置包括所有形式的非易失性存储器、介质和存储装置,作为示例,包括例如EPROM、EEPROM的半导体存储装置和闪速存储器装置;例如内部硬盘或可移动盘的磁盘;磁光盘;和CD ROM和DVD ROM盘。处理器和存储器能够由专用逻辑电路补充或并入在其中。
为了提供用于与用户的交互,能够在具有用于向用户显示信息显示器装置(例如,CRT(阴极射线管)或LCD(液晶显示器))、和用户能够通过其向计算机提供输入的键盘和指示装置(例如,鼠标或轨迹球)的计算机上实现本说明书中描述的主题的实施例。其它类型的装置还能够被用于提供用于与用户的交互;例如,提供给用户的反馈能够是例如视觉反馈、听觉反馈、或触觉反馈的任何形式的感觉性反馈;并且可以包括声音、语音或触觉输入的任何形式接收来自用户的输入。此外,计算机能够通过向由用户使用的装置发送文档并从其接收文档来与用户进行交互;例如,通过响应于从web浏览器接收到的请求向用户的用户装置上的网络浏览器发送网页。
本说明书中描述的主题的实施例能够在包括后端组件(例如,作为数据服务器)或包括中间件组件(例如,应用服务器)或包括前端组件(例如,具有图形用户界面或Web浏览器,用户能够通过其与本说明书中描述的主题的实现方式交互的用户计算机),或包括这样的后端组件、中间件组件、前端组件的一个或多个的任何组合的计算***中实现。***的组件能够通过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、网络间网络(例如,互联网)、和对等网络(例如,自组织(ad hoc)对等网络)。
计算***能够包括用户和服务器。用户和服务器通常相互远离,并且典型地通过通信网络进行交互。用户和服务器的关系凭借在相应计算机上运行并相互具有用户-服务器关系的计算机程序而产生。在一些实施例中,服务器向用户装置传输数据(例如,HTML页面)(例如,出于向与用户装置交互的用户显示数据并从与用户装置交互的用户接收用户输入的目的)。能够在服务器处从用户装置接收在用户装置处生成的数据(例如,用户交互的结果)。
虽然本说明书包含许多具体的实现细节,但是这些细节不应当被视为对任何特征或可要求保护的范围的限制,仅仅是对具体实施例特有特征的描述。在单独实施例的上下文中本说明书所述的某些特征还能够在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征还能够独立地或以任何合适的子组合在多个实施例中实现。此外,虽然以上可以将这些特征描述为按照某些组合起作用,并且甚至一开始这样要求保护,但是在某些情况下,能够从组合中去除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。
类似地,虽然在附图中以特定顺序描述操作,但是这不应当被理解为要求以所示特定顺序或以连续顺序执行这些操作,或者执行所有所示操作以实现期望结果。在某些情况下,多任务和并行处理可能是有利的。此外,以上描述的实施例中各种***组件的分离不应当被理解为在所有实施例中需要这样的分离,并且应当理解的是,所描述的程序组件和***通常能够被集成在单个软件产品中或打包成多个软件产品。
因此,已经描述主题的特定实施例。其它实施例落入所附权利要求的范围内。在一些情况下,权利要求中引用的动作可以以不同的顺序执行,并且仍然实现期望结果。此外,附图中描绘的过程不一定需要示出的特定顺序或连续顺序,以获得期望的结果。在某些实现方式中,多任务和并行处理可能是有利的。
Claims (21)
1.一种分布式带宽分配***,所述分布式带宽分配***用于管理对于两个或更多个实体的带宽分配,所述两个或更多个实体受制于总带宽分配,所述***包括:
分布式带宽限制器,所述分布式带宽限制器用于:
接收描述针对第一实体的第一带宽使用值的第一使用数据;以及
接收描述针对第二实体的第二带宽使用值的第二使用数据;以及
基于所述第一使用数据、所述第二使用数据、和总带宽分配,确定指定能够用于针对所述第一实体的网络流量的带宽的第一带宽分配以及确定指定能够用于针对所述第二实体的网络流量的带宽的第二带宽分配,其中,所述第一带宽分配和所述第二带宽分配的总和不超过所述总带宽分配;
第一调节器,用于:
从所述分布式带宽限制器接收所述第一带宽分配;
根据所述第一带宽分配,调节能够用于针对所述第一实体的网络流量的带宽;以及
向所述分布式带宽限制器报告所述第一使用数据;以及
第二调节器,用于:
从所述分布式带宽限制器接收所述第二带宽分配;
根据所述第二带宽分配,调节能够用于针对所述第二实体的网络流量的带宽;以及
向所述分布式带宽限制器报告所述第二使用数据。
2.根据权利要求1所述的***,其中,所述分布式带宽限制器通过基于先前的第一带宽使用值确定第一实体带宽需求,以及基于先前的第二带宽使用值确定第二实体带宽需求,来确定所述第一带宽分配和所述第二带宽分配。
3.根据权利要求2所述的***,其中,所述分布式带宽限制器迭代地确定所述第一带宽分配和所述第二带宽分配,并且针对每个迭代,向所述第一调节器提供所述第一带宽分配,以及向所述第二调节器提供所述第二带宽分配。
4.根据权利要求3所述的***,其中,针对每个迭代,所述分布式带宽限制器:
基于当前第一带宽使用值和所述第一实体带宽需求确定第一实体缩放因子,以及基于当前第二带宽使用值和所述第二实体带宽需求确定第二实体缩放因子;以及
基于相应的第一实体缩放因子和第二实体缩放因子确定所述第一带宽分配和所述第二带宽分配。
5.根据权利要求4所述的***,其中:
针对每个迭代,所述分布式带宽限制器:
基于所述第一实体带宽需求,确定所述当前第一带宽使用值是否满足第一实体需求阈值;以及
基于所述第二实体带宽需求,确定所述当前第二带宽使用值是否满足第二实体需求阈值;
针对所述当前第一带宽使用值满足所述第一实体需求阈值的每个迭代,所述分布式带宽限制器增加所述第一实体缩放因子,并且针对所述当前第一带宽使用值不满足所述第一实体需求阈值的每个迭代,所述分布式带宽限制器将所述第一实体缩放因子重置为初始第一实体缩放因子值;以及
针对所述当前第二带宽使用值满足所述第二实体需求阈值的每个迭代,所述分布式带宽限制器增加所述第二实体缩放因子,并且针对所述当前第二带宽使用值不满足所述第二实体需求阈值的每个迭代,所述分布式带宽限制器将所述第二实体缩放因子重置为初始第二实体缩放因子值。
6.根据权利要求5所述的***,其中:
所述分布式带宽限制器基于所述第一实体缩放因子与多个先前第一带宽使用值中的至少一个的乘积来确定所述第一实体带宽需求;以及
所述分布式带宽限制器基于所述第二实体缩放因子与多个先前第二带宽使用值中的至少一个的乘积来确定所述第二实体带宽需求。
7.根据权利要求3所述的***,其中,针对所述分布式带宽限制器确定所述第一实体带宽需求与所述第二实体带宽需求的总和超过所述总分配带宽的每个迭代:
当所述第一实体带宽需求超过有保证的第一带宽分配并且所述第二实体带宽需求超过有保证的第二带宽时,所述分布式带宽限制器将所述第一带宽分配设定为所述有保证的第一带宽分配,并且将所述第二带宽分配设定为所述有保证的第二带宽分配分配;
当所述第二实体带宽需求小于所述有保证的第二带宽分配时,所述分布式带宽限制器将所述第二带宽分配设定为所述第二实体带宽需求,然后将所述第一带宽分配设定为所述总分配带宽与所述第二带宽分配的差;以及
当所述第一实体带宽需求小于所述有保证的第一带宽分配时,所述分布式带宽限制器将所述第一带宽分配设定为所述第一实体带宽需求,然后将所述第二带宽分配设定为所述总分配带宽与所述第一带宽分配的差。
8.根据权利要求3所述的***,其中,针对所述分布式带宽限制器确定所述第一实体带宽需求与所述第二实体带宽需求的总和小于所述总分配带宽的每个迭代:
当所述第一实体带宽需求小于有保证的第一带宽分配并且所述第二实体带宽需求小于有保证的第二带宽分配时,所述分布式带宽限制器将所述第一带宽分配设定为所述有保证的第一带宽分配,并且将所述第二带宽分配设定为所述有保证的第二带宽分配;
当所述第一实体带宽需求大于所述有保证的第一带宽分配时,所述分布式带宽限制器将所述第一带宽分配设定为所述第一实体带宽需求,然后将所述第二带宽分配设定为所述总分配带宽与所述第一带宽分配的差;以及
当所述第二实体带宽需求大于所述有保证的第二带宽分配时,所述分布式带宽限制器将所述第二带宽分配设定为所述第二实体带宽需求,然后将所述第一带宽分配设定为所述总分配带宽与所述第二带宽分配的差。
9.根据前述权利要求任一项所述的***,其中:
所述第一实体是存储***,并且所述第二实体是所述存储***为其提供数据存储的虚拟机;
所述第一使用数据是存储***使用数据,并且所述第一带宽使用值是用于针对所述存储***的网络流量的存储带宽使用值;以及
所述第二使用数据是用于虚拟机的虚拟机使用数据,并且所述第二带宽使用值是用于针对所述虚拟机的网络流量;
所述第一带宽分配是指定能够用于针对所述存储***的网络流量的带宽的存储带宽分配;
所述第二带宽分配是指定能够用于针对所述虚拟机的网络流量的带宽的虚拟机带宽分配;
所述第一调节器是根据所述存储***带宽分配来调节能够用于针对所述存储***的网络流量的带宽的存储***调节器;以及
所述第二调节器是根据所述虚拟机带宽分配来调节能够用于针对所述虚拟机的网络流量的带宽的虚拟机调节器。
10.根据权利要求9所述的***,其中:
所述分布式带宽限制器和所述存储***调节器在管理程序中被实例化,所述管理程序管理所述虚拟机以及针对所述虚拟机存储的、用于所述存储***的网络流量;以及
所述虚拟机调节器被实现在虚拟交换机中,针对所述虚拟机的网络流量通过所述虚拟交换机被路由到在所述虚拟机被实例化在其上的主机外部的网络。
11.一种通过数据处理设备执行的计算机实现方法,所述方法包括:
通过所述数据处理设备并且从针对第一实体的第一调节器接收描述针对所述第一实体的第一带宽使用值的第一使用数据;以及
通过所述数据处理设备并且从针对第二实体的第二调节器接收描述针对所述第二实体的第二带宽使用值的第二使用数据;
基于所述第一使用数据、所述第二使用数据、和总带宽分配,通过所述数据处理设备确定第一带宽分配和第二带宽分配,所述第一带宽分配指定能够用于针对所述第一实体的网络流量的带宽的第一带宽分配,所述第二带宽分配指定能够用于针对所述第二实体的网络流量的带宽的第二带宽分配,其中,所述第一带宽分配与所述第二带宽分配的总和不超过所述总带宽分配;
通过所述数据处理设备将所述第一带宽分配提供给所述第一调节器,其中,所述第一调节器根据所述第一带宽分配来调节能够用于针对所述第一实体的网络流量的带宽;以及
通过所述数据处理设备将所述第二带宽分配提供给所述第二调节器,其中,所述第二调节器根据所述第二带宽分配来调节能够用于针对所述第二实体的网络流量的带宽。
12.根据权利要求11所述的计算机实现方法,其中,确定所述第一带宽分配和所述第二带宽分配包括基于先前的第一带宽使用值来确定第一实体带宽需求,以及基于先前的第二带宽使用值来确定第二实体带宽需求。
13.根据权利要求12所述的计算机实现方法,其中,确定所述第一带宽分配和所述第二带宽分配包括迭代地确定所述第一带宽分配和所述第二带宽分配,并且针对每个迭代,将所述第一带宽分配提供给所述第一调节器,将所述第二带宽分配提供给所述第二调节器。
14.根据权利要求13所述的计算机实现方法,其中,针对每个迭代,所述方法包括:
基于当前第一带宽使用值和所述第一实体带宽需求确定第一实体缩放因子,以及基于当前第二带宽使用值和所述第二实体带宽需求确定第二实体缩放因子;以及
基于相应的第一实体缩放因子和第二实体缩放因子确定所述第一带宽分配和所述第二带宽分配。
15.根据权利要求14所述的计算机实现方法,其中:
对于每个迭代,所述方法包括:
基于所述第一实体带宽需求来确定所述当前第一带宽使用值是否满足第一实体需求阈值;以及
基于所述第二实体带宽需求来确定所述当前第二带宽使用值是否满足第二实体需求阈值;
针对所述当前第一带宽使用值满足所述第一实体需求阈值的每个迭代,增加所述第一实体缩放因子,并且针对所述当前第一带宽使用值不满足所述第一实体需求阈值的每个迭代,将所述第一实体缩放因子重置为初始第一实体缩放因子值;以及
针对所述当前第二带宽使用值满足所述第二实体需求阈值的每个迭代,增加所述第二实体缩放因子,并且针对所述当前第二带宽使用值不满足所述第二实体需求阈值的每个迭代,将所述第二实体缩放因子重置为初始第二实体缩放因子值。
16.根据权利要求15所述的计算机实现方法,还包括:
基于所述第一实体缩放因子与多个先前第一带宽使用值中的至少一个的乘积来确定所述第一实体带宽需求;以及
基于所述第二实体缩放因子与多个先前第二带宽使用值中的至少一个的乘积来确定所述第二实体带宽需求。
17.根据权利要求13所述的计算机实现方法,其中,针对所述第一实体带宽需求与所述第二实体带宽需求的总和超过所述总分配带宽的每个迭代:
当所述第一实体带宽需求超过有保证的第一带宽分配并且所述第二实体带宽需求超过有保证的第二带宽时,将所述第一带宽分配设定为所述有保证的第一带宽分配,并且将所述第二带宽分配设定为所述有保证的第二带宽分配;
当所述第二实体带宽需求小于所述有保证的第二带宽分配时,将所述第二带宽分配设定为所述第二实体带宽需求,然后将所述第一带宽分配设定为所述总分配带宽与所述第二带宽分配的差;以及
当所述第一实体带宽需求小于所述有保证的第一带宽分配时,将所述第一带宽分配设定为所述第一实体带宽需求,然后将所述第二带宽分配设定为所述总分配带宽与所述第一带宽分配的差。
18.根据权利要求13所述的计算机实现方法,其中,针对所述第一实体带宽需求与所述第二实体带宽需求的总和小于所述总分配带宽的每个迭代:
当所述第一实体带宽需求小于有保证的第一带宽分配并且所述第二实体带宽需求小于有保证的第二带宽分配时,将所述第一带宽分配设定为所述有保证的第一带宽分配,并且将所述第二带宽分配设定为所述有保证的第二带宽分配;
当所述第一实体带宽需求大于所述有保证的第一带宽分配时,将所述第一带宽分配设定为所述第一实体带宽需求,然后将所述第二带宽分配设定为所述总分配带宽与所述第一带宽分配的差;以及
当所述第二实体带宽需求大于所述有保证的第二带宽分配时,将所述第二带宽分配设定为所述第二实体带宽需求,然后将所述第一带宽分配设定为所述总分配带宽与所述第二带宽分配的差。
19.根据权利要求11至18任一项所述的计算机实现方法,其中:
所述第一实体是存储***,并且所述第二实体是所述存储***为其提供数据存储的虚拟机;
所述第一使用数据是存储***使用数据,并且所述第一带宽使用值是用于针对所述存储***的网络流量的存储带宽使用值;以及
所述第二使用数据是用于虚拟机的虚拟机使用数据,并且所述第二带宽使用值是用于针对所述虚拟机的网络流量;
所述第一带宽分配是指定能够用于针对所述存储***的网络流量的带宽的存储带宽分配;
所述第二带宽分配是指定能够用于针对所述虚拟机的网络流量的带宽的虚拟机带宽分配;
所述第一调节器是根据所述存储***带宽分配来调节能够用于针对所述存储***的网络流量的带宽的存储***调节器;以及
所述第二调节器是根据所述虚拟机带宽分配来调节能够用于针对所述虚拟机的网络流量的带宽的虚拟机调节器。
20.一种存储指令的非暂时性计算机存储装置,所述指令在由数据处理装置执行时使所述数据处理装置执行操作,所述操作包括:
从针对第一实体的第一调节器接收描述针对所述第一实体的第一带宽使用值的第一使用数据;以及
从针对第二实体的第二调节器接收描述针对所述第二实体的第二带宽使用值的第二使用数据;
基于所述第一使用数据、所述第二使用数据、和总带宽分配,确定指定能够用于针对所述第一实体的网络流量的带宽的第一带宽分配以及确定指定能够用于针对所述第二实体的网络流量的带宽的第二带宽分配,其中,所述第一带宽分配和所述第二带宽分配的总和不超过所述总带宽分配;
将所述第一带宽分配提供给所述第一调节器,其中,所述第一调节器根据所述第一带宽分配来调节能够用于针对所述第一实体的网络流量的带宽;以及
将所述第二带宽分配提供给所述第二调节器,其中,所述第二调节器根据所述第二带宽分配来调节能够用于针对所述第二实体的网络流量的带宽。
21.根据权利要求20所述的非暂时性计算机存储装置,其中,所述操作还包括根据权利要求12至19任一项所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662398947P | 2016-09-23 | 2016-09-23 | |
US62/398,947 | 2016-09-23 | ||
US15/686,318 | 2017-08-25 | ||
US15/686,318 US10623330B2 (en) | 2016-09-23 | 2017-08-25 | Distributed bandwidth allocation and throttling |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107872405A true CN107872405A (zh) | 2018-04-03 |
Family
ID=59846688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710865808.XA Pending CN107872405A (zh) | 2016-09-23 | 2017-09-22 | 分布式带宽分配和调节 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10623330B2 (zh) |
EP (1) | EP3516834B1 (zh) |
CN (1) | CN107872405A (zh) |
DE (2) | DE102017120361B4 (zh) |
GB (1) | GB2556398B (zh) |
IE (1) | IE20170197A1 (zh) |
SG (1) | SG10201707703RA (zh) |
WO (1) | WO2018057255A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109728933A (zh) * | 2018-11-21 | 2019-05-07 | 电信科学技术第五研究所有限公司 | 分布式应用软件网络流量控制方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10819656B2 (en) * | 2017-07-24 | 2020-10-27 | Rubrik, Inc. | Throttling network bandwidth using per-node network interfaces |
US10339016B2 (en) | 2017-08-10 | 2019-07-02 | Rubrik, Inc. | Chunk allocation |
CN110858808A (zh) * | 2018-08-23 | 2020-03-03 | 阿里巴巴集团控股有限公司 | 一种实现限速的方法、***及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030123482A1 (en) * | 2001-12-27 | 2003-07-03 | Kim Seung Hwan | Method for dynamically allocating bandwidth in ATM passive optical network |
CN101159699A (zh) * | 2007-11-27 | 2008-04-09 | 杭州华三通信技术有限公司 | 分布式设备交换网带宽动态分配方法及装置 |
CN101771902A (zh) * | 2009-01-07 | 2010-07-07 | 华为技术有限公司 | 分配无源光网络上行带宽的方法、***及装置 |
CN102377675A (zh) * | 2011-11-17 | 2012-03-14 | 海能达通信股份有限公司 | 一种带宽动态分配方法、装置和*** |
US20160080206A1 (en) * | 2014-09-17 | 2016-03-17 | Acelio, Inc. | System and method for providing quality of service to data center applications by controlling the rate which data packets are transmitted |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1094277C (zh) | 1996-03-18 | 2002-11-13 | 通用仪器公司 | 通信网络的动态带宽分配 |
US6961341B1 (en) * | 1996-07-02 | 2005-11-01 | Microsoft Corporation | Adaptive bandwidth throttling for network services |
US5805599A (en) | 1996-12-04 | 1998-09-08 | At&T Corp. | Adaptive channel allocation system for communication network |
US7072295B1 (en) | 1999-09-15 | 2006-07-04 | Tellabs Operations, Inc. | Allocating network bandwidth |
US6845106B2 (en) | 2000-05-19 | 2005-01-18 | Scientific Atlanta, Inc. | Allocating access across a shared communications medium |
JP3591498B2 (ja) | 2001-08-31 | 2004-11-17 | 三菱電機株式会社 | 帯域更新方法 |
US7421499B1 (en) | 2002-04-10 | 2008-09-02 | At&T Corp. | Automated adjustment of IP address lease time based on usage |
US7630314B2 (en) | 2006-12-05 | 2009-12-08 | Latitue Broadband, Inc. | Methods and systems for dynamic bandwidth management for quality of service in IP Core and access networks |
US8483236B2 (en) | 2007-07-31 | 2013-07-09 | Intel Corporation | Dynamic bandwidth allocation for multiple virtual MACs |
US9391921B1 (en) | 2008-03-18 | 2016-07-12 | Packeteer, Inc. | Virtual bandwidth management deployment architectures |
US7805516B2 (en) | 2008-10-14 | 2010-09-28 | Dell Products L.P. | Enabling throttling of resources on a virtualization enabled information handling system |
EP2446590B1 (en) | 2009-06-22 | 2015-11-25 | Citrix Systems, Inc. | Systems and methods for platform rate limiting |
US8966110B2 (en) * | 2009-09-14 | 2015-02-24 | International Business Machines Corporation | Dynamic bandwidth throttling |
US8856319B1 (en) | 2010-02-03 | 2014-10-07 | Citrix Systems, Inc. | Event and state management in a scalable cloud computing environment |
US8234400B2 (en) | 2010-03-16 | 2012-07-31 | Microsoft Corporation | Shaping virtual machine communication traffic |
US9292466B1 (en) | 2010-12-28 | 2016-03-22 | Amazon Technologies, Inc. | Traffic control for prioritized virtual machines |
US9007898B2 (en) | 2011-02-01 | 2015-04-14 | Google Inc. | System to share network bandwidth among competing applications |
US8547840B1 (en) | 2011-02-01 | 2013-10-01 | Google Inc. | Bandwidth allocation of bursty signals |
US10013281B2 (en) | 2011-06-29 | 2018-07-03 | Microsoft Technology Licensing, Llc | Controlling network utilization |
CN102685904B (zh) | 2012-05-07 | 2015-04-01 | 中兴通讯股份有限公司 | 一种带宽自适应分配方法和*** |
US8804523B2 (en) | 2012-06-21 | 2014-08-12 | Microsoft Corporation | Ensuring predictable and quantifiable networking performance |
US9306870B1 (en) | 2012-06-28 | 2016-04-05 | Amazon Technologies, Inc. | Emulating circuit switching in cloud networking environments |
WO2014021839A1 (en) | 2012-07-31 | 2014-02-06 | Hewlett-Packard Development Company, L.P. | Bandwidth guarantee and work conservation |
US8850085B2 (en) * | 2013-02-26 | 2014-09-30 | Oracle International Corporation | Bandwidth aware request throttling |
US9712390B2 (en) | 2013-11-04 | 2017-07-18 | Amazon Technologies, Inc. | Encoding traffic classification information for networking configuration |
US20150172216A1 (en) | 2013-12-18 | 2015-06-18 | International Business Machines Corporation | Determining rules for partitioning internet connection bandwidth |
CN105827523B (zh) | 2016-06-03 | 2019-04-30 | 无锡华云数据技术服务有限公司 | 一种在云存储环境中对多租户的带宽实现动态调整的虚拟网关 |
-
2017
- 2017-08-25 US US15/686,318 patent/US10623330B2/en active Active
- 2017-08-30 EP EP17764990.2A patent/EP3516834B1/en active Active
- 2017-08-30 WO PCT/US2017/049366 patent/WO2018057255A1/en active Search and Examination
- 2017-09-05 DE DE102017120361.3A patent/DE102017120361B4/de active Active
- 2017-09-05 DE DE202017105335.0U patent/DE202017105335U1/de active Active
- 2017-09-12 GB GB1714631.7A patent/GB2556398B/en active Active
- 2017-09-18 SG SG10201707703RA patent/SG10201707703RA/en unknown
- 2017-09-22 IE IE20170197A patent/IE20170197A1/en unknown
- 2017-09-22 CN CN201710865808.XA patent/CN107872405A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030123482A1 (en) * | 2001-12-27 | 2003-07-03 | Kim Seung Hwan | Method for dynamically allocating bandwidth in ATM passive optical network |
CN101159699A (zh) * | 2007-11-27 | 2008-04-09 | 杭州华三通信技术有限公司 | 分布式设备交换网带宽动态分配方法及装置 |
CN101771902A (zh) * | 2009-01-07 | 2010-07-07 | 华为技术有限公司 | 分配无源光网络上行带宽的方法、***及装置 |
CN102377675A (zh) * | 2011-11-17 | 2012-03-14 | 海能达通信股份有限公司 | 一种带宽动态分配方法、装置和*** |
US20160080206A1 (en) * | 2014-09-17 | 2016-03-17 | Acelio, Inc. | System and method for providing quality of service to data center applications by controlling the rate which data packets are transmitted |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109728933A (zh) * | 2018-11-21 | 2019-05-07 | 电信科学技术第五研究所有限公司 | 分布式应用软件网络流量控制方法 |
CN109728933B (zh) * | 2018-11-21 | 2021-09-24 | 电信科学技术第五研究所有限公司 | 分布式应用软件网络流量控制方法 |
Also Published As
Publication number | Publication date |
---|---|
GB201714631D0 (en) | 2017-10-25 |
US10623330B2 (en) | 2020-04-14 |
US20180091436A1 (en) | 2018-03-29 |
WO2018057255A1 (en) | 2018-03-29 |
EP3516834B1 (en) | 2022-10-26 |
IE20170197A1 (en) | 2018-04-04 |
DE102017120361A1 (de) | 2018-03-29 |
GB2556398A (en) | 2018-05-30 |
EP3516834A1 (en) | 2019-07-31 |
DE202017105335U1 (de) | 2018-01-09 |
SG10201707703RA (en) | 2018-04-27 |
GB2556398B (en) | 2020-08-19 |
DE102017120361B4 (de) | 2024-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11805073B2 (en) | Controlling placement of workloads of an application within an application environment | |
US10887167B2 (en) | Adaptive software-defined storage for cloud storage workloads | |
US9491235B2 (en) | Method and apparatus to maximize return on investment in hybrid cloud environment | |
Vakilinia et al. | Modeling of the resource allocation in cloud computing centers | |
CN104025055B (zh) | 动态缩放云环境中的多级应用 | |
US20150074679A1 (en) | Dynamic Scaling for Multi-Tiered Distributed Computing Systems | |
Jiang et al. | Self-adaptive resource allocation for energy-aware virtual machine placement in dynamic computing cloud | |
WO2019091387A1 (en) | Method and system for provisioning resources in cloud computing | |
CN107872405A (zh) | 分布式带宽分配和调节 | |
Sarker et al. | Performance-driven live migration of multiple virtual machines in datacenters | |
US20150172207A1 (en) | Determining rules for partitioning internet connection bandwidth | |
CN114610474B (zh) | 一种异构超算环境下多策略的作业调度方法及*** | |
WO2020004380A1 (ja) | 割当装置、システム、タスク割当方法及びプログラム | |
US11005925B2 (en) | Load balancing with power of random choices | |
Huang et al. | Auto scaling virtual machines for web applications with queueing theory | |
Niu et al. | Handling flash deals with soft guarantee in hybrid cloud | |
Hassan et al. | Energy-aware resource and revenue management in federated cloud: A game-theoretic approach | |
Remesh Babu et al. | Service‐level agreement–aware scheduling and load balancing of tasks in cloud | |
Filiposka et al. | Community-based VM placement framework | |
Phi et al. | Load balancing algorithm to improve response time on cloud computing | |
CN112527509A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
Meskar et al. | Fair multi-resource allocation in mobile edge computing with multiple access points | |
Ben Jemaa et al. | Analytical models for QoS-driven VNF placement and provisioning in wireless carrier cloud | |
CN111159859A (zh) | 一种云容器集群的部署方法及*** | |
US10990519B2 (en) | Multi-tenant cloud elastic garbage collector |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Google Inc. Address before: California, USA Applicant before: Google Inc. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180403 |
|
RJ01 | Rejection of invention patent application after publication |