CN102833162A - 缓冲区数的调整方法和装置 - Google Patents
缓冲区数的调整方法和装置 Download PDFInfo
- Publication number
- CN102833162A CN102833162A CN2012103009795A CN201210300979A CN102833162A CN 102833162 A CN102833162 A CN 102833162A CN 2012103009795 A CN2012103009795 A CN 2012103009795A CN 201210300979 A CN201210300979 A CN 201210300979A CN 102833162 A CN102833162 A CN 102833162A
- Authority
- CN
- China
- Prior art keywords
- buffer
- network equipment
- message
- maximum
- max
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种缓冲区数的调整方法和装置,方法包括:根据业务所需的最大缓冲区数、网络设备允许的最大缓冲区数、实际所需的缓冲区数和空闲内存资源允许的最大缓冲区数,获取报文缓冲区数阈值;根据网络设备中当前开启的业务功能所需的缓冲区数和报文缓冲区数阈值,调整报文缓冲区数。本发明还提供了一种缓冲区数的调整装置。本发明提高了网络设备的转发性能。
Description
技术领域
本发明涉及通信技术,尤其涉及一种缓冲区数的调整方法和装置。
背景技术
网络设备(如交换机、路由器、防火墙和网关等)作为计算机互连的数据交换节点,其数据转发性能决定了整个网络的质量。随着用户连接数的急剧增长和各种高带宽应用的出现,主频提升受限的单核处理器越来越难以满足高速数据转发网络设备的性能需求,而多核处理器凭借其较低成本的可扩展能力和并行计算的特性,逐渐在网络通信领域得到广泛应用。所谓多核处理器,是指在一个硬件芯片上集成多个核心处理器(Core-CPU,简称为Core),通常是共享内存式结构。多核处理器具备相对独立的多个计算处理核心,可以并行地执行报文转发处理程序,报文转发性能得到较大幅度提高,从而提高了系统整体的吞吐率。但是,多核处理器由于共享许多硬件和软件资源,在数据转发繁忙时,如何减少彼此之间的相互等待,充分发挥并行处理能力却有很大挑战。再者,由于各个Core处理一个报文的时长是随机的,若不采用专门技术有可能造成先进入设备转发序列的报文,反而后到达输出序列,出现报文乱序现象。对于同一条数据流,相关标准是不允许出现报文乱序的。
为了提高处理并行性,网络设备常采用典型的流水线技术。采用流水线技术,典型的报文处理流程为:将报文散列到各条流水线,同一条数据流的报文通常散列到同一条流水线,流水线对报文处理完成后,再分发到各个报文队列,最后经由出接口从物理线路发送出去。若采用传统标准流水线技术,不仅要求将报文均衡散列到各条流水线,为了避免单条流水线出现性能瓶颈,还要求能够对各级任务进行均衡划分。在改进流水线方案中,流水线各级处理任务不再与固定Core绑定,且各级处理任务的划分也不必完全均衡,尽管改进流水线方案可以提高报文转发模型的平台适应性,但由于各个处理器核乱序调度各条流水线的不同处理阶段,会增加缓存不命中(Cache Miss)率,影响设备转发性能。
为了降低Cache Miss率,现有技术中除了采用常规的优化数据结构和程序设计等方法外,另一个对网络设备性能影响非常大的是报文缓冲区的设计。现有技术中通常采用静态设置的方式来设置报文缓冲区数量,通过分配充足的内存空闲作为报文缓冲区,从而提高报文处理效率。
然而,现有技术中的设置方式通常不能满足各种网络设备的需求,且过量的报文缓冲区设计会导致Cache Miss率的增加,降低网络设备的转发性能。
发明内容
本发明提供一种缓冲区数的调整方法和装置,通过动态调整报文缓冲区的数量,适应各种网络设备的需求,避免因报文缓冲区的过多设置而造成Cache Miss率的增加,提高网络设备的转发性能。
本发明的第一个方面是提供一种缓冲区数的调整方法,包括:
根据业务所需的最大缓冲区数、网络设备允许的最大缓冲区数、实际所需的缓冲区数和空闲内存资源允许的最大缓冲区数,获取报文缓冲区数阈值;
根据网络设备中当前开启的业务功能所需的缓冲区数和所述报文缓冲区数阈值,调整报文缓冲区数。
本发明的另一个方面是提供一种缓冲区数的调整装置,包括:
获取模块,用于根据业务所需的最大缓冲区数、网络设备允许的最大缓冲区数、实际所需的缓冲区数和空闲内存资源允许的最大缓冲区数,获取报文缓冲区数阈值;
调整模块,用于根据网络设备中当前开启的业务功能所需的缓冲区数和所述报文缓冲区数阈值,调整报文缓冲区数。
本发明的技术效果是:根据业务所需的最大缓冲区数、网络设备允许的最大缓冲区数、实际所需的缓冲区数和空闲内存资源允许的最大缓冲区数,获取报文缓冲区数阈值,根据网络设备中当前开启的业务功能所需的缓冲区数和所述报文缓冲区数阈值,调整报文缓冲区数;本实施例通过动态调整报文缓冲区的数量,以适应各种网络设备的需求,避免了因报文缓冲区的过多设置而造成Cache Miss率的增加,提高了网络设备的转发性能。
附图说明
图1为本发明缓冲区数的调整方法实施例一的流程图;
图2为本发明缓冲区数的调整方法实施例二的流程图;
图3为本发明缓冲区数的调整方法实施例二中多核处理器芯片的功能模块示意图;
图4为本发明缓冲区数的调整装置实施例一的结构示意图;
图5为本发明缓冲区数的调整装置实施例二的结构示意图。
具体实施方式
此处先对本发明所涉及的某些技术概念进行简单介绍。缓存命中(CacheHit)是指访问指令与数据存放在高速缓存中,Cache Miss是指指访问指令与数据未存放在高速缓存中。采用冯.诺伊曼体系架构设计的计算机(也是目前高性能网络处理器多数采用的硬件体系结构),由于其处理器主频速度的增长数倍于存储设备的访存速度增长,因而两者之间产生了巨大的差距。为了弱化两者速度不匹配所带来的计算瓶颈问题,几乎所有处理器都引入了高速缓存技术,即在内存与处理器核之间引入1级、2级,甚至3级、4级高速缓存单元,不同处理器实现的级数有一定差异。但高速缓存单元的容量相比于内存空间来说,是非常有限的,通常都只有几M(兆)字节,甚至几K(千)字节。若处理器核执行指令和加工数据时,这些数据都存放在高速缓存中,则其执行速率可接近主频速率。否则,若还需要从内存、甚至外部存储设备加载,则处理器核需要等待非常长的时间才能继续往下执行。当访问的指令与数据存放在高速缓存中时,被称为Cache Hit,否则被称为Cache Miss。Cache Hit率越高,则代码执行速度越快,处理器资源利用率越高;反之,Cache Miss率越高,则代码执行速度越慢,处理器资源浪费越大。由于高速缓存空间有限,因而在代码执行过程中,不论是指令缓存(Instruction Cache;以下简称:I-Cache)还是数据缓存(Data Cache;以下简称:D-Cache)都需要经常与内存之间进行内容置换。由于高速缓冲空间远远小于内存空间,因此硬件设计时会对高速缓存空间进行单元划分,称为缓存行(Cache Line),并采用多路映射方式进行置换,即多个内存地址单元按照固定规则映射到同一个或多个缓存行。在内容置换时,一次置换一个Cache单元——Cache Line。例如,若Cache Line大小为128字节,则置换时将进行128字节的整体性置换。若数据组织的不好,或执行指令跳转不存在规律,就会产生较高的Cache Miss率,执行速度就会下降,对网络设备上来说就会降低数据转发性能。
报文缓冲区通常在报文接收和中间处理过程中用于对报文数据的临时存储,并在报文处理完成后(如被从接口发送出去或者被网络设备丢弃)被回收,重新放置在报文缓冲区。对于缓冲区的管理有软件管理,也有硬件管理,同时受限于高速缓存空间大小,在网络通用处理器中只能分配内存空间作为报文缓冲区。把内存空间作为报文缓冲区,若要对报文进行路由及安全等业务处理,它们最终必然需要把整个报文或报文的局部加载到高速缓存中进行业务处理的。根据高速缓存置换规则,在报文接收和后续报文处理过程中,可能会有一些报文缓冲区被映射到高速缓存中。若报文从接收一开始就被存放于映射到二级或三级高速缓存的报文缓冲区,那么有可能会大大加快报文的处理速度,但其前提是在整个报文处理过程中不进行或只进行少数几次的高速缓存与内存之间的置换。
通常,若内存空间充足,则认为报文缓冲区越大越好。但事实上,对报文进行转发处理过程中,若网络设备需要的报文缓冲区数越大,也意味着在网络设备中存储的待转发处理的报文越多,在网络流速一定的情况下,表明网络设备对报文的处理延迟越大。对一款网络设备来说,由于硬件处理器核的计算能力是固定的,处理延迟越大意味着或者处理步骤越多,或者每条指令的平均处理时间越长。若是前者,可以从优化程序设计减少指令数的角度出发进行优化,不属于本专利关注的范围。若是后者,平均每条指令的处理时间长无非存在指令缓存不命中(Instruction Cache;以下简称:I-Cache Miss)或数据缓存不命中(Data Cache;以下简称:D-Cache Miss)两种情况,由于非Per-CPU的共享高速缓存不仅用于存放指令也用于存放待加工数据,因此无论是指令还是数据的置换,若造成Cache Miss,都必然会影响到每条指令的平均处理时长。在网络设备中,指令的数量通常是确定的,尤其在测试网络设备性能的时候,测试数据流通常也是固定的,除流速有所不同外,每个报文的加工指令也是固定的,因而相对指令对空间的占用来说,数据占用的存储空间比重更大。报文数据在设备中经历的处理时间越长,占用存储资源就越多,引起Cache Miss的机会也增多。若在减少报文缓冲区数量的情况下,依然可以满足网络设备转发要求,那意味着需要与Cache建立映射关系的内存也小,进而也会降低Cache Miss率,提升网络设备数据转发性能。因此,本实施例旨在对报文缓冲区数量进行动态调整,在满足网络设备转发要求的前提下,尽可能地减少网络设备所使用的报文缓冲区数,从而降低Cache Miss率。
图1为本发明缓冲区数的调整方法实施例一的流程图,如图1所示,本实施例提供了一种缓冲区数的调整方法,可以具体包括如下步骤:
步骤101,根据业务所需的最大缓冲区数、网络设备允许的最大缓冲区数、实际所需的缓冲区数和空闲内存资源允许的最大缓冲区数,获取报文缓冲区数阈值。
本实施例具体可以根据业务所需的最大缓冲区数、网络设备允许的最大缓冲区数、实际所需的缓冲区数和空闲内存资源允许的最大缓冲区数,获取报文缓冲区数阈值。其中,业务所需的最大缓冲区数为网络设备开启所有业务功能时所需的缓冲区数的最大值,网络设备允许的最大缓冲区数为网络设备所允许的网络转发延迟所需的缓冲区数的最大值,实际所需的缓冲区数为网络设备实际所需的缓冲区数,空闲内存资源允许的最大缓冲区数为当前可用于缓存报文数据的空闲内存资源所允许的缓冲区数的最大值。本实施例综合考虑网络设备的各种情况,分别获取到不同情况下所需的缓冲区数,然后根据获取到的这些缓冲区数来获取初始化报文缓冲区,具体可以获取上述不同情况下所需的缓冲区数中的最小值作为报文缓冲区数阈值。在网络设备启动时,可以将网络设备启动时的报文缓冲区数的初始值直接设置为该报文缓冲区数阈值。
步骤102,根据网络设备中当前开启的业务功能所需的缓冲区数和所述报文缓冲区数阈值,调整报文缓冲区数。
在网络设备运行过程中,获取网络设备中当前开启的业务功能,并获取当前开启的业务功能所需的缓冲区数,然后根据该网络设备中当前开启的业务功能所需的缓冲区数和上述步骤获取的报文缓冲区数阈值,对网络设备中设定的报文缓冲区数进行动态调整。本实施例通过动态调整报文缓冲区数,与现有技术中将报文缓冲区数静态设置为一个最大值相比,减少了被用于接收报文的报文缓冲区数,根据当前的报文缓冲区数在接收报文之前随机丢弃超过设备吞吐量的报文,由于接收到的报文在后续报文转发过程中需要经过CPU处理,进而需要加载映射到共享高速缓存中,从而降低映射到共享高速缓存的内存大小,将无法及时处理的报文丢弃在网络设备接收报文并存储在报文缓冲区之前,以此避免Cache Miss率的过快增长。
本实施例提供了一种缓冲区数的调整方法,根据业务所需的最大缓冲区数、网络设备允许的最大缓冲区数、实际所需的缓冲区数和空闲内存资源允许的最大缓冲区数,获取报文缓冲区数阈值,并根据网络设备中当前开启的业务功能所需的缓冲区数和所述报文缓冲区数阈值,调整报文缓冲区数;本实施例通过动态调整报文缓冲区的数量,以适应各种网络设备的需求,避免了因报文缓冲区的过多设置而造成Cache Miss率的增加,提高网络设备的转发性能。
图2为本发明缓冲区数的调整方法实施例二的流程图,如图2所示,本实施例提供了一种缓冲区数的调整方法,可以具体包括如下步骤:
步骤201,统计网络设备中各业务功能所需的最大缓冲区数,将所有业务功能所需的最大缓冲区数之和作为业务所需的最大缓冲区数。
本实施例提供的缓冲区数的调整方法可以具体应用于多核处理器中,图3为本发明缓冲区数的调整方法实施例二中多核处理器芯片的功能模块示意图,如图3所示,该多核处理器芯片可以包括网络接口单元、空闲缓冲区管理单元、报文输入单元、内存控制器和多核处理器。其中,内存控制器与内存中的空闲缓冲区设定模块相连。网络接口单元用于对数字信号与模拟信号进行互转,实现IP报文的接收和发送。报文输入单元用于向空闲缓冲区管理单元申请分配报文缓冲区,从网络接口接收报文,并将数据存放到所申请的报文缓冲区,并可配置开启早期随机丢弃功能。此处的开启早期随机丢弃功能是指当有报文到达,但空闲缓冲区管理单元中可分配的空闲缓冲区数为零时,便直接丢弃该报文,而不影响正在执行的报文处理程序和其他缓冲区管理单元。多核处理器用于执行相关的报文处理程序。网络设备的业务功能配置是指网络管理员经由本地控制台、远程连接或网页方式登录网络设备管理界面进行关闭或开启业务功能,指导网络设备程序执行功能的数据配置。空闲缓冲区设定模块用于在通过本实施例的缓冲区数的调整方法对缓冲区数进行调整之后,将调整后的缓冲区数设定到空闲缓冲区管理单元,其可实现为网络设备软件驱动的一个模块,通常存储于内存中。
本步骤为先计算业务所需的最大缓冲区数,统计网络设备中各业务功能所需的最大缓冲区数,将所有业务功能所需的最大缓冲区数之和作为业务所需的最大缓冲区数。此处网络设备中各业务功能所需的最大缓冲区数为网络设备设计人员在开发该款设备时所确定的业务功能所需的报文缓冲区数的最大值,本实施例中采用参数Mmax来表示业务功能所需的报文缓冲区数的最大值。例如,若网络设备中一共有40个业务功能在报文转发处理过程中需要对报文进行缓存处理,若平均每个业务功能最多只允许缓存500个报文缓冲区,则一共需要20000个报文缓冲区,即计算得到业务所需的最大缓冲区数Mmax为20000。
步骤202,根据网络设备允许的网络转发延迟和平均每个报文处理时长,计算网络设备允许的最大缓冲区数。
本步骤为计算网络设备允许的最大缓冲区数,具体根据网络设备允许的网络转发延迟和平均每个报文处理时长,在不超过网络设备的吞吐量和满足突发性流量要求的情况下,来计算网络设备允许的最大缓冲区数。其中,平均每个报文处理时长是指一个报文从网络接口单元进入,经由网络设备当前开启的业务功能处理,到离开网络设备所经过的平均时间长度。具体可以采用下述公式(1)来计算网络设备允许的最大缓冲区数:
其中,Nmax为网络设备允许的最大缓冲区数,Tmax为网络设备允许的网络转发延迟,TAvg_per_packet为平均每个报文处理时长,r为允许突发性流量达到吞吐量时流速的比例,Tper为突发性流量的持续时间。
例如,假设网络设备的预定性能目标值为:64Bytes IP报文为4G bps,该网络设备允许的网络转发延迟Tmax为1ms,允许突发性流量达到吞吐量时流速的比例r为10%,且突发性流量的持续时间Tper为1ms,统计得到在不超过网络设备的吞吐量和满足突发性流量要求的情况下平均每个报文处理时长TAvg_per_packet为0.15us,因此通过上述公式(1)计算得到网络设备允许的最大缓冲区数Nmax为7333。
步骤203,根据所述网络设备的预定性能目标值、每个报文平均长度和所述网络设备允许的网络转发延迟,计算实际所需的缓冲区数。
本步骤为计算实际所需的缓冲区数,具体根据网络设备的预定性能目标值、每个报文平均长度和所述网络设备允许的网络转发延迟,计算实际所需的缓冲区数。具体可以采用下述公式(2)计算实际所需的缓冲区数:
其中,Nneed为实际所需的缓冲区数,Tmax为网络设备允许的网络转发延迟,C为网络设备的预定性能目标值,Lpacker为每个报文平均长度。
仍以上述假设为例,网络设备的预定性能目标值C为4G bps,该值为每秒传输的二进制比特位,单位G为230的数值,IP报文长度为64字节,假设以太网帧头及前导等长度的字节数为20,然后可以得到每个报文平均长度Lpacket为(64+20)×8,其中8为每字节所占位数。然后通过上述公式(2)便可以计算得到实际所需的缓冲区数Nneed为6391,即若要达到性能目标,在1ms转发延迟内,最多允许有6391个报文被网络设备缓存,也意味着实际上最多只需要6391个报文缓冲区。
步骤204,根据当前可用于缓存报文数据的内存空间大小和每个缓冲区长度,计算空闲内存资源允许的最大缓冲区数。
本步骤为计算空闲内存资源允许的最大缓冲区数,具体根据当前可用于缓存报文数据的内存空间大小和每个缓冲区长度,计算空闲内存资源允许的最大缓冲区数。具体可以采用下述公式(3)来计算空闲内存资源允许的最大缓冲区数:
其中,Pmax为空闲内存资源允许的最大缓冲区数,Vidle为当前可用于缓存报文数据的内存空间大小,Lcache为每个缓冲区长度。
仍以上述假设为例,假设当前可用于缓存报文数据的内存空间大小Vidle为32M,若存放报文的每个缓冲区长度Lcache为2048字节,则通过上述公式(3)计算得到空闲内存资源允许的最大缓冲区数Pmax为16384。对于现在高性能网络设备中几个G的内存空间来说,Pmax通常不会成为报文缓冲区数的主要限制条件。
需要指出的是,上述步骤201-204之间并不存在严格的时序关系,可以按照实际情况来选择各步骤的执行顺序。
步骤205,将业务所需的最大缓冲区数、网络设备允许的最大缓冲区数、实际所需的缓冲区数和空闲内存资源允许的最大缓冲区数中的最小值,作为报文缓冲区数阈值。
在通过上述计算,获取到业务所需的最大缓冲区数Mmax、网络设备允许的最大缓冲区数Nmax、实际所需的缓冲区数Nneed和空闲内存资源允许的最大缓冲区数Pmax之后,将业务所需的最大缓冲区数、网络设备允许的最大缓冲区数、实际所需的缓冲区数和空闲内存资源允许的最大缓冲区数中的最小值,作为报文缓冲区数阈值,即获取报文缓冲区数阈值为min{Mmax,Nmax,Nneed,Pmax},即6391。
步骤206,判断网络设备中当前开启的业务功能所需的缓冲区数是否大于或等于报文缓冲区数阈值,如果是,则执行步骤207,否则执行步骤208。
在网络设备运行过程中,获取网络设备当前的业务功能设置,即获取该网络设备当前开启的业务功能,并计算当前运行环境下开启的业务功能所需要的报文缓冲区数Mcur,判断网络设备中当前开启的业务功能所需的缓冲区数是否大于或等于报文缓冲区数阈值,如果是,则执行步骤207,否则执行步骤208。
步骤207,将报文缓冲区数设置为报文缓冲区数阈值。
当网络设备中当前开启的业务功能所需的缓冲区数Mcur大于或等于上述步骤205获取的报文缓冲区数阈值min{Mmax,Nmax,Nneed,Pmax}时,将报文缓冲区数设置为报文缓冲区数阈值。例如,假设在网络设备启动之后,检测网络设备当前的业务功能配置,发现当前网络设备开启了15个业务功能,则当前开启的业务功能最多需要7500个报文缓冲区,即Mcur=7500,可见Mcur大于6391,则将报文缓冲区数设置为6391。
步骤208,将报文缓冲区数设置为所述网络设备中当前开启的业务功能所需的缓冲区数。
当网络设备中当前开启的业务功能所需的缓冲区数Mcur不大于上述步骤205获取的报文缓冲区数阈值min{Mmax,Nmax,Nneed,Pmax}时,将报文缓冲区数设置为所述网络设备中当前开启的业务功能所需的缓冲区数。例如,假设在网络设备启动之后,检测网络设备当前的业务功能配置,发现当前网络设备开启了10个业务功能,则当前开启的业务功能最多只需要5000个报文缓冲区,即Mcur=5000,可见Mcur小于6391,则将报文缓冲区数调整为min{min{Mmax,Nmax,Nneed,Pmax},Mcur},即5000。
本实施例提供了一种缓冲区数的调整方法,根据业务所需的最大缓冲区数、网络设备允许的最大缓冲区数、实际所需的缓冲区数和空闲内存资源允许的最大缓冲区数,获取报文缓冲区数阈值,根据网络设备中当前开启的业务功能所需的缓冲区数和报文缓冲区数阈值,调整报文缓冲区数;本实施例根据网络设备的业务处理需求和硬件资源的特点动态调整报文缓冲区的数量,以适应各种网络设备的需求,避免了因报文缓冲区的过多设置而造成Cache Miss率的增加,提高了网络设备的转发性能,从而缩小了性能峰值与稳定值之间的差距,提高了网络设备的性能稳定性。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图4为本发明缓冲区数的调整装置实施例一的结构示意图,如图4所示,本实施例提供了一种缓冲区数的调整装置,可以具体执行上述方法实施例一中的各个步骤,此处不再赘述。本实施例提供的缓冲区数的调整装置可以具体包括获取模块401和调整模块402。其中,获取模块401用于根据业务所需的最大缓冲区数、网络设备允许的最大缓冲区数、实际所需的缓冲区数和空闲内存资源允许的最大缓冲区数,获取报文缓冲区数阈值。调整模块402用于根据网络设备中当前开启的业务功能所需的缓冲区数和所述报文缓冲区数阈值,调整报文缓冲区数。
图5为本发明缓冲区数的调整装置实施例二的结构示意图,如图5所示,本实施例提供了一种缓冲区数的调整装置,可以具体执行上述方法实施例二中的各个步骤,此处不再赘述。本实施例提供的缓冲区数的调整装置在上述图4所示的基础之上,获取模块401可以具体包括第一计算单元411、第二计算单元421、第三计算单元431、第四计算单元441和获取单元451。其中,第一计算单元411用于统计网络设备中各业务功能所需的最大缓冲区数,将所有业务功能所需的最大缓冲区数之和作为业务所需的最大缓冲区数。第二计算单元421用于根据网络设备允许的网络转发延迟和平均每个报文处理时长,计算网络设备允许的最大缓冲区数。第三计算单元431用于根据所述网络设备的预定性能目标值、每个报文平均长度和所述网络设备允许的网络转发延迟,计算实际所需的缓冲区数。第四计算单元441用于根据当前可用于缓存报文数据的内存空间大小和每个缓冲区长度,计算空闲内存资源允许的最大缓冲区数。获取单元451用于将所述业务所需的最大缓冲区数、所述网络设备允许的最大缓冲区数、所述实际所需的缓冲区数和所述空闲内存资源允许的最大缓冲区数中的最小值,作为报文缓冲区数阈值。
具体地,调整模块402可以具体包括第一调整单元412和第二调整单元422。其中,第一调整单元412用于当网络设备中当前开启的业务功能所需的缓冲区数大于或等于所述报文缓冲区数阈值时,将报文缓冲区数设置为所述报文缓冲区数阈值。第二调整单元422用于当网络设备中当前开启的业务功能所需的缓冲区数小于所述报文缓冲区数阈值时,将报文缓冲区数设置为所述网络设备中当前开启的业务功能所需的缓冲区数。
具体地,本实施例中的第二计算单元421具体用于根据网络设备允许的网络转发延迟和平均每个报文处理时长,采用上述公式(1)计算网络设备允许的最大缓冲区数。
具体地,本实施例中的第三计算单元431具体用于根据所述网络设备的预定性能目标值和所述网络设备允许的网络转发延迟,采用上述公式(2)计算实际所需的缓冲区数。
具体地,本实施例中的第四计算单元441具体用于根据当前可用于缓存报文数据的内存空间大小和每个缓冲区长度,采用上述公式(3)计算空闲内存资源允许的最大缓冲区数。
本实施例提供了一种缓冲区数的调整装置,根据业务所需的最大缓冲区数、网络设备允许的最大缓冲区数、实际所需的缓冲区数和空闲内存资源允许的最大缓冲区数,获取报文缓冲区数阈值,根据网络设备中当前开启的业务功能所需的缓冲区数和所述报文缓冲区数阈值,调整报文缓冲区数;本实施例根据网络设备的业务处理需求和硬件资源的特点动态调整报文缓冲区的数量,以适应各种网络设备的需求,避免了因报文缓冲区的过多设置而造成Cache Miss率的增加,提高了网络设备的转发性能,从而缩小了性能峰值与稳定值之间的差距,提高了网络设备的性能稳定性。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (12)
1.一种缓冲区数的调整方法,其特征在于,包括:
根据业务所需的最大缓冲区数、网络设备允许的最大缓冲区数、实际所需的缓冲区数和空闲内存资源允许的最大缓冲区数,获取报文缓冲区数阈值;
根据网络设备中当前开启的业务功能所需的缓冲区数和所述报文缓冲区数阈值,调整报文缓冲区数。
2.根据权利要求1所述的方法,其特征在于,所述根据业务所需的最大缓冲区数、网络设备允许的最大缓冲区数、实际所需的缓冲区数和空闲内存资源允许的最大缓冲区数,获取报文缓冲区数阈值包括:
统计网络设备中各业务功能所需的最大缓冲区数,将所有业务功能所需的最大缓冲区数之和作为业务所需的最大缓冲区数;
根据网络设备允许的网络转发延迟和平均每个报文处理时长,计算网络设备允许的最大缓冲区数;
根据所述网络设备的预定性能目标值、每个报文平均长度和所述网络设备允许的网络转发延迟,计算实际所需的缓冲区数;
根据当前可用于缓存报文数据的内存空间大小和每个缓冲区长度,计算空闲内存资源允许的最大缓冲区数;
将所述业务所需的最大缓冲区数、所述网络设备允许的最大缓冲区数、所述实际所需的缓冲区数和所述空闲内存资源允许的最大缓冲区数中的最小值,作为报文缓冲区数阈值。
3.根据权利要求1或2所述的方法,其特征在于,所述根据网络设备中当前开启的业务功能所需的缓冲区数和所述报文缓冲区数阈值,调整报文缓冲区数包括:
当网络设备中当前开启的业务功能所需的缓冲区数大于或等于所述报文缓冲区数阈值时,将报文缓冲区数设置为所述报文缓冲区数阈值;
当网络设备中当前开启的业务功能所需的缓冲区数小于所述报文缓冲区数阈值时,将报文缓冲区数设置为所述网络设备中当前开启的业务功能所需的缓冲区数。
4.根据权利要求2所述的方法,其特征在于,所述根据网络设备允许的网络转发延迟和平均每个报文处理时长,计算网络设备允许的最大缓冲区数包括:
根据网络设备允许的网络转发延迟和平均每个报文处理时长,采用下述公式计算网络设备允许的最大缓冲区数:
其中,Nmax为网络设备允许的最大缓冲区数,Tmax为网络设备允许的网络转发延迟,TAvg_per_packet为平均每个报文处理时长,r为允许突发性流量达到吞吐量时流速的比例,Tper为突发性流量的持续时间。
5.根据权利要求2所述的方法,其特征在于,所述根据所述网络设备的预定性能目标值、每个报文平均长度和所述网络设备允许的网络转发延迟,计算实际所需的缓冲区数包括:
根据所述网络设备的预定性能目标值和所述网络设备允许的网络转发延迟,采用下述公式计算实际所需的缓冲区数:
其中,Nneed为实际所需的缓冲区数,Tmax为网络设备允许的网络转发延迟,C为网络设备的预定性能目标值,Lpacket为每个报文平均长度。
6.根据权利要求2所述的方法,其特征在于,所述根据当前可用于缓存报文数据的内存空间大小和每个缓冲区长度,计算空闲内存资源允许的最大缓冲区数包括:
根据当前可用于缓存报文数据的内存空间大小和每个缓冲区长度,采用下述公式计算空闲内存资源允许的最大缓冲区数:
其中,Pmax为空闲内存资源允许的最大缓冲区数,Vidle为当前可用于缓存报文数据的内存空间大小,Lcache为每个缓冲区长度。
7.一种缓冲区数的调整装置,其特征在于,包括:
获取模块,用于根据业务所需的最大缓冲区数、网络设备允许的最大缓冲区数、实际所需的缓冲区数和空闲内存资源允许的最大缓冲区数,获取报文缓冲区数阈值;
调整模块,用于根据网络设备中当前开启的业务功能所需的缓冲区数和所述报文缓冲区数阈值,调整报文缓冲区数。
8.根据权利要求7所述的装置,其特征在于,所述获取模块包括:
第一计算单元,用于统计网络设备中各业务功能所需的最大缓冲区数,将所有业务功能所需的最大缓冲区数之和作为业务所需的最大缓冲区数;
第二计算单元,用于根据网络设备允许的网络转发延迟和平均每个报文处理时长,计算网络设备允许的最大缓冲区数;
第三计算单元,用于根据所述网络设备的预定性能目标值、每个报文平均长度和所述网络设备允许的网络转发延迟,计算实际所需的缓冲区数;
第四计算单元,用于根据当前可用于缓存报文数据的内存空间大小和每个缓冲区长度,计算空闲内存资源允许的最大缓冲区数;
获取单元,用于将所述业务所需的最大缓冲区数、所述网络设备允许的最大缓冲区数、所述实际所需的缓冲区数和所述空闲内存资源允许的最大缓冲区数中的最小值,作为报文缓冲区数阈值。
9.根据权利要求7或8所述的装置,其特征在于,所述调整模块包括:
第一调整单元,用于当网络设备中当前开启的业务功能所需的缓冲区数大于或等于所述报文缓冲区数阈值时,将报文缓冲区数设置为所述报文缓冲区数阈值;
第二调整单元,用于当网络设备中当前开启的业务功能所需的缓冲区数小于所述报文缓冲区数阈值时,将报文缓冲区数设置为所述网络设备中当前开启的业务功能所需的缓冲区数。
10.根据权利要求8所述的装置,其特征在于,所述第二计算单元具体用于根据网络设备允许的网络转发延迟和平均每个报文处理时长,采用下述公式计算网络设备允许的最大缓冲区数:
其中,Nmax为网络设备允许的最大缓冲区数,Tmax为网络设备允许的网络转发延迟,TAvg_per_packet为平均每个报文处理时长,r为允许突发性流量达到吞吐量时流速的比例,Tper为突发性流量的持续时间。
11.根据权利要求8所述的装置,其特征在于,所述第三计算单元具体用于根据所述网络设备的预定性能目标值和所述网络设备允许的网络转发延迟,采用下述公式计算实际所需的缓冲区数:
其中,Nneed为实际所需的缓冲区数,Tmax为网络设备允许的网络转发延迟,C为网络设备的预定性能目标值,Lpacket为每个报文平均长度。
12.根据权利要求8所述的装置,其特征在于,所述第四计算单元具体用于根据当前可用于缓存报文数据的内存空间大小和每个缓冲区长度,采用下述公式计算空闲内存资源允许的最大缓冲区数:
其中,Pmax为空闲内存资源允许的最大缓冲区数,Vidle为当前可用于缓存报文数据的内存空间大小,Lcache为每个缓冲区长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210300979.5A CN102833162B (zh) | 2012-08-22 | 2012-08-22 | 缓冲区数的调整方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210300979.5A CN102833162B (zh) | 2012-08-22 | 2012-08-22 | 缓冲区数的调整方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102833162A true CN102833162A (zh) | 2012-12-19 |
CN102833162B CN102833162B (zh) | 2015-09-23 |
Family
ID=47336135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210300979.5A Active CN102833162B (zh) | 2012-08-22 | 2012-08-22 | 缓冲区数的调整方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102833162B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822717A (zh) * | 2020-12-31 | 2021-05-18 | 联想未来通信科技(重庆)有限公司 | 一种动态控制报文缓冲的方法、装置及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1756226A (zh) * | 2004-09-29 | 2006-04-05 | 中兴通讯股份有限公司 | 一种专用信道的流控方法 |
CN101364948A (zh) * | 2008-09-08 | 2009-02-11 | 中兴通讯股份有限公司 | 一种动态分配缓存的方法 |
US20110239220A1 (en) * | 2010-03-26 | 2011-09-29 | Gary Allen Gibson | Fine grain performance resource management of computer systems |
-
2012
- 2012-08-22 CN CN201210300979.5A patent/CN102833162B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1756226A (zh) * | 2004-09-29 | 2006-04-05 | 中兴通讯股份有限公司 | 一种专用信道的流控方法 |
CN101364948A (zh) * | 2008-09-08 | 2009-02-11 | 中兴通讯股份有限公司 | 一种动态分配缓存的方法 |
US20110239220A1 (en) * | 2010-03-26 | 2011-09-29 | Gary Allen Gibson | Fine grain performance resource management of computer systems |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822717A (zh) * | 2020-12-31 | 2021-05-18 | 联想未来通信科技(重庆)有限公司 | 一种动态控制报文缓冲的方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102833162B (zh) | 2015-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2487401C2 (ru) | Способ обработки данных, узел-маршрутизатор и носитель информации | |
EP2783490B1 (en) | Time-sensitive data delivery | |
US9025457B2 (en) | Router and chip circuit | |
US20160132541A1 (en) | Efficient implementations for mapreduce systems | |
WO2021057500A1 (zh) | 一种消息发送管理方法及装置 | |
US20090049450A1 (en) | Method and system for component load balancing | |
US20150032977A1 (en) | Memory management system, method and computer program product | |
CN103200128A (zh) | 一种网络包处理的方法、装置和系统 | |
CN105446653B (zh) | 一种数据合并方法和设备 | |
CN101616083A (zh) | 一种报文转发方法和装置 | |
CN109697122A (zh) | 任务处理方法、设备及计算机存储介质 | |
EP3295629B1 (en) | Query plan and operation-aware communication buffer management | |
JP2008086027A (ja) | 遠隔要求を処理する方法および装置 | |
CN105409170A (zh) | 自一个调度输出队列出列多个封包及/或使用过调度来调度输出队列的封包输出控制器以及相关方法 | |
CN103838659A (zh) | 一种系统日志的控制方法和装置 | |
WO2021197128A1 (zh) | 流量限速方法及装置 | |
CN106648456A (zh) | 基于用户访问量以及预测机制的动态副本文件访问方法 | |
CN103986585A (zh) | 报文预处理方法及其装置 | |
CN112600761A (zh) | 一种资源分配的方法、装置及存储介质 | |
US20220365815A1 (en) | Sub-queue insertion schemes executable by queue managers and related systems and operations | |
CN118509399A (zh) | 一种报文处理方法、装置、电子设备及存储介质 | |
CN114500401A (zh) | 一种应对突发流量的资源调度方法和系统 | |
CN118192883A (zh) | 一种面向远程存储访问的请求合并和调度方法及装置 | |
KR101595967B1 (ko) | 데드라인 부여된 작업의 분산 처리 성능 향상을 위한 맵리듀스 스케쥴링 시스템 및 방법 | |
WO2015188495A1 (zh) | 数据传输方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |