一种控制带宽的方法、装置和设备与流程

文档序号:15683389发布日期:2018-10-16 20:48阅读:111来源:国知局

本发明涉及计算机技术领域,特别涉及一种控制带宽的方法、装置和设备。



背景技术:

随着计算机技术和网路技术的不断发展,数据云存储已成为当下数据处理领域的发展趋势。用户可以先将一些数据存储至网络,然后在需要时通过网络获取已存储的数据。

数据云存储系统的网络设备可以为用户提供多种数据业务,如数据导入、数据查询、数据下载等。网络设备接收到用户通过客户端发来的数据业务请求后,可以为客户端设置一定的带宽上限值,然后基于带宽上限值为客户端分配带宽,以使客户端基于分配得到的带宽与设备进行数据交互。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

网络设备将总带宽平均分配给每个客户端,每个客户端的带宽上限值一般是固定不变的,例如,当客户端的带宽需求大于其带宽上限值时,即使网络设备中还存在大量未分配的带宽,客户端也无法使用这些带宽,这样,带宽的分配灵活性较差。



技术实现要素:

为了解决上述带宽的分配灵活性较差,从而导致网络设备的带宽使用率低的问题,本公开实施例提供了一种控制带宽的方法、装置和设备。所述技术方案如下:

第一方面,提供了一种控制带宽的方法,所述方法用于网络设备,所述网络设备用于为多个客户端提供服务,所述客户端已在所述网络设备注册,所述方法包括:

网络设备为已注册的客户端提供业务服务时,可以先确定网络设备的带宽上限值,然后根据每个客户端所处的工作状态,和网络设备的带宽上限值,重新设置每个客户端的带宽上限值,再根据每个客户端的带宽上限值将网络设备的带宽分配给每个客户端。其中,客户端所处的工作状态包括离线状态、挂机状态和传输状态,离线状态为客户端未与网络设备建立连接的状态,挂机状态为客户端已与网络设备建立连接,且带宽小于预设阈值的状态,传输状态为客户端已与网络设备建立连接,且带宽大于预设阈值的状态。

本公开实施例所示的方案,网络设备可以根据客户端的工作状态动态调节各客户端的带宽上限值,从而可以为带宽需求较低的客户端设置较低的带宽上限值,为带宽需求较高的客户端设置较高的带宽上限值,再基于调节或的带宽上限值为客户端重新分配带宽,提高了带宽的分配灵活性。

在一种可能的实现方式中,网络设备可以获取多个客户端中每个客户端的带宽,然后根据网络设备的带宽上限值,每个客户端所处的工作状态,以及每个客户端的带宽,确定每个客户端的二级带宽分配值,其中,二级带宽分配值为网络设备的带宽的使用率最高时,客户端分配得到的带宽值,然后根据每个客户端的二级带宽分配值,设置每个客户端的带宽上限值。

本申请实施例所示的方案,网络设备可以基于每个客户端的工作状态,和每个客户端的带宽,确定出每个客户端的二级带宽分配值,采用二级带宽分配值重新设置每个客户端的带宽上限值,可以保证网络设备的带宽的使用率最高。

在一种可能的实现方式中,网络设备可以根据网络设备的带宽上限值和每个客户端所处的工作状态,先确定出用于判断是否调整带宽上限值的带宽共享阈值,之后,对于每个带宽小于带宽共享阈值的第一类客户端,则将客户端的二级带宽分配值确定为客户端的带宽,对于每个带宽大于或等于带宽共享阈值的第二类客户端,将客户端的二级带宽分配值确定为带宽分配余值与第二类客户端的数目之商,其中,带宽分配余值为网络设备的带宽上限值与所有第一类客户端的总带宽之差。

本申请实施例所示的方案,网络设备可以基于每个客户端的工作状态,和网络设备的带宽上限值,确定出带宽共享阈值,当带宽小于带宽共享阈值时,客户端分配得到的带宽大于所需的带宽,故而可以将多余的带宽共享给带宽大于带宽共享阈值的客户端,这样,可以提高网络设备的带宽的使用率。

在一种可能的实现方式中,网络设备可以先确定每个客户端的完全公平带宽分配值,其中,完全公平带宽分配值为将网络设备的带宽上限值平均分配给所有客户端时,每个客户端分配得到的带宽值,然后可以根据网络设备的带宽上限值和每个客户端所处的工作状态,确定每个客户端的一级带宽分配值,其中,一级带宽分配值为将网络设备的带宽上限值平均分配给所有处于挂机状态和传输状态的客户端时,每个客户端分配得到的带宽值,这样,网络设备则可以将每个客户端的带宽上限值重新设置为其完全公平带宽分配值、一级带宽分配值和二级带宽分配值这三个值中的最大值。

在一种可能的实现方式中,网络设备可以根据网络设备的磁盘负载情况和网络设备的吞吐率,确定网络设备的带宽上限值。

在一种可能的实现方式中,网络设备可以先获取用于表现每个客户端的带宽分配比例的预设客户端权值,然后可以根据每个客户端所处的工作状态和每个客户端的预设客户端权值,确定出每个客户端对应的带宽分配份额,之后可以根据网络设备的带宽上限值和每个客户端的带宽分配份额,重新设置每个客户端的带宽上限值。

本申请实施例所示的方案,网络设备可以在为客户端设置带宽上限值时,采用预设客户端权值的方式为较为重要的客户端多分配带宽,这样,可以提高带宽的分配灵活性。

在一种可能的实现方式中,网络设备可以先获取每个客户端的带宽上限值的预设取值范围,然后可以根据网络设备的带宽上限值,以及每个客户端所处的工作状态和每个客户端的带宽上限值的预设取值范围,重新设置每个客户端的带宽上限值。

本申请实施例所示的方案,网络设备可以在每个客户端的带宽上限值的预设取值范围的基础上为客户端设置带宽上限值,这样,可以通过为不同的客户端设置不同的带宽上限值的取值范围,例如为重要的客户端设置较高的取值范围,为次要的设置较低的取值范围,从而为一些重要的客户端保留足够的带宽,同时可以避免一些次要的客户端占用过多的带宽。

在一种可能的实现方式中,对于处于传输状态的客户端,网络设备可以获取客户端正在传输的多个业务的业务类型,然后可以根据预先存储的业务类型和业务权值的对应关系,确定客户端的每个业务的业务类型对应的业务权值,此处,业务权值为用于表示每种业务类型的重要性的数值,进而网络设备可以根据客户端的带宽上限值和客户端的每个业务的业务类型对应的业务权值,重新设置客户端的每个业务的带宽上限值。

本申请实施例所示的方案,网络设备可以根据业务的业务类型,为客户端上正在传输的多个业务中的每个业务分别设置带宽上限值,这样,可以为一些重要业务保留足够的带宽,同时可以避免一些次要业务占用过多的带宽。

在一种可能的实现方式中,网络设备可以预先设定触发重新设置各个客户端的带宽上限值的条件,例如,网络设备可以周期性进行上述处理,故而可以每隔预设时长即重新确定网络设备的带宽上限值,或者网络设备还可以实时检测客户端的带宽,当客户端的带宽发生变化时,重新确定网络设备的带宽上限值,此处还可以设定客户端的带宽的变化幅度,当某个客户端的带宽变化幅度超过预设值时,网络设备则重新确定其带宽上限值。之后网络设备可以基于重新确定的网络设备的带宽上限值重新设置各个客户端的带宽上限值。

本申请实施例所示的方案,网络设备可以周期性为每个客户端重新设置带宽上限值,或者在客户端的带宽发生变化时,重新设置每个客户端的带宽上限值,这样,可以保证控制带宽的及时性和灵活性。

第二方面,提供了一种网络设备,该网络设备包括收发器、处理器、存储器;处理器通过执行指令来实现上述第一方面所提供的控制带宽的方法。

第三方面,提供了一种控制带宽的装置,该装置包括至少一个模块,该至少一个模块用于实现上述第一方面所提供的控制带宽的方法。

第四方面,提供了一种包含指令的计算机程序产品,当其在网络设备上运行时,使得网络设备执行上述第一方面所提供的控制带宽的方法。

上述本公开实施例第二、第三方面和第四方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。

本公开实施例提供的技术方案带来的有益效果是:

本公开实施例中,网络设备为已注册的客户端提供业务服务时,可以先确定网络设备的带宽上限值,然后根据每个客户端所处的工作状态,和网络设备的带宽上限值,重新设置每个客户端的带宽上限值,再根据每个客户端的带宽上限值为每个客户端重新分配带宽。这样,如果客户端的工作状态发生变化,网络设备可以较为及时地对每个客户端的带宽上限值进行相应的调整,然后基于每个客户端的带宽上限值重新为每个客户端分配带宽,故而可以提高带宽的分配灵活性。

附图说明

图1是本申请实施例中一种网络设备的结构示意图;

图2是本申请实施例中一种控制带宽的方法流程示意图;

图3是本申请实施例中一种控制带宽的原理框架图;

图4是本申请实施例中一种控制带宽的装置的结构框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

如本申请所使用的,术语“组件”、“模块”、“系统”等等旨在指代计算机相关实体,该计算机相关实体可以是硬件、固件、硬件和软件的结合、软件或者运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的处理、处理器、对象、可执行文件、执行中的线程、程序和/或计算机。作为示例,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于执行中的过程和/或线程中,并且组件可以位于一个计算机中以及/或者分布在两个或更多个计算机之间。此外,这些组件能够从在其上具有各种数据结构的各种计算机可读介质中执行。这些组件可以通过诸如根据具有一个或多个数据分组(例如,来自一个组件的数据,该组件与本地系统、分布式系统中的另一个组件进行交互和/或以信号的方式通过诸如互联网之类的网络与其它系统进行交互)的信号,以本地和/或远程过程的方式进行通信。

本发明实施例提供了一种控制带宽的方法,该方法的执行主体为网络设备。网络设备可以用于为多个客户端提供服务,客户端已在网络设备注册。客户端与网络设备的磁盘进行数据读/写交互,网络设备可以在为客户端提供数据业务的同时,对每个客户端的带宽上限值进行调节控制。其中,网络设备可以是提供数据读/写业务的服务器,也可以是提供数据读/写业务的网络设备组的中心管理设备,网络设备组有统一的数据读/写接口,客户端可以通过该统一的数据读/写接口与网络设备组进行数据交互。网络设备可以包括收发器110、处理器120、存储器130,收发器110和存储器130可以分别与处理器120连接,如图1所示,图中的连接方式只是示意性的一种,该网络设备还可以是类似通用计算机架构中的设备,处理器、存储器、收发器通过总线进行连接,本发明实施例不做限定。收发器110可以用于接收或发送消息或数据,收发器110可以包括但不限于至少一个放大器、调谐器、一个或多个振荡器、耦合器、lna(lownoiseamplifier,低噪声放大器)、双工器等,存储器130可以用于存储控制带宽过程中本地产生或客户端发送的数据。处理器120可以是网络设备的控制中心,利用各种接口和线路连接整个网络设备的各个部分,如收发器110和存储器130等。可选的,处理器可以包括一个或多个处理单元;可选的,处理器120可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统,调制解调处理器主要处理无线通信。处理器120还可以是数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件等。处理器120可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件等。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。

本申请将围绕可包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。

另外,在本申请实施例中,“示例的”一词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。

本申请实施例描述的网络架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

下面将结合具体实施方式,对图2所示的控制带宽的流程进行说明内容可以如下:

步骤201,确定网络设备的带宽上限值。

其中,带宽上限值表示网络设备单位时间最大数据读写量。

在实施中,网络设备可以是多个客户端对应的服务端,每个客户端可以在网络设备处进行注册,已注册的客户端可以与网络设备进行数据交互,例如,数据云存储系统的网络设备可以为每个已注册的客户端提供多种数据业务,网络设备可以与每个客户端建立数据连接,然后针对每个数据连接设置一定的带宽上限值,然后基于带宽上限值为客户端分配带宽,以使客户端基于分配得到的带宽与设备进行数据交互。进一步的,网络设备的带宽上限值可以是实时变化的,一般取决于所有客户端的数据总读写速率,故而,网络设备每次为客户端重新设置带宽上限值并分配带宽之前,可以确定网络设备当前的带宽上限值,从而可以基于当前网络设备的带宽上限值进行各客户端的带宽上限值的设置处理。

该步骤具体可以由处理器120来实现。

可选的,可以预先设定网络设备为终端重新设置带宽上限值的触发条件,具体的,步骤201的处理可以如下:每隔预设时长确定网络设备的带宽上限值;或者,当检测到客户端的带宽发生变化时,确定网络设备的带宽上限值。

在实施中,可以设定网络设备周期性地为每个客户端重新设置带宽上限值,这样,网络设备则需要每隔预设时长来重新确定其带宽上限值,或者,可以设定当检测到客户端的带宽发生变化时,网络设备就为每个客户端重新设置带宽上限值,这样,网络设备可以实时检测客户端的带宽波动,当带宽波动大于一定幅度时,可以触发网络设备重新确定其带宽上限值。

可选的,网络设备可以根据网络设备的磁盘负载情况和网络设备的吞吐率,确定网络设备的带宽上限值。

其中,磁盘负载情况可以分为磁盘满负载和磁盘负载不饱和两种情况。

在实施中,网络设备可以通过操作系统工具获取网络设备的磁盘负载情况,同时,获取网络设备的吞吐率,即所有已注册的客户端的总带宽。进一步的,如果当检测到网络设备的磁盘满负载,则可以将网络设备的吞吐率设置为网络设备的带宽上限值。而如果网络设备的磁盘负载不饱和,则需要另外获取用户预先设置的,网络设备的带宽上限预估值,然后可以选取网络设备的吞吐率和上述带宽上限预估值中的较大值,然后将该较大值乘上一个大于1的松弛因子得到网络设备的带宽上限值。例如,用户设置的带宽上限预估值为100m/s,网络设备的吞吐率为90m/s,松弛因子为1.1,那么可以网络设备的带宽上限值为110m/s。若网络设备的吞吐率为120m/s,松弛因子为1.1,那么网络设备的带宽上限值为132m。可以理解,即使网络设备的实际带宽上限要大于确定出的带宽上限值,但是由于松弛因子的存在,如果网络设备的吞吐率上升,在经过几轮迭代之后,便能确定出网络设备的实际带宽上限。另外,用户可以自行设定可供使用网络设备的带宽上限,如网络设备实际带宽上限为150m/s,用户则可以设定网络设备的带宽上限值为120m/s,这样,可以留出30m/s的带宽用于其它业务。

该步骤具体可以由处理器120来实现。

步骤202,根据网络设备的带宽上限值,以及多个客户端中每个客户端所处的工作状态,重新设置每个客户端的带宽上限值。

其中,工作状态包括离线状态、挂机状态和传输状态,离线状态为客户端未与网络设备建立连接的状态,挂机状态为客户端已与网络设备建立连接,且带宽小于预设阈值的状态,传输状态为客户端已与网络设备建立连接,且带宽大于预设阈值的状态。

在实施中,在确定了网络设备的带宽上限值后,网络设备可以获取已注册的多个客户端中每个客户端所处的工作状态,具体的,工作状态可以细分为离线状态、挂机状态和传输状态。之后,网络设备可以根据步骤201中确定出的网络设备的带宽上限值,以及各客户端所处的工作状态,将网络设备的带宽上限值分配给每个客户端,即重新设置每个客户端的带宽上限值。需要说明的是,受多个客户端的数据读写速率变化的影响,网络设备的带宽上限值和客户端工作状态一般会频繁的发生变化,故而网络设备需要周期性地进行上述确定网络设备的带宽上限值和设置客户端的带宽上限值的处理,这样,当每个客户端的工作状态或者带宽数值发生变化时,网络设备可以相应的调整每个客户端的带宽上限值。

该步骤具体可以由处理器120来实现。

可选的,上述重新设置每个客户端的带宽上限值的处理可以具体如下:获取多个客户端中每个客户端的带宽,根据网络设备的带宽上限值,每个客户端所处的工作状态,以及每个客户端的带宽,确定每个客户端的二级带宽分配值,根据每个客户端的二级带宽分配值,重新设置每个客户端的带宽上限值。

其中,二级带宽分配值为网络设备的带宽的使用率最高时,客户端分配得到的带宽值。

在实施中,在每次为客户端设置带宽上限值的过程中,网络设备可以先获取已注册的多个客户端中每个客户端的带宽,然后可以根据网络设备的带宽上限值,每个客户端所处的工作状态,以及每个客户端的带宽,确定每个客户端的二级带宽分配值,然后可以根据每个客户端的二级带宽分配值,重新设置每个客户端的带宽上限值。需要说明的是,在确定二级带宽分配值的过程中,如果某个客户端的带宽远小于网络设备为其设置的带宽上限值,表示该客户端的带宽需求远小于网络设备为其分配的带宽上限,网络设备则可以减小该客户端的带宽上限值,并将减小值分配给带宽上限无法满足带宽需求的客户端,即带宽接近带宽上限值的客户端。为了便于理解,下面以一个例子进行说明,而该例子并不造成对上述方法实施的限制,本领域技术人员可以基于上述分配原则和实际检测到的客户端带宽等,得到适合的对多个客户端进行重新分配的方案。例如,网络设备为客户端a、b设置的带宽上限值均为100m/s,而检测到客户端a的带宽为20m/s,客户端b的带宽为100m/s,这样,则可以减少客户端a的带宽上限值为20m/s,并将多出来的80m/s带宽分配给客户端b,从而客户端b的带宽上限值变为180m/s。这样,基于上述分配原则,可以得到每个客户端的二级带宽分配值,从而基于二级带宽分配值重新设置带宽上限值,可以有效提高网络设备的带宽的使用率。另外,在基于二级带宽分配值重新设置每个客户端的带宽上限值时,对于二级带宽分配值为0的客户端,可以将其带宽上限值设置为大于0的较小值,如1m/s,这样,可以有效避免当该客户端存在带宽需求时,由于带宽上限值为0而始终无法分配得到带宽,从而无法及时进行数据业务的情况。可以理解,由于极少会出现每个客户端的带宽与带宽上限值相等的情况,故而所有已注册的客户端的带宽上限值的总和可以大于网络设备的带宽上限值。

该步骤具体可以由处理器120来实现。

可选的,可以根据带宽共享阈值来确定各客户端的二级带宽分配值,相应的,上述部分处理可以如下:根据网络设备的带宽上限值和每个客户端所处的工作状态,确定带宽共享阈值,对于每个带宽小于带宽共享阈值的第一类客户端,将客户端的二级带宽分配值确定为客户端的带宽,对于每个带宽大于或等于带宽共享阈值的第二类客户端,将客户端的二级带宽分配值确定为带宽分配余值与第二类客户端的数目之商。

其中,带宽共享阈值为用于判断是否调整带宽上限值的阈值,带宽分配余值为网络设备的带宽上限值与所有第一类客户端的总带宽之差。

在实施中,在确定客户端的二级带宽分配值的过程中,网络设备可先根据网络设备的带宽上限值和每个客户端所处的工作状态,确定带宽共享阈值。具体的,网络设备可以先确定出处于挂机状态和传输状态的客户端的数目,然后将步骤201中确定出的网络设备的带宽上限值平均分配给处于挂机状态和传输状态的客户端,作为这些客户端的带宽上限值,此时可以将带宽共享阈值的具体数值确定为最终分配值。另外,考虑到带宽的波动性,可以将分配结果除以一个预设的略大于1的常数(如1.1、1.2等,一般情况下不大于2,但在某些场景下,也可以是其他值)后得到的值,确定为带宽共享阈值。之后,网络设备可以将每个客户端实时的带宽与带宽共享阈值进行比较,可以将带宽小于带宽共享阈值的客户端设置为第一类客户端,将带宽大于或等于带宽共享阈值的客户端设置为第二类客户端,然后网络设备可以先将第一类客户端的二级带宽分配值确定为客户端的带宽,同时确定带宽分配余值,即确定网络设备的带宽上限值与所有第一类客户端的总带宽之差,进而,网络设备可以将第二类客户端的二级带宽分配值确定为带宽分配余值与第二类客户端的数目之商。例如,网络设备的带宽上限值为400m/s,存在4个客户端a、b、c、d,其中,处于挂机状态的有1个客户端a,实时的带宽为20m/s,处于传输状态的有2个客户端b、c,实时的带宽分别为133m/s和128m/s,处于离线状态的有1个客户端d,实时的带宽为0,这样,可以将网络设备的带宽上限值平均分配给处于挂机状态和传输状态的3个客户端a、b、c作为这些客户端可使用的带宽,每个客户端可以得到133m/s,然后除以预设的常数1.1,可以得到带宽分配余值121m/s,这样,客户端a和d属于第一类客户端,客户端a的二级带宽分配值为20m/s,客户端d的二级带宽分配值为0,客户端b和c属于第二类客户端,客户端b和c的二级带宽分配值均为190m/s。

值得一提的是,在确定了各个客户端的二级带宽分配值后,可以基于各客户端的带宽对二级带宽分配值进行调整,具体的,如果还存在带宽远小于二级带宽分配值的客户端,且存在带宽接近或等于二级带宽分配值的客户端,则可以将前者的二级带宽分配值调整为该客户端的带宽,从而可以节省出大量带宽分配值,同时,网络设备可以将节省出的带宽分配值平均分配给那些带宽需求可能大于带宽分配值的客户端,即可以分配给二级带宽分配值大于带宽共享阈值,且带宽与二级带宽分配值的差值小于预设阈值的客户端。例如,基于上述举例,客户端a的二级带宽分配值为20m/s,客户端b和c的二级带宽分配值均为190m/s,客户端d的二级带宽分配值为0,之后,可以检测到客户端b的带宽为150m/s,客户端c的带宽为190m/s,则可以将客户端b的二级带宽分配值调整为150m/s,将节省出来的40m/s分配给客户端c,故而客户端c的二级带宽分配值调整为230m/s。值得一提的是,客户端的带宽远小于二级带宽分配值,说明网络设备为该客户端设置的带宽分配值富裕,而客户端的带宽接近或等于二级带宽分配值,由于客户端的带宽属于波动的数值,则很有可能出现带宽需求超出二级带宽分配值的情况,故而网络设备为该客户端设置的带宽分配值可能不足,可以理解,只有当已注册的客户端中同时存在设置的带宽分配值富裕和不足的两种客户端,才会进行二级带宽分配值的确定和调整处理。

该步骤具体可以由处理器120来实现。

可选的,可以在二级带宽分配值的基础上,结合其他带宽分配方式设置客户端的带宽上限值,相应的处理可以如下:确定每个客户端的完全公平带宽分配值,根据网络设备的带宽上限值和每个客户端所处的工作状态,确定每个客户端的一级带宽分配值,根据每个客户端的完全公平带宽分配值、一级带宽分配值和二级带宽分配值,重新设置每个客户端的带宽上限值。

其中,完全公平带宽分配值为将网络设备的带宽上限值平均分配给所有客户端时,每个客户端分配得到的带宽值,一级带宽分配值为将网络设备的带宽上限值平均分配给所有处于挂机状态和传输状态的客户端时,每个客户端分配得到的带宽值。

在实施中,网络设备可以先获取所有已注册的客户端的总数,然后将网络设备的带宽上限值除以所有已注册的客户端的总数,得到每个客户端的完全公平带宽分配值。另外,网络设备还可以先根据每个客户端所处的工作状态,确定出处于挂机状态和传输状态的客户端的总数,然后将网络设备的带宽上限值除以处于挂机状态和传输状态的客户端的总数,得到每个客户端的一级带宽分配值。进而,网络设备可以根据每个客户端的完全公平带宽分配值、一级带宽分配值和二级带宽分配值,重新设置每个客户端的带宽上限值,具体的,可以选择上述三个分配值中最大者作为每个客户端的带宽上限值。例如,基于上述a、b、c、d4个客户端的例子,已经得到4个客户端的二级带宽分配值分别为20m/s、230m/s、150m/s、0,同时,网络设备的带宽上限值为400m,4个客户端的完全公平带宽分配值均为100m/s,a、b、c3个客户端的一级带宽分配值均为133m/s,客户端d的一级带宽分配值为0,这样,对于每个客户端,均选取三个分配值的最大值作为带宽上限值,则a、b、c、d4个客户端的带宽上限值分别为133m/s、230m/s、150m/s、100m/s。可以理解,将完全公平带宽分配值、一级带宽分配值和二级带宽分配值中的最大值确定为每个客户端的带宽上限值仅为一种可行的处理,还可以采用其他处理方式确定各客户端的带宽上限值,比如取三个分配值的平均数,或者按照一定的比重进行相加等,本实施例不再对每种处理过程进行详细说明。

该步骤具体可以由处理器120来实现。

可选的,在设置每个客户端的带宽上限值时,可以考虑每个客户端的权值,相应的,步骤202的处理可以如下:获取每个客户端的预设客户端权值,根据网络设备的带宽上限值,以及每个客户端所处的工作状态和每个客户端的预设客户端权值,重新设置每个客户端的带宽上限值。

其中,预设客户端权值为用于表现每个客户端的带宽分配比例的数值,

在实施中,网络设备侧的技术人员可以预先对所有已注册的客户端设置用于分配带宽的权值(即预设客户端权值),然后将客户端的标识信息和预设客户端权值进行对应存储,具体的,可以根据每个客户端的重要等级来分配设置客户端权值,例如,客户端可以按照重要等级从低到高分为普通客户端、白银客户端、黄金客户端、钻石客户端和至尊客户端等5个等级,相应的,每个等级的客户端对应的预设客户端权值依次为1、2、3、4、5。那么权值之间的数值关系可以表征不同级别的客户端能分配带宽的值的关系。例如,根据权值之间的关系,可以认为,一个白银客户端相当于两个普通客户端,即一个白银客户端可分配的带宽是普通客户端的两倍,一个黄金客户端相当于三个普通客户端,即一个黄金客户端可分配的带宽是普通客户端的三倍,一个钻石客户端相当于四个普通客户端,即一个黄金客户端可分配的带宽是普通客户端的四倍等。网络设备在重新设置每个客户端的带宽上限值时,可以先获取预先存储的每个客户端的预设客户端权值,然后可以根据网络设备的带宽上限值,以及每个客户端所处的工作状态和每个客户端的预设客户端权值,重新设置每个客户端的带宽上限值。具体的,可以以预设客户端权值为1作为一个基础客户端,上述处理过程中的所有客户端均可认为是基础客户端的集合,如果某个客户端的预设客户端权值为n,则该客户端的带宽分配值可以是n个基础客户端的带宽分配值的总和,此处,带宽分配值可以包括完全公平带宽分配值、一级带宽分配值和二级带宽分配值。例如,网络设备的总带宽400m/s,存在a、b、c、d4个客户端,a处于挂机状态,b、c处于传输状态,d处于离线状态,a、b、c、d4个客户端的带宽分别为20m/s、200m/s、100m/s、0,b的权值为2,a、c、d的权值均为1,则b相当于两个基础客户端,a、c、d各自相当于一个基础客户端,可以认为总共存在5个基础客户端,将网络设备的总带宽均分给每个基础客户端,则每个基础客户端的完全公平带宽分配值为80m/s,而考虑工作状态,则存在4个基础客户端处于挂机状态或者传输状态,故而一级带宽分配值为100m/s,基于二级带宽分配值的计算方式可知,带宽共享阈值为100m/s,对于带宽小于带宽共享阈值的客户端a,可以将其二级带宽分配值确定为a的带宽20m/s,将多余的80m/s的带宽上限值分配给b、c(即三个基础客户端),考虑两者权值,b相当于两个基础客户端,c相当于一个基础客户端,故而b的二级带宽分配值为253m/s,c的二级带宽分配值为127m/s。之后,可以将每个客户端的完全公平带宽分配值、一级带宽分配值和二级带宽分配值中的最大值设置为该客户端的带宽上限值。可以理解的是,网络设备还可以针对客户端设置不同的优先级,当优先级高的客户端和优先级低的客户端同时存在带宽需求时,网络设备优先满足优先级高的客户端的带宽需求。

该步骤具体可以由处理器120和存储器130共同实现。

可选的,在重新设置每个客户端的带宽上限值时,可以考虑每个客户端的带宽上限值的预设取值范围,相应的,步骤202的处理可以如下:获取每个客户端的带宽上限值的预设取值范围,根据网络设备的带宽上限值,以及每个客户端所处的工作状态和每个客户端的带宽上限值的预设取值范围,重新设置每个客户端的带宽上限值。

其中,预设客户端权值为用于表现每个客户端的带宽分配比例的数值,

在实施中,网络设备侧的技术人员可以预先对部分已注册的客户端设置带宽上限值的取值范围,然后将客户端的标识信息和预设取值范围进行对应存储。网络设备在设置每个客户端的带宽上限值时,可以先获取预先存储的每个客户端的带宽上限值的预设取值范围,然后可以根据网络设备的带宽上限值,以及每个客户端所处的工作状态和每个客户端的带宽上限值的预设取值范围,重新设置每个客户端的带宽上限值。具体的,在设置客户端的带宽上限值时,每个客户端的带宽上限值应均处于其带宽上限值的预设取值范围内,例如,客户端a的带宽上限值的预设取值范围为“50m/s-100m/s”,则网络设备任意时刻为客户端a分配的带宽上限值均应处于“50m/s-100m/s”之内。同时,在确定二级带宽分配值时,也需要保证每个客户端的二级带宽分配值处于带宽上限值的预设取值范围内,例如,网络设备的总带宽400m/s,存在a、b、c、d4个客户端,a处于挂机状态,b、c处于传输状态,d处于离线状态,a、b、c、d4个客户端的带宽分别为20m/s、133m/s、128m/s、0,其中,a的带宽上限值的预设取值范围为“50m/s-100m/s”,客户端b的带宽上限值的预设取值范围为“100m/s-150m/s”,a的带宽20m/s小于其带宽上限值的预设取值范围的最小值50m/s,则可以得到a的二级带宽分配值为50m/s,之后,在为a保留了50m/s的带宽上限值后,将a余出的83m/s带宽平均分配给b、c,此时b、c的带宽上限值变为175m/s,而175m/s大于b的带宽上限值的预设取值范围的最大值,故而b的二级带宽分配值应设为150m/s,这样,则可以将余出的50m/s带宽分批给c,则c的二级带宽分配值为200m/s,d的二级带宽分配值为0,如果需要在完全公平带宽分配值、一级带宽分配值和二级带宽分配值三者中选取最大值作为带宽上限值,则可以得到4个客户端的带宽上限值分别为:100m/s、150m/s、200m/s、100m/s。

该步骤具体可以由处理器120和存储器130共同实现。

步骤203,根据每个客户端的带宽上限值,将所述网络设备的带宽重新分配给每个客户端。

在实施中,在为每个客户端设置带宽上限值后,网络设备可以根据带宽上限值,为每个客户端分配带宽,即保证为每个客户端分配的带宽均不大于该客户端对应的带宽上限值。具体的,对于每个已注册的客户端,网络设备可以创建一个专门用于控制该客户端的带宽上限值的限流器,该限流器可以是一个进程或者线程,在确定每个客户端的带宽上限值后,可以通过每个客户端对应的限流器对每个客户端的带宽进行限制,以使客户端能够使用的带宽不超过相应的带宽上限值。值得一提的是,在一种可行的情况下,客户端也可以发挥网络设备的功能,即该客户端为多个下级客户端提供服务,下级客户端已在该客户端处注册,进而该客户端可以根据网络设备为其设置的带宽上限值,以及多个下级客户端中每个下级客户端所处的工作状态,重新设置每个下级客户端的带宽上限值,然后为每个下级客户端分配带宽。

该步骤具体可以由处理器120来实现。

可选的,如果客户端存在多个传输业务,则可以根据每个业务的业务类型分别确定每个业务的带宽上限值,相应的处理可以如下:对于处于传输状态的客户端,获取客户端正在传输的多个业务的业务类型,根据预先存储的业务类型和业务权值的对应关系,确定客户端的每个业务的业务类型对应的业务权值,根据客户端的带宽上限值和客户端的每个业务的业务类型对应的业务权值,确定客户端的每个业务的带宽上限值。

其中,业务权值为用于表示每种业务类型的重要性的数值。

在实施中,网络设备侧的技术人员可以预先对网络设备所支持的所有业务的业务类型,根据业务类型的重要性设置对应的业务权值,即越重要的业务对应的业务权值较高,如数据查询业务的权值为1,数据导入的权值为2,数据下载的权值为3,然后将业务类型和业务权值以对应关系的形式进行存储。这样,在处于每个传输状态下的客户端进行多个业务的传输时,网络设备可以获取多个业务的业务类型,然后可以根据预先存储的业务类型和业务权值的对应关系,确定所述客户端的每个业务的业务类型对应的业务权值,进而根据所述客户端的带宽上限值和所述客户端的每个业务的业务类型对应的业务权值,确定所述客户端的每个业务的带宽上限值。例如,客户端的带宽上限值为150m/s,客户端正在传输的有3个业务a、b、c,对应的业务权值分别为1、2、3,这样,可以确定业务a的带宽上限值为25m/s,业务b的带宽上限值为50m/s,业务c的带宽上限值为75m/s。可以理解的是,网络设备还可以针对业务类型设置不同的优先级,当优先级高的业务和优先级低的业务同时存在时,网络设备可以优先处理优先级高的业务。

该步骤具体可以由处理器120和存储器130共同实现。

图3示出了本方案的原理框架图,其中,用户管理单元、调节单元、负载反馈单元可以均为网络设备中独立的进程或者容器,由处理器控制以实现相应功能,各个单元间可以进行信息交互。当然,这些进程或者容器也可以分布在不同的虚拟机上。用户管理单元可以具体用于记录客户端权值,客户端优先级等与用户相关的信息,调节单元包括多个限流进程,每个限流进程可以用于根据每个客户端的带宽上限值对每个客户端进行带宽限制,负载反馈单元可以具体用于检测网络设备的带宽上限值,辅助单元可以用于评估磁盘负载情况、用于记录目录和磁盘的对应关系、用于统计网络设备的带宽等,磁盘则为网络设备的实体部件,客户端则是独立于网络设备之外的终端设备,与网络设备建立有数据连接,可以与网络设备进行数据交互。例如,客户端向网络设备发起数据读/写请求,建立与网络设备的数据连接,调节单元可以先从用户管理单元处获取该客户端的权值、优先级等客户端信息,同时创建/启动该客户端对应的限流进程,对客户端的带宽进行限制,当网络设备为每个客户端重新设置带宽上限值时,负载反馈单元可以检测网络设备的磁盘,并确定出网络设备最新的带宽上限值,然后将带宽上限值提供给调节单元,从而调节单元可以基于网络设备的带宽上限值、客户端信息以及各客户端的工作状态,确定每个客户端的带宽上限值,然后通过限流进程基于每个客户端的带宽上限值对客户端的带宽进行控制。

当然,在一种实现方式下,图3所示的架构也可以在云化场景下,例如是一个网络流量控制平台,其中的用户管理单元、调节单元、负载反馈单元可以是进程或者线程,这些进程或者线程可以分布在不同的物理节点或者虚拟节点中,该虚拟节点可以是虚拟机或者容器,上述网络设备可以是网络流量控制平台中统一的流量管理设备,该流量管理设备中至少包含上述调节单元,用于设置并调节与该网络流量控制平台进行数据交互的客户端的带宽上限值,用户管理单元可以部署在网络流量控制平台中独立的用户信息管理设备中,在执行上述实施例中示出的处理时,用户信息管理设备可以通过用户管理单元将其存储的用户信息提供给流量管理设备中的调节单元,同理,负载反馈单元可以部署在网络流量控制平台中独立的负载监测设备中,负载监测设备可以通过负载反馈单元实时统计网络流量控制平台所能提供的总带宽上限值,以提供给流量管理设备进行带宽控制处理。

本公开实施例中,网络设备为已注册的客户端提供业务服务时,可以先确定网络设备的带宽上限值,然后根据每个客户端所处的工作状态,和网络设备的带宽上限值,重新设置每个客户端的带宽上限值,再根据每个客户端的带宽上限值为每个客户端分配带宽。这样,如果客户端的工作状态发生变化,网络设备可以较为及时地对每个客户端的带宽上限值进行相应的调整,然后基于每个客户端的带宽上限值重新为每个客户端分配带宽,故而可以提高带宽的分配灵活性。

图4是本公开实施例提供的一种控制带宽的装置的框图。该装置可以通过软件、硬件或者两者的结合实现成为装置中的部分或者全部。本公开实施例提供的一种控制带宽的装置可以实现本公开实施例图2所述的流程,所述装置包括确定模块401、设置模块402、分配模块403、第一获取模块404、第二获取模块405、第三获取模块406,其中:

确定模块401,用于确定网络设备的带宽上限值,所述带宽上限值表示所述网络设备单位时间的最大数据读写量,所述网络设备用于为多个客户端提供服务,所述多个客户端已在所述网络设备注册;

设置模块402,用于根据所述网络设备的带宽上限值,以及所述多个客户端中每个客户端所处的工作状态,重新设置所述每个客户端的带宽上限值,其中,所述工作状态包括离线状态、挂机状态和传输状态,所述离线状态为客户端未与网络设备建立连接的状态,所述挂机状态为客户端已与网络设备建立连接,且带宽小于预设阈值的状态,所述传输状态为客户端已与网络设备建立连接,且带宽大于预设阈值的状态;

分配模块403,用于根据所述每个客户端的带宽上限值,将所述网络设备的带宽重新分配给所述每个客户端。

可选的,所述设置模块402,具体用于:

获取所述多个客户端中每个客户端的带宽;

根据所述网络设备的带宽上限值,所述每个客户端所处的工作状态,以及所述每个客户端的带宽,确定所述每个客户端的二级带宽分配值,其中,所述二级带宽分配值为所述网络设备的带宽的使用率最高时,客户端分配得到的带宽值;

根据所述每个客户端的二级带宽分配值,重新设置所述每个客户端的带宽上限值。

可选的,所述设置模块402,具体用于:

根据所述网络设备的带宽上限值和所述每个客户端所处的工作状态,确定带宽共享阈值,其中,所述带宽共享阈值为用于判断是否调整带宽上限值的阈值;

对于每个带宽小于带宽共享阈值的第一类客户端,将所述客户端的二级带宽分配值确定为所述客户端的带宽;

对于每个带宽大于或等于带宽共享阈值的第二类客户端,将所述客户端的二级带宽分配值确定为带宽分配余值与所述第二类客户端的数目之商,其中,所述带宽分配余值为所述网络设备的带宽上限值与所有第一类客户端的总带宽之差。

可选的,所述确定模块401,还用于确定所述每个客户端的完全公平带宽分配值,其中,所述完全公平带宽分配值为将所述网络设备的带宽上限值平均分配给所有客户端时,每个客户端分配得到的带宽值;

所述确定模块401,还用于根据所述网络设备的带宽上限值和所述每个客户端所处的工作状态,确定所述每个客户端的一级带宽分配值,其中,所述一级带宽分配值为将所述网络设备的带宽上限值平均分配给所有处于挂机状态和传输状态的客户端时,每个客户端分配得到的带宽值;

所述设置模块402,具体用于:

根据所述每个客户端的完全公平带宽分配值、一级带宽分配值和二级带宽分配值,重新设置所述每个客户端的带宽上限值。

可选的,所述确定模块401,具体用于:

根据所述网络设备的磁盘负载情况和所述网络设备的吞吐率,确定所述网络设备的带宽上限值。

可选的,第一获取模块404,用于获取所述每个客户端的预设客户端权值,其中,所述预设客户端权值为用于表现每个客户端的带宽分配比例的数值;

所述设置模块402,具体用于:

根据每个客户端所处的工作状态和所述每个客户端的预设客户端权值,确定所述每个客户端对应的带宽分配份额;

根据所述网络设备的带宽上限值和所述每个客户端对应的带宽分配份额,重新设置所述每个客户端的带宽上限值。

可选的,第二获取模块405,用于获取所述每个客户端的带宽上限值的预设取值范围;

所述设置模块402,具体用于:

根据所述网络设备的带宽上限值,以及所述每个客户端所处的工作状态,在所述每个客户端的带宽上限值的预设取值范围内,重新设置所述每个客户端的带宽上限值。

可选的,第三获取模块406,用于对于处于传输状态的客户端,获取所述客户端正在传输的多个业务的业务类型;

所述确定模块401,还用于根据预先存储的业务类型和业务权值的对应关系,确定所述客户端的每个业务的业务类型对应的业务权值,其中,所述业务权值为用于表示每种业务类型的重要性的数值;

所述确定模块401,还用于根据所述客户端的带宽上限值和所述客户端的每个业务的业务类型对应的业务权值,重新设置所述客户端的每个业务的带宽上限值。

相关细节可结合图2所述的方法实施例。

需要说明的是,上述确定模块401、设置模块402、分配模块403可以由处理器120实现,第一获取模块404、第二获取模块405、第三获取模块406可以由存储器130来实现,或者,结合处理器120来实现。

本公开实施例中,网络设备为已注册的客户端提供业务服务时,可以先确定网络设备的带宽上限值,然后根据每个客户端所处的工作状态,和网络设备的带宽上限值,重新设置每个客户端的带宽上限值,再根据每个客户端的带宽上限值为每个客户端重新分配带宽。这样,如果客户端的工作状态发生变化,网络设备可以较为及时地对每个客户端的带宽上限值进行相应的调整,然后基于每个客户端的带宽上限值为每个客户端分配带宽,故而可以提高带宽的分配灵活性。

需要说明的是:上述实施例提供的控制带宽的装置在控制带宽时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的控制带宽的装置与控制带宽的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在网络设备上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴光缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是网络设备能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(如软盘、硬盘和磁带等),也可以是光介质(如数字视盘(digitalvideodisk,dvd)等),或者半导体介质(如固态硬盘等)。

以上所述仅为本公开的一种可行的实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

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