CN103841042A - 在高运行效率下传输数据的方法和装置 - Google Patents
在高运行效率下传输数据的方法和装置 Download PDFInfo
- Publication number
- CN103841042A CN103841042A CN201410056844.8A CN201410056844A CN103841042A CN 103841042 A CN103841042 A CN 103841042A CN 201410056844 A CN201410056844 A CN 201410056844A CN 103841042 A CN103841042 A CN 103841042A
- Authority
- CN
- China
- Prior art keywords
- priority task
- packet
- routing forwarding
- forwarding equipment
- total number
- 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
本发明实施例公开了一种在高运行效率下传输数据的方法和装置。所述方法包括:监测当前的CPU负载占用率和/或传输速率;当所述当前的CPU负载占用率和/或传输速率小于对应的最小预设阈值时,减小路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,和/或,减小路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值;当所述当前的CPU负载占用率和/或传输速率大于或等于对应的最大预设阈值时,增大路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,和/或,增大路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值。根据本发明实施例,可以满足对路由转发设备的高运行效率的要求。
Description
技术领域
本发明涉及数据传输领域,特别是涉及在高运行效率下传输数据的方法和装置。
背景技术
Linux TCP/IP(传输控制协议/网络协议,Transfer Control Protocol/InternetProtocol)栈由于其安全性、高效性和开源的性质,被广泛地应用于网络设备的开发。Linux TCP/IP栈作为一种路由转发设备,具有路由转发功能,该路由转发功能就是将从A网口进入TCP/IP栈的数据包,通过一定的路由算法从B网口出TCP/IP栈,以达到数据中转分发的功能,实现数据从A网络进入到B网络的目的。
在Linux TCP/IP栈中,TCP数据传输是一种采用滑动窗口机制和确认机制的数据传输方式,其具有高可靠性的特点,被广泛应用在对HTTP(超文本传输协议,HyperText Transfer Protocol)数据和FTP(文本传输协议,FileTransfer Protocol)数据的传输。
在实际应用中,通常对TCP/IP栈有高运行效率的要求,即,在TCP/IP栈进行TCP数据传输时,要保证传输速率高的同时,也要尽量保证CPU负载占用率低。该要求不仅适用于TCP/IP栈,也同样适用于其它的路由转发设备。
目前,迫切需要一种解决方案,以满足对路由转发设备的高运行效率的要求。
发明内容
为了解决上述技术问题,本发明实施例提供了在高运行效率下传输数据的方法和装置,以满足对路由转发设备的高运行效率的要求。
本发明实施例公开了如下技术方案:
根据本发明实施例的第一方面,公开了一种在高运行效率下传输数据的方法,包括:
监测当前的CPU负载占用率和/或传输速率;
当所述当前的CPU负载占用率和/或传输速率小于对应的最小预设阈值时,减小路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,或,减小路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值;
当所述当前的CPU负载占用率和/或传输速率大于或等于对应的最大预设阈值时,增大路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,或,增大路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值。
结合本发明的第一方面,本发明还具有第一种可能,即所述监测当前的CPU负载占用率,包括:
计算空闲任务在最近一个统计周期内处于运行状态时的运行时间与统计周期的比值,并作为所述空闲任务在最近一个统计周期内的CPU负载占用率;
计算1与所述空闲任务在最近一个统计周期内的CPU负载占用率的差值,并作为当前的CPU负载占用率。
结合本发明的第一方面,本发明还具有第二种可能,即所述监测当前的传输速率,包括:
计算路由转发设备在最近一个统计周期内接收到的数据包的长度总和;
计算所述长度总和与统计周期的比值,并作为当前的传输速率。
结合本发明的第一方面,本发明还具有第三种可能,即所述监测当前的CPU负载占用率和/或传输速率为:
统计路由转发设备中的下层的低优先级任务一次接收的数据包的总个数;
所述当所述当前的CPU负载占用率和/或传输速率小于对应的最小预设阈值时,减小路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数具体为:
当所述总个数小于第一数量阈值时,减小路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数;
当所述当前的CPU负载占用率和/或传输速率大于或等于对应的最大预设阈值时,增大路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数具体为:
当所述总个数大于或等于第一数量阈值时,增大路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数。
结合本发明的第一方面的第三种可能,本发明还具有第四种可能,即所述减小路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数具体为:控制路由转发设备中的下层的低优先级任务将一次接收的数据包分批次地递交给上层的高优先级任务;所述增大路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数具体为:控制路由转发设备中的下层的低优先级任务将一次接收的数据包一次性递交给上层的高优先级任务。
结合本发明的第一方面的第四种可能,本发明还具有第五种可能,即还包括:
当所述总个数小于或等于第二数量阈值时,控制路由转发设备中的下层的低优先级任务将一次接收的数据包一次性递交给上层的高优先级任务,所述第二数量阈值小于所述第二数量阈值。
根据本发明实施例的第一方面,公开了一种在高运行效率下传输数据的装置,包括:
监测单元,用于监测当前的CPU负载占用率和/或传输速率;
第一控制单元,用于当所述当前的CPU负载占用率和/或传输速率小于对应的最小预设阈值时,减小路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,或,减小路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值;
第二控制单元,用于当所述当前的CPU负载占用率和/或传输速率大于或等于对应的最大预设阈值时,增大路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,或,增大路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值。
结合本发明的第二方面,本发明还具有第一种可能,即所述监测单元包括:
第一计算子单元,用于计算空闲任务在最近一个统计周期内处于运行状态时的运行时间与统计周期的比值,并作为所述空闲任务在最近一个统计周期内的CPU负载占用率;
第二计算子单元,用于计算1与所述空闲任务在最近一个统计周期内的CPU负载占用率的差值,并作为当前的CPU负载占用率。
结合本发明的第二方面,本发明还具有第二种可能,即所述监测单元包括:
第三计算子单元,用于计算路由转发设备在最近一个统计周期内接收到的数据包的长度总和;
第四计算子单元,用于计算所述长度总和与统计周期的比值,并作为当前的传输速率。
结合本发明的第二方面,本发明还具有第三种可能,即所述监测单元包括:
统计子单元,用于统计路由转发设备中的下层的低优先级任务一次接收的数据包的总个数;
所述第一控制单元具体用于,当所述总个数小于第一数量阈值时,减小路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数;
所述第二控制单元具体用于,当所述总个数大于或等于第一数量阈值时,增大路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数。
结合本发明的第二方面的第三种可能,本发明还具有第四种可能,即所述第一控制单元具体用于,当所述总个数小于第一数量阈值时,控制路由转发设备中的下层的低优先级任务将一次接收的数据包分批次地递交给上层的高优先级任务;所述第二控制单元具体用于,当所述总个数大于或等于第一数量阈值时,控制路由转发设备中的下层的低优先级任务将一次接收的数据包一次性递交给上层的高优先级任务。
结合本发明的第二方面的第四种可能,本发明还具有第五种可能,即还包括:
第三控制单元,用于当所述总个数小于或等于第二数量阈值时,控制路由转发设备中的下层的低优先级任务将一次接收的数据包一次性递交给上层的高优先级任务,所述第二数量阈值小于所述第二数量阈值。
由上述实施例可以看出,与现有技术相比,本发明的优点在于:
动态监控CPU负载占用率和/或传输速率,并根据CPU负载占用率和/或传输速率的当前情况,通过控制路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,或,控制路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值,进而动态调整CPU负载占用率和/或传输速率,达到在高传输速率和高CPU负载占用率时可以降低CPU负载占用率,在低传输速率和低CPU负载占用率时可以提高传输速率,满足对路由转发设备的高运行效率要求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种在高运行效率下传输数据的方法的流程图;
图2为本发明实施例二提供的另一种在高运行效率下传输数据的方法的流程图;
图3为本发明中在低传输速率和低CPU负载占用率的场景中传输数据的示意图;
图4为本发明中在高传输速率和高CPU负载占用率的场景中传输数据的示意图;
图5为本发明实施例三提供的一种在高运行效率下传输数据的装置的结构图;
图6为本发明中监测单元的一种结构示意图;
图7为本发明的通讯装置的结构图。
具体实施方式
本发明实施例提供了在高运行效率下传输数据的方法和装置。本发明技术方案的核心在于,在传输速率和CPU负载占用率都比较低的情况下,增大传输速率,而在传输速率和CPU负载占用率都比较高的情况下,减小CPU负载占用率。通过这样的动态控制方式,使传输速率和CPU负载占用率达到一种均衡的状态,从而保证路由转发设备具有高运行效率。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例进行详细描述。
实施例一
以TCP/IP栈为例,本发明的发明人在研究中发现,TCP/IP栈运行在软中断中,而由于软中断具有优先级高,不可抢占等特点,因此,TCP/IP栈在将已进入栈内的所有数据被处理完毕后,才会调度其它任务。出于降低TCP/IP栈的CPU负载占用率的设计考虑,需要TCP/IP栈一次处理尽可能多的数据,这样就可以减少切换任务的次数,从而降低切换任务消耗的系统开销,并最终降低了CPU负载占用率。但是,TCP/IP栈一次处理的数据越多,对其它任务的打断时间就会越长,TCP/IP栈对数据传输的串行处理能力越大,并行处理能力就会越小,从而造成传输时延变大。而在传输带宽不受限,TCP窗口一定的情况下,由于传输速率与传输时延成反比关系,因此,传输速率就会相应地变小。也就是说,通过控制TCP/IP栈一次处理的数据量,可以同时改变传输速率和CPU负载占用率。即,如果TCP/IP栈一次处理的数据量越大,CPU负载占用率就越小,但同时传输时延也就越大,进而传输速率也越小。反之,如果TCP/IP栈一次处理的数据量越小,传输时延越小,传输速率就越大,但同时CPU负载占用率也越大。
而本发明的发明人还在研究中发现,TCP/IP栈一次处理的数据量的大小可以由quota值决定,quota值即为TCP/IP栈一次处理的数据包的最大个数阈值,当一个网卡驱动递交给TCP/IP栈的数据包的个数大于quota值时,TCP/IP栈处理完quota值个数据包后就会结束处理,并转而去处理其它网卡递交的数据包。因此,当网卡驱动递交给TCP/IP栈的数据包的个数大于quota值时,通过改变quota值(即,TCP/IP栈一次处理的数据包的最大个数阈值),即可改变TCP/IP栈一次处理的数据量。
另一方面,当网卡驱动递交给TCP/IP栈的数据包的个数小于quota值时,通过控制网卡驱动递交给TCP/IP栈的数据包的个数,同样可以改变TCP/IP栈一次处理的数据量的大小,进而改变传输速率和CPU负载占用率。即,如果网卡驱动递交给TCP/IP栈的数据量越大,CPU负载占用率就越小,但同时传输时延越大,进而传输速率也越小。反之,如果网卡递交给TCP/IP栈的数据量越小,传输时延越小,传输速率就越大,但同时CPU负载占用率也越大。
在一般的路由转发设备中,“TCP/IP”栈相当于“上层的高优先级任务”,“网卡驱动”相当于“下层的低优先级任务”。
因此,在本实施例中,通过控制TCP/IP栈一次处理的数据包的最大个数阈值,和/或,控制网卡驱动递交给TCP/IP栈的数据包的总个数,来动态改变传输速率和CPU负载占用率,使传输速率和CPU负载占用率达到一种均衡的状态,从而保证路由转发设备具有高运行效率。
请参阅图1,其为本发明实施例一提供的一种在高运行效率下传输数据的方法的流程图,该方法包括以下步骤:
步骤101:监测当前的CPU负载占用率和/或传输速率;
由于CPU负载占用率和传输速率的状态是相同的,即,当CPU负载占用率高时,传输速率必然是高的,而当CPU负载占用率低时,传输速率必然也是低的。因此,在本步骤中,可以仅监测CPU负载占用率和传输速率中的任意一个参数,当然,也可以同时对这两个参数进行监测。
其中,监测当前的CPU负载占用率具体包括:计算空闲任务在最近一个统计周期内处于运行状态时的运行时间与统计周期的比值,并作为所述空闲任务在最近一个统计周期内的CPU负载占用率;计算1与所述空闲任务在最近一个统计周期内的CPU负载占用率的差值,并作为当前的CPU负载占用率。
监测当前的传输速率具体包括:计算路由转发设备在最近一个统计周期内接收到的数据包的长度总和;计算所述长度总和与统计周期的比值,并作为当前的传输速率。
步骤102:当所述当前的CPU负载占用率和/或传输速率小于对应的最小预设阈值时,减小路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,或,减小路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值;
步骤103:当所述当前的CPU负载占用率和/或传输速率大于或等于对应的最大预设阈值时,增大路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,或,增大路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值。
例如,如果当前的CPU负载占用率小于最小预设阈值,可以减小网卡驱动向TCP/IP栈递交的数据包的个数,或者,也可以减小TCP/IP栈一次处理的数据包的最大个数阈值(即,改变quota值)。相应的,如果当前的CPU负载占用率大于最大预设阈值,可以增大网卡驱动向TCP/IP栈递交的数据包的个数,或者,也可以增大TCP/IP栈一次处理的数据包的最大个数阈值。默认情况下,quota值为64,TCP/IP栈一次最多可以处理64个IP包。当然,除了可以根据CPU负载占用率的大小来调整CPU负载占用率和传输速率之外,也可以根据传输速率的大小来调整CPU负载占用率和传输速率。
需要说明的是,CPU负载占用率和传输速率都有其对应的最小预设阈值和最大预设阈值。并且,最小预设阈值和最大预设阈值可以为同一个数值,可以为不同的数值。当最小预设阈值和最大预设阈值为不同的数值时,如果当前的CPU负载占用率或者传输速率位于最小预设阈值和最大预设阈值之间,可以认为路由转发设备处于高运行效率的状态下,即,处于高传输速率和低负载占用率的状态下。此时,不对传输时延进行任何调整。即,既不对下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数进行调整,也不对上层的高优先级任务一次处理的数据包的最大个数阈值进行调整,而是维持当前的数目。
还需要说明的是,CPU负载占用率和传输速率对应的“最小预设阈值”和“最大预设阈值”的具体数值可以根据实际应用场景进行设置,本发明的技术方案对此不做限定。
由上述实施例可以看出,与现有技术相比,本发明的优点在于:
动态监控CPU负载占用率和/或传输速率,并根据CPU负载占用率和/或传输速率的当前情况,通过控制路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,或,控制路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值,进而动态调整CPU负载占用率和/或传输速率,达到在高传输速率和高CPU负载占用率时可以降低CPU负载占用率,在低传输速率和低CPU负载占用率时可以提高传输速率,满足对路由转发设备的高运行效率要求。
实施例二
发明人在研究中还发现,通常在高传输速率和高CPU负载占用率的场景中,网卡驱动一次接收到的数据包的个数就会比较多,而在低传输速率和低CPU负载占用率的场景中,网卡驱动一次接收的数据包的个数就会比较少。因此,除了可以直接计算CPU负载占用率和/或传输速率的当前值之外,还可以通过网卡驱动一次接收到的数据包的个数来间接确定CPU负载占用率和/或传输速率的当前大小情况,并且,根据间接确定的CPU负载占用率和/或传输速率的当前大小情况,调整网卡驱动一次向TCP/IP栈递交的数据包的总个数,以满足高运行效率的要求。
其中,当网卡驱动一次接收到的数据包的个数比较多时,说明传输速率高,CPU负载占用率高。此时,为了降低CPU占用率,需要减小切换任务的次数,即,需要增大网卡向TCP/IP栈递交的数据包的总个数。当网卡驱动一次接收到的数据包的个数比较少时,说明传输速率低,CPU负载占用率低。此时,为了提高传输速率,需要减小传输时延,即,需要减小网卡向TCP/IP栈递交的数据包的总个数。
对于网卡驱动而言,一种增大其向TCP/IP栈递交的数据包的总个数的方式是,当网卡驱动一次接收到多少个数据包,就可以向TCP/IP栈递交多少个数据包。一种减小其向TCP/IP栈递交的数据包的总个数的方式是,网卡驱动一次接收到的数据包不能全部递交给TCP/IP栈,而是将接收到的数据包分批次地递交给TCP/IP栈。
请参阅图2,其为本发明实施例二提供的另一种在高运行效率下传输数据的方法的流程图,该方法包括以下步骤:
步骤201:统计路由转发设备中的下层的低优先级任务一次接收的数据包的总个数;
步骤202:当所述总个数小于第一数量阈值时,控制路由转发设备中的下层的低优先级任务将一次接收的数据包分批次地递交给上层的高优先级任务;
步骤203:当所述总个数大于或等于第一数量阈值时,控制路由转发设备中的下层的低优先级任务将一次接收的数据包一次性递交给上层的高优先级任务。
在一般情况下,当下层的低优先级任务一次接收的数据包的总个数过小时,即使下层的低优先级任务将一次接收的数据包分批次地递交给上层的高优先级任务,对传输速率的提高不会起到明显的作用,反而会明显增大CPU负载占用率。因此,作为一种优选的实施方式,当下层的低优先级任务一次接收的数据包的总个数小于或等于第二数量阈值时,控制路由转发设备中的下层的低优先级任务将一次接收的数据包一次性递交给上层的高优先级任务,所述第二数量阈值小于所述第二数量阈值。
需要说明的是,“第一数量阈值”和“第二数量阈值”的具体数值可以根据实际应用场景进行设置,本发明的技术方案对此不做限定。
由上述实施例可以看出,与现有技术相比,本发明的优点在于:
动态监控CPU负载占用率和/或传输速率,并根据CPU负载占用率和/或传输速率的当前情况,通过控制路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,或,控制路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值,进而动态调整CPU负载占用率和/或传输速率,达到在高传输速率和高CPU负载占用率时可以降低CPU负载占用率,在低传输速率和低CPU负载占用率时可以提高传输速率,满足对路由转发设备的高运行效率要求。
如图3所示,在低传输速率和低CPU负载占用率的场景中,需要通过减小网卡驱动一次递交给TCP/IP栈的数据包的总个数,或者,减小TCP/IP栈一次处理的数据包的最大个数阈值,可以减小TCP/IP栈一次处理的数据量,降低了TCP/IP栈一次运行时间,及时让接收端接收到数据包之后回复ACK,进而发送端可以及时滑动窗口并发送新的数据,最终提高传输速率。
如图4所示,在高传输速率和高CPU负载占用率的场景中,需要通过增大网卡驱动一次递交给TCP/IP栈的数据包的总个数,或者,增大TCP/IP栈一次处理的数据包的最大个数阈值,可以增大TCP/IP栈一次处理的数据量,减少切换任务的次数,从而降低切换任务消耗的系统开销,并最终降低了CPU负载占用率。
实施例三
与上述一种在高运行效率下传输数据的方法相对应,本发明实施例还提供了一种在高运行效率下传输数据的装置。请参阅图5,其为本发明实施例三提供的一种在高运行效率下传输数据的装置的结构图,该装置包括:监测单元501、第一控制单元502和第二控制单元503。下面结合该装置的工作原理进一步介绍其内部结构以及连接关系。
监测单元501,用于监测当前的CPU负载占用率和/或传输速率;
第一控制单元502,用于当所述当前的CPU负载占用率和/或传输速率小于对应的最小预设阈值时,减小路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,和/或,减小路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值;
第二控制单元503,用于当所述当前的CPU负载占用率和/或传输速率大于或等于对应的最大预设阈值时,增大路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,和/或,增大路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值。
优选的,如图6所示,监测单元501包括:
第一计算子单元5011,用于计算空闲任务在最近一个统计周期内处于运行状态时的运行时间与统计周期的比值,并作为所述空闲任务在最近一个统计周期内的CPU负载占用率;
第二计算子单元5012,用于计算1与所述空闲任务在最近一个统计周期内的CPU负载占用率的差值,并作为当前的CPU负载占用率。
或者,优选的,监测单元501包括:
第三计算子单元,用于计算路由转发设备在最近一个统计周期内接收到的数据包的长度总和;
第四计算子单元,用于计算所述长度总和与统计周期的比值,并作为当前的传输速率。
优选的,监测单元501包括:
统计子单元,用于统计路由转发设备中的下层的低优先级任务一次接收的数据包的总个数;
第一控制单元502具体用于,当所述总个数小于第一数量阈值时,减小路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数;
第二控制单元503具体用于,当所述总个数大于或等于第一数量阈值时,增大路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数。
进一步优选的,第一控制单元502具体用于,当所述总个数小于第一数量阈值时,控制路由转发设备中的下层的低优先级任务将一次接收的数据包分批次地递交给上层的高优先级任务;
第二控制单元503具体用于,当所述总个数大于或等于第一数量阈值时,控制路由转发设备中的下层的低优先级任务将一次接收的数据包一次性递交给上层的高优先级任务。
优选的,该装置还包括:第三控制单元,用于当所述总个数小于或等于第二数量阈值时,控制路由转发设备中的下层的低优先级任务将一次接收的数据包一次性递交给上层的高优先级任务,所述第二数量阈值小于所述第二数量阈值。
由上述实施例可以看出,与现有技术相比,本发明的优点在于:
动态监控CPU负载占用率和/或传输速率,并根据CPU负载占用率和/或传输速率的当前情况,通过控制路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,或,控制路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值,进而动态调整CPU负载占用率和/或传输速率,达到在高传输速率和高CPU负载占用率时可以降低CPU负载占用率,在低传输速率和低CPU负载占用率时可以提高传输速率,满足对路由转发设备的高运行效率要求。
实施例四
本申请实施例还提供了一种通讯装置,通讯装置可能是包含计算能力的主机服务器,或者是个人计算机PC,或者是可携带的便携式计算机或终端等等,本申请具体实施例并不对通讯装置的具体实现做限定。
图7为本申请的通讯装置的结构图。如图7所示,通讯装置700包括:
处理器(processor)710,通信接口(Communications Interface)720,存储器(memory)730,总线740。
处理器710,通信接口720,存储器730通过总线740完成相互间的通信。
处理器710,用于执行程序732。
具体地,程序732可以包括程序代码,所述程序代码包括计算机操作指令。
处理器710可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。
存储器730,用于存放程序732。存储器730可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序732用于执行以下步骤:
监测当前的CPU负载占用率和/或传输速率;
当所述当前的CPU负载占用率和/或传输速率小于对应的最小预设阈值时,减小路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,或,减小路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值;
当所述当前的CPU负载占用率和/或传输速率大于或等于对应的最大预设阈值时,增大路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,或,增大路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值。
程序732中各步骤的具体实现参见图5-图6所示实施例中的相应单元的实现方式,在此不赘述。
所述领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述到的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,可以采用软件功能单元的形式实现。
需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上对本发明所提供的在高运行效率下传输数据的方法和装置进行了详细介绍,本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种在高运行效率下传输数据的方法,其特征在于,包括:
监测当前的CPU负载占用率和/或传输速率;
当所述当前的CPU负载占用率和/或传输速率小于对应的最小预设阈值时,减小路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,或,减小路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值;
当所述当前的CPU负载占用率和/或传输速率大于或等于对应的最大预设阈值时,增大路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,或,增大路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值。
2.根据权利要求1所述的方法,其特征在于,所述监测当前的CPU负载占用率,包括:
计算空闲任务在最近一个统计周期内处于运行状态时的运行时间与统计周期的比值,并作为所述空闲任务在最近一个统计周期内的CPU负载占用率;
计算1与所述空闲任务在最近一个统计周期内的CPU负载占用率的差值,并作为当前的CPU负载占用率。
3.根据权利要求1所述的方法,其特征在于,所述监测当前的传输速率,包括:
计算路由转发设备在最近一个统计周期内接收到的数据包的长度总和;
计算所述长度总和与统计周期的比值,并作为当前的传输速率。
4.根据权利要求1所述的方法,其特征在于,所述监测当前的CPU负载占用率和/或传输速率为:
统计路由转发设备中的下层的低优先级任务一次接收的数据包的总个数;
所述当所述当前的CPU负载占用率和/或传输速率小于对应的最小预设阈值时,减小路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数具体为:
当所述总个数小于第一数量阈值时,减小路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数;
当所述当前的CPU负载占用率和/或传输速率大于或等于对应的最大预设阈值时,增大路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数具体为:
当所述总个数大于或等于第一数量阈值时,增大路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数。
5.根据权利要求4所述的方法,其特征在于,
所述减小路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数具体为:控制路由转发设备中的下层的低优先级任务将一次接收的数据包分批次地递交给上层的高优先级任务;
所述增大路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数具体为:控制路由转发设备中的下层的低优先级任务将一次接收的数据包一次性递交给上层的高优先级任务。
6.根据权利要求5所述的方法,其特征在于,还包括:
当所述总个数小于或等于第二数量阈值时,控制路由转发设备中的下层的低优先级任务将一次接收的数据包一次性递交给上层的高优先级任务,所述第二数量阈值小于所述第二数量阈值。
7.一种在高运行效率下传输数据的装置,其特征在于,包括:
监测单元,用于监测当前的CPU负载占用率和/或传输速率;
第一控制单元,用于当所述当前的CPU负载占用率和/或传输速率小于对应的最小预设阈值时,减小路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,或,减小路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值;
第二控制单元,用于当所述当前的CPU负载占用率和/或传输速率大于或等于对应的最大预设阈值时,增大路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数,或,增大路由转发设备中的上层的高优先级任务一次处理的数据包的最大个数阈值。
8.根据权利要求7所述的装置,其特征在于,所述监测单元包括:
第一计算子单元,用于计算空闲任务在最近一个统计周期内处于运行状态时的运行时间与统计周期的比值,并作为所述空闲任务在最近一个统计周期内的CPU负载占用率;
第二计算子单元,用于计算1与所述空闲任务在最近一个统计周期内的CPU负载占用率的差值,并作为当前的CPU负载占用率。
9.根据权利要求7所述的装置,其特征在于,所述监测单元包括:
第三计算子单元,用于计算路由转发设备在最近一个统计周期内接收到的数据包的长度总和;
第四计算子单元,用于计算所述长度总和与统计周期的比值,并作为当前的传输速率。
10.根据权利要求7所述的装置,其特征在于,所述监测单元包括:
统计子单元,用于统计路由转发设备中的下层的低优先级任务一次接收的数据包的总个数;
所述第一控制单元具体用于,当所述总个数小于第一数量阈值时,减小路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数;
所述第二控制单元具体用于,当所述总个数大于或等于第一数量阈值时,增大路由转发设备中的下层的低优先级任务一次向上层的高优先级任务递交的数据包的总个数。
11.根据权利要求10所述的装置,其特征在于,
所述第一控制单元具体用于,当所述总个数小于第一数量阈值时,控制路由转发设备中的下层的低优先级任务将一次接收的数据包分批次地递交给上层的高优先级任务;
所述第二控制单元具体用于,当所述总个数大于或等于第一数量阈值时,控制路由转发设备中的下层的低优先级任务将一次接收的数据包一次性递交给上层的高优先级任务。
12.根据权利要求11所述的装置,其特征在于,还包括:
第三控制单元,用于当所述总个数小于或等于第二数量阈值时,控制路由转发设备中的下层的低优先级任务将一次接收的数据包一次性递交给上层的高优先级任务,所述第二数量阈值小于所述第二数量阈值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410056844.8A CN103841042B (zh) | 2014-02-19 | 2014-02-19 | 在高运行效率下传输数据的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410056844.8A CN103841042B (zh) | 2014-02-19 | 2014-02-19 | 在高运行效率下传输数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103841042A true CN103841042A (zh) | 2014-06-04 |
CN103841042B CN103841042B (zh) | 2017-09-19 |
Family
ID=50804187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410056844.8A Active CN103841042B (zh) | 2014-02-19 | 2014-02-19 | 在高运行效率下传输数据的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103841042B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105489216A (zh) * | 2016-01-19 | 2016-04-13 | 百度在线网络技术(北京)有限公司 | 语音合成系统的优化方法和装置 |
WO2019148716A1 (zh) * | 2018-01-30 | 2019-08-08 | 平安科技(深圳)有限公司 | 数据传输方法、服务器及存储介质 |
CN110430101A (zh) * | 2019-08-28 | 2019-11-08 | 杭州领智云画科技有限公司 | 应用于cdn的服务指标数据采集方法、装置、设备及系统 |
CN111046091A (zh) * | 2019-10-24 | 2020-04-21 | 杭州数梦工场科技有限公司 | 数据交换系统的运行方法、装置及设备 |
CN111343671A (zh) * | 2020-02-20 | 2020-06-26 | 北京小米移动软件有限公司 | 信息处理方法、装置及存储介质 |
CN115361338A (zh) * | 2022-07-22 | 2022-11-18 | 新华三技术有限公司 | 一种路由处理方法、装置及网络设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7047310B2 (en) * | 2003-02-25 | 2006-05-16 | Motorola, Inc. | Flow control in a packet data communication system |
US7861068B2 (en) * | 2006-03-07 | 2010-12-28 | Intel Corporation | Method and apparatus for using dynamic workload characteristics to control CPU frequency and voltage scaling |
US9882831B2 (en) * | 2009-01-16 | 2018-01-30 | Mainline Net Holdings Limited | Maximizing bandwidth utilization in networks with high latencies and packet drops using transmission control protocol |
-
2014
- 2014-02-19 CN CN201410056844.8A patent/CN103841042B/zh active Active
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105489216A (zh) * | 2016-01-19 | 2016-04-13 | 百度在线网络技术(北京)有限公司 | 语音合成系统的优化方法和装置 |
CN105489216B (zh) * | 2016-01-19 | 2020-03-03 | 百度在线网络技术(北京)有限公司 | 语音合成系统的优化方法和装置 |
WO2019148716A1 (zh) * | 2018-01-30 | 2019-08-08 | 平安科技(深圳)有限公司 | 数据传输方法、服务器及存储介质 |
CN110430101A (zh) * | 2019-08-28 | 2019-11-08 | 杭州领智云画科技有限公司 | 应用于cdn的服务指标数据采集方法、装置、设备及系统 |
CN111046091A (zh) * | 2019-10-24 | 2020-04-21 | 杭州数梦工场科技有限公司 | 数据交换系统的运行方法、装置及设备 |
CN111046091B (zh) * | 2019-10-24 | 2023-12-08 | 杭州数梦工场科技有限公司 | 数据交换系统的运行方法、装置及设备 |
CN111343671A (zh) * | 2020-02-20 | 2020-06-26 | 北京小米移动软件有限公司 | 信息处理方法、装置及存储介质 |
CN111343671B (zh) * | 2020-02-20 | 2024-04-09 | 北京小米移动软件有限公司 | 信息处理方法、装置及存储介质 |
CN115361338A (zh) * | 2022-07-22 | 2022-11-18 | 新华三技术有限公司 | 一种路由处理方法、装置及网络设备 |
CN115361338B (zh) * | 2022-07-22 | 2024-02-23 | 新华三技术有限公司 | 一种路由处理方法、装置及网络设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103841042B (zh) | 2017-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103841042A (zh) | 在高运行效率下传输数据的方法和装置 | |
EP3629531A1 (en) | Technologies for congestion control for ip-routable rdma over converged ethernet | |
US20160173383A1 (en) | Method and apparatus for priority flow and congestion control in ethernet network | |
US20170295112A1 (en) | Apparatus and method for buffering data in a switch | |
US9485185B2 (en) | Adjusting connection validating control signals in response to changes in network traffic | |
JPH03174848A (ja) | コンピュータ回路網における遅延ベース混雑回避方法及び装置 | |
US8732263B2 (en) | Self clocking interrupt generation in a network interface card | |
US20170223575A1 (en) | System and method of a pause watchdog | |
US10079782B2 (en) | Facilitating communication of data packets using credit-based flow control | |
CN114978433B (zh) | 数据传输方法、装置、设备、存储介质及计算机程序产品 | |
CN104301243A (zh) | 一种负载控制方法和装置 | |
EP4020892A1 (en) | Network parameter configuration method and apparatus | |
CN103647759A (zh) | 一种mss的协商方法及装置 | |
CN116868553A (zh) | 用于管理端点资源和拥塞缓解的数据中心网络上的动态网络接收器驱动的数据调度 | |
EP3582455B1 (en) | Method and apparatus for multiple subflows network transmission | |
US9948564B2 (en) | Data streaming scheduler for dual chipset architectures that includes a high performance chipset and a low performance chipset | |
CN104702531A (zh) | 一种网络设备拥塞避免的方法及网络设备 | |
CN115396372B (zh) | 数据流的速率控制方法、智能网卡、云端设备及存储介质 | |
EP3275139A1 (en) | Technologies for network packet pacing during segmentation operations | |
CN114024913B (zh) | 一种网络性能优化方法、装置、设备以及存储介质 | |
JP6801082B2 (ja) | 伝送リソース指示方法、装置および記憶媒体 | |
CN104426866A (zh) | 一种数据传输方法及装置 | |
CN112910799A (zh) | 一种网络数据处理方法、系统、介质及设备 | |
US20140369350A1 (en) | System and Method for Deterministic I/O with Ethernet Based Industrial Networks | |
CN104750021A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |