[发明专利]一种基于DPDK的收包二级缓存方法及系统有效
申请号: | 201810378716.3 | 申请日: | 2018-04-25 |
公开(公告)号: | CN108632166B | 公开(公告)日: | 2021-11-09 |
发明(设计)人: | 陈荣;闫礼飞 | 申请(专利权)人: | 湖北锐世数字医学影像科技有限公司 |
主分类号: | H04L12/861 | 分类号: | H04L12/861 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 436000 湖北省鄂州市梧桐*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于DPDK的收包二级缓存方法,包括以下步骤:自定义mbulk结构以及二级缓存结构,mbulk存储mbuf指针且大小相同,收包一级队列的队列存储mbuf指针,收包二级队列存储mbulk指针;(2)初始化DPDK;收包缓存收包处理线程1用于缓存portmbuf指针至收包一级队列中;(3‑2)收包处理线程2用于从mbulk_pool内存池取出mbulk,并从对应的收包一级队列取出mbuf指针并放入mbulk,任意mbulk放满后,收包处理线程2将mbulk指针放入收包二级队列,接着从mbulk_pool取出下一个mbulk,进行下一次操作;公共工作者线程从收包二级队列取出mbulk指针并处理。该方法通过为后端提供一个稳定的、数据量适中出队操作,使得后端处理更为稳定,以实现实时稳定收包和处理,降低丢包概率。 | ||
搜索关键词: | 一种 基于 dpdk 二级缓存 方法 系统 | ||
【主权项】:
1.一种基于DPDK的收包二级缓存方法,其特征在于:包括以下步骤:(1)自定义mbulk结构以及二级缓存结构,同时自定义mbulk_pool变量:所述mbulk用于存储mbuf指针,每个所述mbulk大小相同,存储相同数量的mbuf指针;所述mbulk_pool为自定义DPDK内存池,存储元素为mbulk;所述二级缓存结构包括自定义的DPDK收包一级队列以及收包二级队列,所述收包一级队列的队列存储元素为mbuf指针,包括至少一组收包一级队列;所述收包二级队列为公共队列,其队列存储元素为mbulk指针;(2)初始化DPDK环境、创建内存、分配CPU给DPDK收包处理线程、初始化网卡配置并配置好mbulk、收包一级队列、mbulk_pool以及收包二级队列;(3)收包缓存,DPDK的每个port分别对应两个收包处理线程:(3‑1)收包处理线程1用于缓存port对应的原始mbuf指针至收包一级队列中;(3‑2)收包处理线程2用于从mbulk_pool内存池取出一个mbulk,然后从对应的收包一级队列取出mbuf指针并放入mbulk,任意所述mbulk放满后,收包处理线程2将所述mbulk指针放入收包二级队列,接着从mbulk_pool取出下一个mbulk,进行下一次操作;(4)公共工作者线程缓存处理:所述公共工作者线程用于从收包二级队列取出mbulk指针,然后对每个所述mbulk所存储的相同数量的mbuf地址指针进行处理,每处理完一个mbuf后归还mbuf到mbuf_pool,处理完整个mbulk后归还mbulk到mbulk_pool。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖北锐世数字医学影像科技有限公司,未经湖北锐世数字医学影像科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810378716.3/,转载请声明来源钻瓜专利网。