一种基于多核处理器的报文处理方法及装置的制造方法_2

文档序号:9710797阅读:来源:国知局
的量化值为T3,若Tl与T2之间的差值(即量化值之间的差值)小于预设阈值,则第一关键路径与第二关键路径同属于一个关键路径集合(即为集合A)。若T3与T2的差值大于等于预设阈值,或T3与T2的差值大于等于预设阈值则第三关键路径不属于集合A。当然,具体实施时,还可以根据现有的聚类算法,进行聚类,只要同一关键路径集合中量化值之间的差值小于预设阈值即可。本发明对如何聚类不做限定。例如,可以预先根据各关键路径的量化值确定出至少一个聚类中心点,针对每个聚类中心点,将量化值与该聚类中心点的之间的距离小于二分之一预设阈值的关键路径聚集到同一关键路径集合中。
[0037]步骤A4:针对每种关键路径集合建立对应的流水线族,并建立流水线族与报文类型之间的对应关系。
[0038]例如,当报文类型是根据网络协议划分时,对于HTTP报文,首先根据步骤Al获取该报文类型的报文处理过程中的执行路径,然后分析该执行路径,从而获得HTTP报文的关键路径LI,并对HTTP报文的关键路径进行量化分析,获得HTTP报文的关键路径的量化值为D1。然后依照相同的处理方法,获得TCP报文的关键路径L2的量化值为D2。然后计算Dl与D2的差值,若该差值小于预设阈值,则LI与L2属于同一关键路径集合,并建立该关键路径集合对应的流水线族E,并建立流水线族E与HTTP报文和TCP报文具有对应关系。网络设备之后再接收到HTTP报文和/或TCP报文之后,便根据该对应关系,将其发送给流水线族E处理。
[0039]其中,在一个实施例中,流水线族内包括至少一条流水线,流水线族内的流水线的条数可以根据该流水线族所需要处理的报文量动态调整,这样,便能够合理利用流水线,提高多核处理器并发效率。具体的,对流水线族内的流水线的调整可以包括以下步骤:
[0040]步骤Fl:针对每种流水线族,将该流水线族对应的所有报文类型的当前报文总量记为族内报文总量。
[0041]例如,继续上面的例子,针对流水线族E,该流水线族对应的所有报文类型例如为HTTP报文和TCP报文,则计算当前所有待处理的HTTP报文和TCP报文的报文总量(记为族内报文总量)。
[0042]步骤F2:计算族内报文总量与当前所有待处理报文的报文总量的第一比值。
[0043 ]例如,所有报文类型为HTTP报文、TCP报文和UDP报文,那么当前所有待处理报文的报文总量则为当前所有待处理的HTTP报文、TCP报文和UDP报文的报文总量。
[0044]第一比值为步骤Fl中的族内报文总量除以当前所有待处理报文的报文总量的结果O
[0045]步骤F3:根据计算的第一比值,调整该流水线族内的流水线条数。
[0046]其中,在一个实施例中,可以根据以下方式之一执行步骤F3:
[0047]方式一:例如可以设置一个报文变量阈值,根据本次计算的第一比值和上次的计算的第一比值的差与报文变量阈值的比较结果调整流水线族内的流水线条数,具体可包括以下步骤:
[0048]步骤Gl:用步骤F2计算的第一比值,减去该流水线族上次计算的第一比值,求得两比值之间的比值差值。
[0049]步骤G2:当确定比值差值为正,且比值差值大于报文变量阈值时,将该流水线族内的流水线条数增加预设数量;当确定比值差值为负,且比值差值的绝对值大于报文变量阈值时,将该流水线族内的流水线条数减少预设数量。
[0050]这样,能够根据族内报文量的增减量,动态调整族内的流水线数量,当族内报文量增加量超过报文变量阈值时,可以增加族内流水线的数量,当族内报文量减量超过报文变量阈值时,可以减少族内流水线的数量,以释放流水线资源,提高多核处理器的并发处理效率。
[0051]方式二:可以建立比值和流水线条数的对应关系,根据比值和流水线条数的对应关系调整各流水线族内的流水线条数,具体的,可以包括以下步骤:
[0052]步骤Hl:根据计算的第一比值,在预置的比值和流水线条数的对应关系中,查找计算的第一比值对应的流水线条数。
[0053]步骤H2:将该流水线族的流水线条数调整为查找到的第一比值对应的流水线条数。
[0054]其中,在一个实施例中,在第一比值和流水线条数的对应关系中可以配置第一比值越高对应的流水线条数越多。具体实施时可以设置一个比值范围,首先查找计算的第一比值所在的比值范围,然后,在查找与该比值范围对应的流水线条数,将查找的结果作为流水线族调整后的流水线条数。
[0055]其中,在一个实施例中,还可以根据族内报文总量调整流水线族内的流水线数量,具体包括以下步骤:
[0056]步骤Gl:针对每种流水线族,将该流水线族对应的所有报文类型的当前报文总量记为族内报文总量。
[0057]步骤G2:计算族内报文总量处以该流水线族对应的预置单条流水线最大处理报文量所获得的第二比值,将该流水线组内的流水线条数调整为所述第二比值。
[0058]其中,第二比值为步骤Gl中的族内报文总量除以预置单条流水线最大处理报文量的结果。其中单条流水线最大处理报文量例如可以为300Mbps。
[0059]其中,当第二比值不为整数时,可以向上取整数。例如,第二比值为3.4,则取整后为4。
[0060]其中,在一个实施例中,为了提高多核处理器的并发效率,提高网络设备的报文处理速度,需要根据待处理报文量和报文类型对流水线进行调度。本发明实施例中,对流水线的调度可以分为两级。第一级是对流水线族的调度,对流水线族,可以设置在哪些核上执行,同时可以设置不同族之间的优先或轮询调度策略。第二级是族内流水线,在多核上采用公平调度策略。以下对上述各调度策略进行详细说明:
[0061]1)、对流水线族的调度之优先调度策略:可以对不同的族设置不同的优先级,较高优先级的族具有优先调度的权力。只有当高优先级的族处理结束,比其优先级低的族才有机会进行调度。
[0062]2)、对流水线族的调度之轮询调度策略;在具有相同优先级的情况下,族之间采用轮询调度的策略,并且可以使用带权重的轮询调度策略。如族A和族B具有相同的优先级L。其中族A的权重是Wl,族B的权重是W2ο则族A和族B轮询调度,族A和族B的调度次数的比值是W1:W20
[0063]3:对族内流水线的调度之公平调度策略。族内流水线采用相同权重的轮询调度策略。
[0064]综上,本发明实施例中将量化值接近(即量化值之间的差值小于预设阈值)的关键路径建立对应的流水线组,然后将同一流水线族的报文发送给该流水线族处理,这样,同一流水线族处理的报文所执行的关键路径、执行时间基本相同,这样就可以减少cache miss,提高网络设备的报文转发性能。
[0065]此外,本发明实施例还可以根据当前报文量调整流水线族内的流水线条数,以进一步提高多核处理器的并发效率,提高报文的处理效率。
[0066]实施例二
[0067]基于相同的发明构思,本发明实施例还提供一种基于多核处理器的报文处理装置,如图2所述,为该装置的结构示意图,该装置包括:
[0068]报文类型确定模块201,用于接收到待处理报文后,确定所述待处理报文所属的报文类型;
[0069]流水线族查找模块202,用于在预置的报文类型与流水线族之间的对应关系中,查找所述待处理报文所对应的流水线族;其中,同一流水线族对应至少一种报文类型、且同一流水线族对应的不同报文类型的报文处理过程的关键路径的量化值之间的差值小于预设阈值;
[0070]处理模块203,用于将所述待处理报文分配给对应的所述流水线族进行报文处理。[0071 ]其中,在一个实施例中,如图3所示,所述装置还包括:
[0072]对应关系建立模块204,用于根据以下方法建立所述报文类型与流水线族之间的对应关系:
[0073]针对预置的报文类型集合中的每种报文类型,获取该报文类型的报文处理过程中的执行路径;并,
[0074]对执行路径进行分析,获取该种类型报文的关键路径;并,
[0075]对获取的关键路径进行量化分析,得到该关键路径的量化值;
[0076]将量化值之间的差值小于预设阈值的关键路径归类到同一关键路径集合中;
[0077]针对每种关键路径集合建立对应的流水线族,并建立流水线族与报文类型之间的对应关系。
[0078]其中,在一个实施例中,关键路径的量化值为该关键路径对
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1