searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

cpe多核性能优化

2023-12-06 07:50:33
4
0

      鉴于多核处理会话需要加锁带来的性能损耗,提供一种无锁化的方法,在多核处理会话时可以同时进行,访问会话时不需要线程间的同步。cpe上功能模块较多,流量模型复杂,不同模块的业务流量通过预设的CPU进行处理。针对EDGE复杂的业务场景,通过对称路径处理报文,每个CPU维护本核的有状态的会话信息,这样在处理会话的过程中可以不需要线程同步,即不需要加锁,可以实现并发执行以提高性能。

        在多核架构下,一个线程独占一个CPU,将lan侧的客户上行流量和wan侧sdwan下行流量进行业务分离,并根据业务复杂程度分配不同数目的CPU处理上下行流量。lan侧固定一个CPU轮询收取网卡的报文,并通过源ip地址hash计算出处理流量的CPU,将流量调度过去。wan口接受POP流量,源ip是POP侧公网ip,目的ip是wan口ip,由于ip地址相对固定,不开启网卡多队列,采用固定网卡收包,然后将下行流量均分至处理wan侧的CPU,通过lan侧业务和wan侧业务分离到不通的CPU以及对称路径实现高性能转发。其中涉及:流量调度、流量整型、智能选路、深度报文检测、NAT转换、ipsec加密、ipsec解密、报文对称路径、session老化。

      流量调度:当前CPU处理完报文后,如果接下来的流程需要跨到其他CPU处理,则要参与流量的调度,根据不同的功能模块采用不通的调度算法,保证每个功能模块的session在同一个CPU上,这样增删查改session才可以做到无锁化。 

      流量整型:由于业务转发模块采用node的链式处理,node之间的关系相对固定,当CPU接收到其他CPU调度过来的流量,需要有专有node承接流量,并把此node插入到原始处理链中,不影响正常转发。 

      智能选路、深度报文检测、NAT转换:lan侧接口连接客户办公内网,例如PC等,主要对报文进行智能选路、深度报文检测、NAT、ipsec加密、报文跨核、流量整形,对性能损耗较多,将10个核当中的6个核用来处理lan侧流量,这里编号1-6核,其中1核用轮询的模式收取lan侧报文和流量跨核调度,其余2-6这5个核首先承接来自1核调度的流量,先后进行接受调度流量、流量整形、智能选路、深度报文检测等处理,这些操作无需修改报文内容,lan侧根据源ip hash值做跨核调度,同一条流的返程流量根据目的ip hash值做流量调度,这样可以保证同一条流是由同一个核进行session的管理。客户上网流量不需要做ipsec封装接入POP设备,但是需要做nat转换,针对nat流量,会修改内网报文的源ip、源port信息,不能只根据ip地址做跨核调度的算法,返程的下行流量还需要通过目的port判断。 

     ipsec加密模块、ipsec解密模块:为了不影响单个CPU性能成为瓶颈,针对ispec加密和ipsec解密模块采用隔离CPU处理,并且采用不同的流量调度算法,在多核架构下充分发挥CPU的性能。 

    报文对称路径模块:同一条流根据对称路径,上下行流量调度到同一个CPU处理,不同业务采用不同的算法,CPU做到无锁化管理session。               

     session老化模块:每个CPU拥有自己的时钟,对老化的session释放资源。 

    优点:

    1.针对SDWAN edge盒子业务复杂度高,提出不同业务采用不同的调度算法,经过上行流量一次调度,下行两次调度,充分利用多核的优势,实现高性能转发。

    2.隔离上下行流量,对性能损耗更高的上行流量分配更多的核,避免单CPU处理较多业务带来的性能瓶颈。

    3.针对下行ipsec大象流,做到均匀调度流量,解决大象流带来的性能低问题。

    4.针对NAT流量,每个核分配固定可用port,这样返程流量可根据目的port调度到正确的CPU上,解决因报文ip、port改变而无法对称路径的问题。 

0条评论
0 / 1000
l****n
3文章数
0粉丝数
l****n
3 文章 | 0 粉丝
l****n
3文章数
0粉丝数
l****n
3 文章 | 0 粉丝
原创

cpe多核性能优化

2023-12-06 07:50:33
4
0

      鉴于多核处理会话需要加锁带来的性能损耗,提供一种无锁化的方法,在多核处理会话时可以同时进行,访问会话时不需要线程间的同步。cpe上功能模块较多,流量模型复杂,不同模块的业务流量通过预设的CPU进行处理。针对EDGE复杂的业务场景,通过对称路径处理报文,每个CPU维护本核的有状态的会话信息,这样在处理会话的过程中可以不需要线程同步,即不需要加锁,可以实现并发执行以提高性能。

        在多核架构下,一个线程独占一个CPU,将lan侧的客户上行流量和wan侧sdwan下行流量进行业务分离,并根据业务复杂程度分配不同数目的CPU处理上下行流量。lan侧固定一个CPU轮询收取网卡的报文,并通过源ip地址hash计算出处理流量的CPU,将流量调度过去。wan口接受POP流量,源ip是POP侧公网ip,目的ip是wan口ip,由于ip地址相对固定,不开启网卡多队列,采用固定网卡收包,然后将下行流量均分至处理wan侧的CPU,通过lan侧业务和wan侧业务分离到不通的CPU以及对称路径实现高性能转发。其中涉及:流量调度、流量整型、智能选路、深度报文检测、NAT转换、ipsec加密、ipsec解密、报文对称路径、session老化。

      流量调度:当前CPU处理完报文后,如果接下来的流程需要跨到其他CPU处理,则要参与流量的调度,根据不同的功能模块采用不通的调度算法,保证每个功能模块的session在同一个CPU上,这样增删查改session才可以做到无锁化。 

      流量整型:由于业务转发模块采用node的链式处理,node之间的关系相对固定,当CPU接收到其他CPU调度过来的流量,需要有专有node承接流量,并把此node插入到原始处理链中,不影响正常转发。 

      智能选路、深度报文检测、NAT转换:lan侧接口连接客户办公内网,例如PC等,主要对报文进行智能选路、深度报文检测、NAT、ipsec加密、报文跨核、流量整形,对性能损耗较多,将10个核当中的6个核用来处理lan侧流量,这里编号1-6核,其中1核用轮询的模式收取lan侧报文和流量跨核调度,其余2-6这5个核首先承接来自1核调度的流量,先后进行接受调度流量、流量整形、智能选路、深度报文检测等处理,这些操作无需修改报文内容,lan侧根据源ip hash值做跨核调度,同一条流的返程流量根据目的ip hash值做流量调度,这样可以保证同一条流是由同一个核进行session的管理。客户上网流量不需要做ipsec封装接入POP设备,但是需要做nat转换,针对nat流量,会修改内网报文的源ip、源port信息,不能只根据ip地址做跨核调度的算法,返程的下行流量还需要通过目的port判断。 

     ipsec加密模块、ipsec解密模块:为了不影响单个CPU性能成为瓶颈,针对ispec加密和ipsec解密模块采用隔离CPU处理,并且采用不同的流量调度算法,在多核架构下充分发挥CPU的性能。 

    报文对称路径模块:同一条流根据对称路径,上下行流量调度到同一个CPU处理,不同业务采用不同的算法,CPU做到无锁化管理session。               

     session老化模块:每个CPU拥有自己的时钟,对老化的session释放资源。 

    优点:

    1.针对SDWAN edge盒子业务复杂度高,提出不同业务采用不同的调度算法,经过上行流量一次调度,下行两次调度,充分利用多核的优势,实现高性能转发。

    2.隔离上下行流量,对性能损耗更高的上行流量分配更多的核,避免单CPU处理较多业务带来的性能瓶颈。

    3.针对下行ipsec大象流,做到均匀调度流量,解决大象流带来的性能低问题。

    4.针对NAT流量,每个核分配固定可用port,这样返程流量可根据目的port调度到正确的CPU上,解决因报文ip、port改变而无法对称路径的问题。 

文章来自个人专栏
网关设备
3 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0