[发明专利]使用多核CPU处理QoS业务的方法、装置和设备有效
申请号: | 200810084356.2 | 申请日: | 2008-03-19 |
公开(公告)号: | CN101272334A | 公开(公告)日: | 2008-09-24 |
发明(设计)人: | 戴霖 | 申请(专利权)人: | 杭州华三通信技术有限公司 |
主分类号: | H04L12/56 | 分类号: | H04L12/56;H04L12/58;G06F9/46 |
代理公司: | 北京挺立专利事务所 | 代理人: | 叶树明 |
地址: | 310053浙江省杭州市高新技术产业*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 使用 多核 cpu 处理 qos 业务 方法 装置 设备 | ||
技术领域
本发明涉及通信技术领域,尤其涉及一种使用多核CPU(Center ProcessingUnit,中央处理单元)处理QoS(Quality of Service,服务质量)业务的方法、装置和设备。
背景技术
随着信息产业的发展,网络宽带化已经成为主流。尤其是近年来宽带城域网的发展,使以太网形式的上连接口也快速普及。这种趋势对路由器性能提出了更高的要求,而与路由器性能表现密切相关的业务就是QoS。QoS业务应用于流量转发的过程中,其核心功能是“流量调度”。为了实现该功能,QoS需要使用FIFO(First in First out,先入先出)队列,其示意图如图1所示。QoS业务有两个核心动作:即入队列和出队列,可以理解为QoS业务的接收和发送。其中,QoS入队列又分为两种情况:被动入队列和主动入队列。所谓被动入队列,是指设备在接口只配置了默认的缓存队列,没有配置其它QoS策略,流量直接经由该接口转发,当流量过大导致接口转发失败时,转发失败的流量将进入默认的缓存队列。所谓主动入队列,是指设备在接口上配置了QoS策略,如优先级队列等,当流量需要经由该接口转发时,将根据配置的策略主动将流量分配到接口上相应的QoS队列。
传统路由器通常采用单核CPU作为转发引擎和业务处理引擎,并且拥有丰富的业务单板,可以满足客户不同的业务需求。如果想提高路由器的性能,其唯一的途径就是提高CPU的性能。在单核CPU的性能几乎已经发展到极限的情况下,采用日趋成熟的多核CPU成为了进一步提高性能的一种可能方法。在多核CPU中包括有多个Core(核),每个Core负责完成一个传统CPU的功能。
于是,如何在多核CPU平台上实现QoS业务的高性能成为了一个新的课题。为了实现QoS业务的高性能,需要保证QoS业务能够并发出队列,其中队列的收发均衡是关键。
现有技术中提供了一种利用多个CPU Core进行QoS队列处理的方法。其中入队列的操作如图2所示,多个CPU Core并发执行QoS入队列的操作。具体的,CPU Core向QoS队列写入数据的过程如下:当设备接口接收到需要处理的流时,根据接收的流的特征,将流分发到各个CPU Core。各个CPU Core在对接收到的流中的数据包进行处理之后,根据预先配置的策略,将数据包分配到对应的QoS队列,具体分为被动入队列和主动入队列两种情况。
此时由于QoS业务的接收速度很快,而QoS队列的大小有限,因此需要很高的QoS业务发送速度以保证收发均衡。为了实现该要求,如图3所示,现有技术中若一个设备接口的QoS队列中存在数据包,则该设备接口发动所有的CPU Core并发出队列。所谓的QoS出队列,是指CPU Core将QoS队列中的数据包取出经由设备接口转发出去。QoS出队列操作有两个终止条件:一、连续出队列,QoS队列中的数据包全部清空;二、QoS出队的速度超过接口速度之后,出队失败。如果遇到第二种情况,就等待CPU Core下次继续触发QoS出队列操作。
现有技术中存在的问题在于,即使设备上某接口的流量很少,也要发动所有的CPU Core对该接口进行并发处理。此时,所有的CPU Core都被一个流量很少的接口占用后,则不能去执行其它任务,无疑是对CPU Core资源的巨大浪费。当存在很多设备接口时,CPU Core不仅将不堪重负,设备接口之间的相互影响也很明显。
发明内容
本发明提供一种使用多核CPU处理QoS业务的方法、装置和设备,用于提高现有多核CPU对QoS业务的处理效率和处理性能。
为达到上述目的,本发明提供一种使用多核CPU处理QoS业务的方法,包括以下步骤:
获取事件缓存队列中存在事件的CPU Core;
根据所述CPU Core的事件缓存队列中存在的事件,获取所述CPU Core处理后的流转发出去所使用的接口;
调度所述CPU Core对所述接口中的QoS队列进行出队列操作。
其中,所述获取事件缓存队列中存在事件的CPU Core前还包括:
为每个CPU Core建立事件缓存队列;
当某个CPU Core进行流处理时,每处理流中的一个数据包,就在该CPUCore的事件缓存队列中写入一个事件。
其中,所述事件的内容包括:所述CPU Core处理后的流转发出去所使用的接口。
其中,对于所述接口中的QoS队列进行出队列操作的CPU Core数量,等于对所述接口中的QoS队列进行入队列操作的CPU Core数量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华三通信技术有限公司,未经杭州华三通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810084356.2/2.html,转载请声明来源钻瓜专利网。