报文分发方法、多核处理器及可读存储介质技术

技术编号:26693819 阅读:37 留言:0更新日期:2020-12-12 02:49
本发明专利技术提供一种报文分发方法、多核处理器及可读存储介质,该方法包括:对多核处理器中的任一报文处理核而言,当本报文处理核对应的网卡队列中报文的数量大于或等于第一阈值时,对每个报文中的目标字段进行哈希计算,得到每个报文对应的哈希值;基于每个报文对应的哈希值,将所有报文分发到多个ring队列中,其中,每个ring队列对应一个报文处理核。通过本发明专利技术,当一报文处理核对应的网卡队列中报文数量多时,将报文分发到多个ring队列上,使得每个报文处理核可以从其对应的ring队列中获取报文并处理,从而实现了多核处理器核间负载均衡,提高了多核处理器的利用率。

【技术实现步骤摘要】
报文分发方法、多核处理器及可读存储介质
本专利技术涉及数据处理领域,尤其涉及一种报文分发方法、多核处理器及可读存储介质。
技术介绍
目前,一般通过前端分流的方式实现多核处理器的核间负载均衡。前端分流的具体方式为:网卡抽取报文指定字段进行hash运算,通过hash运算的结果,将各报文散列到不同的网卡队列中,从而实现将报文分担到不同的网卡队列对应的处理核上进行处理。在一些情况下,通过前端分流的方式,可能会将报文分到一网卡队列上,而其他网卡队列无法收到报文,从而导致该网卡队列绑定的处理核繁忙,而其他处理核处于空闲。例如,当网卡无法对报文进行识别时,便无法抽取报文的指定字段进行hash运算,从而默认进入网卡队列0,而其它队列无法收到报文,从而导致网卡队列0绑定的处理核繁忙,其它核处于空闲。或是,由于同一条数据流的报文头部内容固定,导致计算出的hash值相同,从而只能进入某单一队列,导致该队列绑定的处理核繁忙,其它核处于空闲。而目前对于这种由于前端分流不均,导致核间负载不均衡的情况,缺少解决方案,从而导致对多核处理器的利用率较低。本文档来自技高网...

【技术保护点】
1.一种报文分发方法,其特征在于,所述报文分发方法应用于多核处理器中的各个报文处理核,所述报文分发方法包括:/n当本报文处理核对应的网卡队列中报文的数量大于或等于第一阈值时,对每个报文中的目标字段进行哈希计算,得到每个报文对应的哈希值;/n基于每个报文对应的哈希值,将所有报文分发到多个ring队列中,其中,每个ring队列对应一个报文处理核。/n

【技术特征摘要】
1.一种报文分发方法,其特征在于,所述报文分发方法应用于多核处理器中的各个报文处理核,所述报文分发方法包括:
当本报文处理核对应的网卡队列中报文的数量大于或等于第一阈值时,对每个报文中的目标字段进行哈希计算,得到每个报文对应的哈希值;
基于每个报文对应的哈希值,将所有报文分发到多个ring队列中,其中,每个ring队列对应一个报文处理核。


2.如权利要求1所述的报文分发方法,其特征在于,所述基于每个报文对应的哈希值,将所有报文分发到多个ring队列中的步骤包括:
对每个报文对应的哈希值取模第一数值,得到每个报文对应的核ID值,将每个报文分发到其核ID值对应的ring队列中,其中,所述第一数值为所述多核处理器包括的报文处理核的数量。


3.如权利要求1所述的报文分发方法,其特征在于,所述基于每个报文对应的哈希值,将所有报文分发到多个ring队列中的步骤还包括:
对每个报文对应的哈希值取模第二数值,得到每个报文对应的核ID值,将每个报文分发到其核ID值对应的ring队列中,其中,所述第二数值为设置核间负载比例时设置的样本数。


4.如权利要求2或3所述的报文分发方法,其特征在于,所述将每个报文分发到其核ID值对应的ring队列中的步骤包括:
将每个报文的描述符挂入每个报文对应的核ID值对应的bulk中;
当bulk中挂入的描述符数量等于第二阈值时,将bulk写入bulk对应的核ID值对应的ring队列中;
或,
从bulk中挂入第一个描述符开始,经过预设时长时,将bulk写入bulk对应的核ID值对应的ring队列中。


5.如权利要求4所述的报文分发方法,...

【专利技术属性】
技术研发人员:范富明范石民
申请(专利权)人:烽火通信科技股份有限公司成都烽火云网信息技术有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1